问题描述
在执行 apt-get update 命令时,某些仓库的下载速度比较慢,并且也没有必要更新。
因此我们希望可以临时禁用这些仓库,在需要时再次打开。
该笔记将记录:如何临时禁用 APT 仓库(源),以及需要注意的一些问题。
解决方案
有以下几种方法可以临时禁用仓库:
1)修改 .list 文件,使用井号注释仓库;
2)重命名 .list 文件(仓库源配置文件);
目前(07/10/2019),只能这样做,毕竟 APT 没有像 YUM 那种启动和禁用源的功能。
方法一、修改 .list 文件
1)使用 vim 打开 /etc/apt/source.list 文件;
2)在仓库地址前,添加井号(#)注释仓库即可;
如果每个源文件单独保存在 /etc/apt/source.list.d/ 中,则修改对应的文件即可。
方法二、重命名 .list 文件
该方法相对于前者,更加便捷。但是仅适用于每个仓库当读配置的场景(使用 /etc/apt/source.list.d/ 保存)
不同仓库的配置都保存在 /etc/apt/source.list.d/ 中单独存放的,并且 APT 只能识别以 .list 结尾的仓库源配置文件。因此,可以通过重命名源文件实现:
mv /etc/apt/sources.list.d/foo.list{,.delete}
关于重命名的问题
通过重命名方法存在问题,由于 APT 无法识别 .delete 后缀,因此会产生如下错误:
N: Ignoring file 'foo.list.delete' in directory '/etc/apt/sources.list.d/' as it has an invalid filename extension
解决方法是,创建如下配置文件,忽略 .delete 后缀的文件:
#!/bin/sh cat >> /etc/apt/apt.conf.d/98ignore-extensions << EOF Dir::Ignore-Files-Silently:: "\.delete$"; EOF # 默认值为:.disabled, ~, .bak or .dpkg-[a-z]+ # 即,可以将文件重命名为这些后缀以禁用文件。
参考文献
How to temporarily disable and permanently disable repos in Debian based systems?
How to name files in /etc/apt/sources.list.d/ to be ignored without warnings?
Project structure for python projects
How to choose a PHP project directory structure?