![如何确定sources.list中的重复条目](https://linux22.com/image/159380/%E5%A6%82%E4%BD%95%E7%A1%AE%E5%AE%9Asources.list%E4%B8%AD%E7%9A%84%E9%87%8D%E5%A4%8D%E6%9D%A1%E7%9B%AE.png)
随着时间的推移,我的内容/etc/apt/sources.list
不断增长,现在包含 100 行(包括/etc/apt/sources.list.d
)。我显然有重复的条目,而 apt 无法识别。举一个明显但虚构的例子:
deb http://ftp.am.debian.org/debian buster main contrib
deb http://ftp.au.debian.org/debian buster main contrib
我想包括所有可用的可靠软件包德班(忽略非官方软件包,我的混乱sources.list
只会随着这些而增加……)同时保持我的sources.list
尽可能短。
我也不想重新开始(例如举一个例子sources.list
),因为我已经投入了太多的精力。手动对它们进行排序(例如逐一注释并删除条目而不更改数量)由于条目数量较多,因此确实不受欢迎。
下一步,包括“半官方”或非官方软件包将会/etc/apt/sources.list.d
是有利的。
不用说,我想选择附近一个稳定的、官方列出的镜像,包括适合我的电脑架构的所有软件包。
如果可能的话,我还希望尽可能少地使用不同的域,以提高sources.list
文件的清晰度。
答案1
清除重复项的最简单方法(无需反复试验)是查看apt policy
.对于每个可访问的存储库(以及套件和架构),apt policy
将显示存储库描述符;你应该尝试最终只得到其中一个。
例如,对于您在问题中列出的存储库,apt policy
将显示类似的内容
500 http://ftp.am.debian.org/debian buster/main amd64 Packages
release v=10.0,o=Debian,a=stable,n=buster,l=Debian,c=main,b=amd64
origin ftp.am.debian.org
500 http://ftp.au.debian.org/debian buster/main amd64 Packages
release v=10.0,o=Debian,a=stable,n=buster,l=Debian,c=main,b=amd64
origin ftp.au.debian.org
500 http://ftp.am.debian.org/debian buster/contrib amd64 Packages
release v=10.0,o=Debian,a=stable,n=buster,l=Debian,c=contrib,b=amd64
origin ftp.am.debian.org
500 http://ftp.au.debian.org/debian buster/contrib amd64 Packages
release v=10.0,o=Debian,a=stable,n=buster,l=Debian,c=contrib,b=amd64
origin ftp.au.debian.org
每个条目的第二行是需要去重的行;在上面的例子中
release v=10.0,o=Debian,a=stable,n=buster,l=Debian,c=main,b=amd64
和
release v=10.0,o=Debian,a=stable,n=buster,l=Debian,c=contrib,b=amd64
选择保留哪个条目时,最简单的选择是保留一个deb.debian.org
条目(每次都会使用重定向为您提供一个近距离镜像)。