Debian

如何確定sources.list中的重複條目

  • August 22, 2019

/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

我想包括所有可用於Debian的可靠軟體包(忽略非官方軟體包,我的混亂sources.list只會隨著這些而增加……)同時保持我sources.list的盡可能短。

我也不想重新開始(例如舉個例子sources.list),因為我已經付出了太多的努力。手工整理它們(例如,一個接一個地註釋掉並刪除條目而不改變數字可用包的數量)確實不受歡迎,因為條目的數量。

作為下一步,包括“半官方”或非官方的軟體包/etc/apt/sources.list.d是有利的。

不用說,我想在附近選擇一個穩定的、官方列出的鏡像,包括我電腦架構的所有包。

如果可能的話,我還希望盡可能少地使用不同的域,以提高sources.list文件的清晰度。

清除重複項的最簡單方法是查看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條目(這將使用重定向每次都為您提供一個關閉的鏡像)。

引用自:https://unix.stackexchange.com/questions/536872