與軟件源配置完全指南)
簡(jiǎn)介Ubuntu 20.04 LTS系統(tǒng)中因誤修改sources.list文件導(dǎo)致的軟件源異??赏ㄟ^(guò)一套默認(rèn)源配置方案快速恢復(fù)。面向系統(tǒng)運(yùn)維者、開(kāi)發(fā)者及日常使用Ubuntu時(shí)遇到apt更新失敗或軟件安裝報(bào)錯(cuò)的用戶操作門(mén)檻較低適合需要立即修復(fù)軟件源、恢復(fù)正常升級(jí)渠道的場(chǎng)景。資源包含1個(gè)PDF文檔大小約35KB完整列出了main、restricted、universe、multiverse等核心倉(cāng)庫(kù)的源條目并對(duì)Updates、Security等倉(cāng)庫(kù)的用途做了簡(jiǎn)要說(shuō)明幫助讀者理解每條配置的含義避免后續(xù)再次誤改。文檔同時(shí)給出了使用sudo gedit編輯、并通過(guò)apt update與apt upgrade刷新緩存的檢查思路可有效解決因源內(nèi)容殘缺導(dǎo)致的依賴問(wèn)題。目前已有6781人學(xué)習(xí)下載對(duì)于希望恢復(fù)系統(tǒng)默認(rèn)更新渠道、保障apt正常工作的Ubuntu 20.04用戶具備較強(qiáng)的參考價(jià)值。1. 一張改錯(cuò)的 sources.list能讓 apt 全線罷工很多人在 Ubuntu 20.04 LTS 上第一次接觸sources.list不是主動(dòng)去學(xué)而是改崩了不得不回來(lái)補(bǔ)課。改源這事看著簡(jiǎn)單——把 URL 換掉、跑一句sudo apt update——可一旦格式寫(xiě)錯(cuò)、套件名寫(xiě)錯(cuò)、或者不小心把focal寫(xiě)成bionic系統(tǒng)會(huì)直接甩出一屏404 Not Found、Hash Sum mismatch甚至The repository does not have a Release file的報(bào)錯(cuò)新軟件裝不上舊軟件升不了級(jí)安全補(bǔ)丁也斷了。最難受的是你根本不知道是哪一行出了問(wèn)題。這份資源就是用來(lái)兜底的完整的 Ubuntu 20.04 LTS 默認(rèn)sources.list文件內(nèi)容配套備份、恢復(fù)、驗(yàn)證的完整操作。適合剛把源改崩的新手也適合要在新機(jī)器上快速配源、給 ROS 或深度學(xué)習(xí)環(huán)境鋪路的熟手。先把默認(rèn)源恢復(fù)回去再談別的。2. sources.list 的結(jié)構(gòu)拆解每一行是什么改錯(cuò)會(huì)怎樣2.1 一行源記錄的信息量比你想的大先看默認(rèn)文件里的核心行deb http://cn.archive.ubuntu.com/ubuntu/ focal main restricted這行可以被拆成四個(gè)字段deb是類(lèi)型表示這是二進(jìn)制軟件包倉(cāng)庫(kù)http://cn.archive.ubuntu.com/ubuntu/是倉(cāng)庫(kù)地址focal是發(fā)行版代號(hào)對(duì)應(yīng) Ubuntu 20.04 LTS 的版本名 Focal Fossamain restricted是組件也就是這個(gè)倉(cāng)庫(kù)里要啟用哪幾個(gè)軟件類(lèi)別。deb對(duì)應(yīng)的是編譯好的二進(jìn)制包apt install直接拉取的就是這些文件。每行deb下面往往跟一行deb-src這是源碼包倉(cāng)庫(kù)平時(shí)絕大多數(shù)情況下用不到——除非你要apt source拉源碼重新編譯。把deb-src全部注釋掉apt update的耗時(shí)能明顯縮短因?yàn)?apt 不用再去拉取源碼包的索引。我一般恢復(fù)完默認(rèn)源之后會(huì)順手把所有的deb-src行都注釋掉除非當(dāng)周要做源碼級(jí)的二次開(kāi)發(fā)。這里有一個(gè)值得單獨(dú)說(shuō)明的點(diǎn)focal和focal-updates、focal-security不是同一個(gè)東西。默認(rèn)文件里每類(lèi)倉(cāng)庫(kù)分三段寫(xiě)focal是發(fā)布當(dāng)天的原始包集合focal-updates是發(fā)布之后陸續(xù)進(jìn)場(chǎng)的 bug 修復(fù)和功能更新focal-security是安全漏洞補(bǔ)丁三者是疊加關(guān)系不是互斥關(guān)系。很多人改源時(shí)只留了focal main結(jié)果apt upgrade永遠(yuǎn)拿不到安全更新這就是把三者的關(guān)系搞混了。2.2 四個(gè)組件名決定你能裝什么軟件默認(rèn)源里出現(xiàn)頻率最高的四個(gè)組件是main、restricted、universe、multiverse它們代表的是 Ubuntu 對(duì)軟件的不同支持力度和授權(quán)狀態(tài)。這四者的差別直接決定了apt install能不能搜到某個(gè)包很多人裝了軟件報(bào)Unable to locate package根源往往不是網(wǎng)絡(luò)而是組件沒(méi)開(kāi)全。組件軟件性質(zhì)Ubuntu 團(tuán)隊(duì)支持典型例子main自由軟件官方維護(hù)完全支持bash、nginx、python3restricted閉源但官方提供支持的驅(qū)動(dòng)與工具完全支持顯卡驅(qū)動(dòng)、部分固件universe社區(qū)維護(hù)的開(kāi)源軟件不提供支持僅收錄ffmpeg、vim 擴(kuò)展等multiverse非自由授權(quán)軟件不支持需自擔(dān)風(fēng)險(xiǎn)部分解碼器、壓縮格式工具focal-backports是另一個(gè)容易被忽略的倉(cāng)庫(kù)。它提供的是把新版本軟件反向移植到 20.04 的包比如你在 20.04 上想用比默認(rèn)倉(cāng)庫(kù)更新的某個(gè)工具版本在 backports 里可能找得到。但它不像其他倉(cāng)庫(kù)那樣默認(rèn)開(kāi)啟默認(rèn)文件里明確寫(xiě)了這些包未經(jīng)與 main 同等強(qiáng)度的測(cè)試生產(chǎn)環(huán)境慎開(kāi)。2.3 為什么默認(rèn)源是 cn.archive.ubuntu.com裝系統(tǒng)時(shí)如果選擇了國(guó)內(nèi)鏡像生成的sources.list里就會(huì)寫(xiě)入對(duì)應(yīng)的鏡像地址cn.archive.ubuntu.com是 Ubuntu 官方在中國(guó)的分發(fā)節(jié)點(diǎn)不是第三方源。很多人會(huì)糾結(jié)要不要把它換成阿里云或者清華的源答案是如果你在國(guó)內(nèi)且cn.archive.ubuntu.com的速度可以接受保持默認(rèn)不動(dòng)最穩(wěn)。只有當(dāng)你發(fā)現(xiàn)apt update經(jīng)常超時(shí)、下載速度只有幾十 KB 的時(shí)候才需要換第三方鏡像。換法在第 5 章展開(kāi)這里先記住原則默認(rèn)源是保底方案永遠(yuǎn)留一份備份。3. 恢復(fù)默認(rèn)源備份、寫(xiě)入、驗(yàn)證三步走3.1 先備份給系統(tǒng)留一顆后悔藥任何對(duì)sources.list的操作第一步永遠(yuǎn)是備份。不要覺(jué)得文件內(nèi)容你已經(jīng)記住了就跳過(guò)這一步——改源過(guò)程中手一抖少寫(xiě)一個(gè)字母、多寫(xiě)一個(gè)空格apt update就會(huì)用報(bào)錯(cuò)教育你。備份命令如下sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak.$(date %Y%m%d)這條命令把當(dāng)前sources.list復(fù)制一份帶日期的備份文件比如sources.list.bak.20250601放在同一個(gè)目錄下。日期后綴的作用是防止覆蓋之前的備份你改源改了三輪目錄里就有三份不同時(shí)間的備份隨時(shí)可以回退到任意一個(gè)時(shí)間點(diǎn)。備份做完之后建議順手列一下目錄確認(rèn)文件確實(shí)生成ls -l /etc/apt/sources.list*看到.list和.list.bak.20250601兩個(gè)文件同時(shí)存在再繼續(xù)下一步。這個(gè)習(xí)慣花不了十秒鐘但能避免你在一頓操作之后發(fā)現(xiàn)自己把唯一一份有效配置覆蓋了連后悔藥都沒(méi)有。3.2 寫(xiě)入默認(rèn)源內(nèi)容Ubuntu 20.04 桌面版通常自帶 gedit用sudo gedit /etc/apt/sources.list打開(kāi)編輯器服務(wù)器版沒(méi)有圖形界面就改用sudo nano /etc/apt/sources.list或者sudo vim /etc/apt/sources.list。無(wú)論用哪個(gè)編輯器打開(kāi)后先把文件里的內(nèi)容全部刪掉再粘貼下面的默認(rèn)源全文#deb cdrom:[Ubuntu 20.04 LTS _Focal Fossa_ - Release amd64 (20200423)]/ focal main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://cn.archive.ubuntu.com/ubuntu/ focal main restricted # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://cn.archive.ubuntu.com/ubuntu/ focal universe # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal universe deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://cn.archive.ubuntu.com/ubuntu/ focal multiverse # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal multiverse deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonicals ## partner repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu focal partner # deb-src http://archive.canonical.com/ubuntu focal partner deb http://security.ubuntu.com/ubuntu focal-security main restricted # deb-src http://security.ubuntu.com/ubuntu focal-security main restricted deb http://security.ubuntu.com/ubuntu focal-security universe # deb-src http://security.ubuntu.com/ubuntu focal-security universe deb http://security.ubuntu.com/ubuntu focal-security multiverse # deb-src http://security.ubuntu.com/ubuntu focal-security multiverse粘貼完成后保存退出然后執(zhí)行更新驗(yàn)證sudo apt update這里解釋幾個(gè)細(xì)節(jié)。第一cdrom行默認(rèn)是被注釋掉的它是安裝光盤(pán)的軟件源物理機(jī)安裝時(shí)偶爾會(huì)用到但我們現(xiàn)在都是網(wǎng)絡(luò)安裝或鏡像安裝這行不注釋反而是個(gè)隱患——apt 有時(shí)會(huì)因?yàn)樗崾灸悴迦牍獗P(pán)。第二security.ubuntu.com單獨(dú)成段不在cn.archive.ubuntu.com下面這是 Ubuntu 的刻意設(shè)計(jì)安全更新走獨(dú)立通道平時(shí)不要把這幾個(gè)focal-security行刪掉否則安全補(bǔ)丁就斷了。第三partner倉(cāng)庫(kù)默認(rèn)注釋那是 Canonical 合作伙伴的閉源軟件用不到就不開(kāi)。3.3 驗(yàn)證階段從 update 輸出讀健康狀態(tài)sudo apt update跑完后重點(diǎn)看輸出的最后幾行。正常情況下會(huì)看到類(lèi)似All packages are up to date或者一堆Hit結(jié)尾說(shuō)明源配置沒(méi)有語(yǔ)法問(wèn)題。如果輸出里有Err開(kāi)頭的行后面跟著404 Not Found或Could not resolve說(shuō)明源文件有問(wèn)題需要回頭看是哪一行。判斷方法很直接——Err行末尾會(huì)明確告訴你失敗的倉(cāng)庫(kù) URL對(duì)著源文件找對(duì)應(yīng)行即可。如果只是想確認(rèn)源配置在語(yǔ)法層面是否合法可以跑這個(gè)命令apt-get check它會(huì)檢查軟件包管理器的內(nèi)部狀態(tài)是否一致如果輸出沒(méi)有任何錯(cuò)誤提示說(shuō)明當(dāng)前的源文件至少是結(jié)構(gòu)完好的。這兩條命令組合起來(lái)基本能把恢復(fù)操作是否成功這件事落實(shí)到位。4. 避坑與排查改源后翻車(chē)現(xiàn)場(chǎng)實(shí)錄4.1 現(xiàn)象apt update 報(bào) 404 Not Found還帶一長(zhǎng)串 URL原因版本代號(hào)寫(xiě)錯(cuò)了。最常見(jiàn)的操作是把別人博客里的 bionic 源直接貼到 20.04 系統(tǒng)上bionic對(duì)應(yīng) 18.04focal才是 20.04。倉(cāng)庫(kù)服務(wù)器上根本沒(méi)有bionic這個(gè)目錄自然返回 404。解決把源文件里所有的bionic全部替換成focal用 sed 一步到位sudo sed -i s/bionic/focal/g /etc/apt/sources.list替換后再跑一次sudo apt update。這里有個(gè)細(xì)節(jié)值得注意如果你是從 18.04 升級(jí)上來(lái)的系統(tǒng)sources.list里可能還殘留著舊版本的源地址升級(jí)完成后 apt 不會(huì)自動(dòng)幫你改源文件必須手動(dòng)處理。4.2 現(xiàn)象The repository does not have a Release file原因這個(gè)報(bào)錯(cuò)比 404 更讓人懵因?yàn)樗恢苯痈嬖V你哪一行出了問(wèn)題。實(shí)際上它意味著 apt 在指定地址找不到可用的 Release 元數(shù)據(jù)文件。常見(jiàn)原因有三個(gè)套件名寫(xiě)錯(cuò)、組件名寫(xiě)錯(cuò)、或者整行格式缺字段。比如把focal main restricted寫(xiě)成focal mainrestrictedapt 會(huì)嘗試訪問(wèn)一個(gè)不存在的倉(cāng)庫(kù)目錄。解決逐行對(duì)照默認(rèn)源文件檢查。重點(diǎn)看每一行的第四、第五個(gè)字段是否和默認(rèn)文件完全一致。如果自己看不出來(lái)直接刪掉重來(lái)把第 3 章的默認(rèn)源全文再粘貼一遍這是效率最高的做法。與其花半小時(shí)猜哪行錯(cuò)了不如三十秒重寫(xiě)。4.3 現(xiàn)象NO_PUBKEY 或 GPG 簽名驗(yàn)證失敗原因源文件本身沒(méi)毛病但系統(tǒng)缺少該倉(cāng)庫(kù)的公鑰。這種情況通常發(fā)生在你額外添加了第三方源之后比如 ROS 源、Docker 源添加源的命令執(zhí)行了一半wget 公鑰成功但 add-apt-repository 沒(méi)跑完或者公鑰過(guò)期了。解決報(bào)錯(cuò)信息里會(huì)直接給出缺失的 key ID形如NO_PUBKEY F42ED6FBAB17C654取后八位執(zhí)行sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AB17C654不過(guò)apt-key在 20.04 里已經(jīng)標(biāo)記為廢棄推薦用更規(guī)范的方式sudo gpg --keyserver keyserver.ubuntu.com --recv-keys AB17C654 sudo gpg --export AB17C654 | sudo tee /etc/apt/trusted.gpg.d/custom-source.gpg注意不要因?yàn)閳?bào) GPG 錯(cuò)誤就順手加--allow-unauthenticated強(qiáng)行繞過(guò)簽名驗(yàn)證這等于把系統(tǒng)軟件源的安全防線拆了裝到帶毒的第三方包后悔都來(lái)不及。4.4 現(xiàn)象apt update 卡住不動(dòng)或者提示 Media change原因cdrom那行沒(méi)有被注釋掉。apt 在讀取源列表時(shí)發(fā)現(xiàn)cdrom:開(kāi)頭的條目會(huì)認(rèn)為需要訪問(wèn)光盤(pán)設(shè)備于是停下來(lái)等待你插入安裝介質(zhì)。很多新手在恢復(fù)源時(shí)把注釋符號(hào)#刪掉了就會(huì)觸發(fā)這個(gè)詭異的提示。另一個(gè)常見(jiàn)原因是某個(gè)網(wǎng)絡(luò)源響應(yīng)極慢apt 默認(rèn)不設(shè)超時(shí)上限會(huì)一直干等。解決確認(rèn)cdrom行開(kāi)頭有#確保它處于注釋狀態(tài)。網(wǎng)絡(luò)源慢的問(wèn)題要么換鏡像源見(jiàn)第 5 章要么給 apt 增加超時(shí)配置。在/etc/apt/apt.conf.d/下新建一個(gè)文件比如99timeout寫(xiě)入Acquire::http::Timeout 10; Acquire::https::Timeout 10; Acquire::ftp::Timeout 10;保存后 apt 在單個(gè)源上最多等 10 秒超時(shí)就跳過(guò)并報(bào)錯(cuò)不會(huì)再無(wú)限期卡住。4.5 現(xiàn)象apt update 能過(guò)但 apt install 報(bào) Unable to locate package原因這個(gè)報(bào)錯(cuò)和源文件格式無(wú)關(guān)多半是你想裝的軟件不在當(dāng)前啟用的組件里。比如想裝某個(gè) multiverse 組件里的軟件但源里只配了main restrictedapt 壓根不知道這個(gè)包存在。解決缺哪個(gè)組件就補(bǔ)哪個(gè)。執(zhí)行sudo apt install software-properties-common后可以用add-apt-repository管理組件和第三方源但最簡(jiǎn)單直接的辦法還是確認(rèn)源文件里focal universe multiverse這些行都在。在 Ubuntu 20.04 上裝 ROS noetic 之前很多人的Unable to locate package就是因?yàn)橹婚_(kāi)了 main沒(méi)裝 universe 和 multiverse。5. 不只是恢復(fù)按場(chǎng)景把默認(rèn)源改造成順手的樣子5.1 官方源太慢只替換域名不碰套件和組件如果你身處國(guó)內(nèi)且cn.archive.ubuntu.com速度不理想可以考慮換成阿里云或清華的鏡像。換源有一個(gè)鐵律只換域名套件名和組件名完全不動(dòng)。因?yàn)殓R像站的結(jié)構(gòu)和官方站完全一致只是分發(fā)節(jié)點(diǎn)不同。用 sed 替換域名最省事sudo sed -i s/cn.archive.ubuntu.com/mirrors.aliyun.com/g /etc/apt/sources.list sudo apt update換成清華源就改為mirrors.tuna.tsinghua.edu.cn。替換之后務(wù)必執(zhí)行sudo apt update確認(rèn)新源可用然后sudo apt upgrade驗(yàn)證升級(jí)流程是否正常。這里有個(gè)很容易忽略的點(diǎn)換源之后 apt 的索引緩存里還是舊源的記錄有時(shí)會(huì)殘留奇怪的報(bào)錯(cuò)可以先清理緩存再更新sudo apt clean sudo apt update5.2 裝 ROS 或深度學(xué)習(xí)環(huán)境前源應(yīng)該怎么配在 Ubuntu 20.04 上裝 ROS noetic 之前光配好系統(tǒng)源是不夠的還要把 ROS 自己的源加進(jìn)去。常見(jiàn)做法是分兩步先用系統(tǒng)默認(rèn)源把基礎(chǔ)依賴裝齊再添加 ROS 官方源并導(dǎo)入公鑰。這個(gè)順序很重要因?yàn)?ROS 源里的包依賴大量系統(tǒng)包如 boost、python3系統(tǒng)源不健康ROS 裝上必然缺依賴。比如用中科大 ROS 鏡像時(shí)先執(zhí)行sudo sh -c echo deb http://packages.ros.org/ros/ubuntu focal main /etc/apt/sources.list.d/ros-latest.list添加 ROS 源再sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654導(dǎo)入公鑰最后sudo apt update。整個(gè)過(guò)程之后你可能會(huì)看到第 4 章里說(shuō)的 NO_PUBKEY 報(bào)錯(cuò)處理方式就是對(duì)著 key ID 重新導(dǎo)入不用慌。搭 yolov8 這類(lèi)深度學(xué)習(xí)環(huán)境時(shí)邏輯也一樣系統(tǒng)源先恢復(fù)默認(rèn)再用 pip 的-i https://pypi.tuna.tsinghua.edu.cn/simple加速 Python 包下載apt 源和 pip 源分開(kāi)處理不要混為一談。5.3 一個(gè)實(shí)用的源檢查腳本改源是高頻操作每次手動(dòng)驗(yàn)證又麻煩。我一般會(huì)在機(jī)器上留一個(gè)小腳本放到/usr/local/bin/check-apt-source.sh#!/bin/bash echo 檢查源文件語(yǔ)法 sudo apt-get check echo 執(zhí)行 update 并提取關(guān)鍵輸出 sudo apt update 21 | grep -E Err|Ign|W: || echo 更新正常無(wú)錯(cuò)誤 echo 列出可升級(jí)的安全更新數(shù)量 apt list --upgradable 2/dev/null | grep -c ^ || echo 0保存后賦予執(zhí)行權(quán)限chmod x /usr/local/bin/check-apt-source.sh之后每次改完源直接跑這個(gè)腳本三行輸出就能確認(rèn)源的健康狀態(tài)。腳本里的grep -E Err|Ign|W:會(huì)把 update 輸出里的錯(cuò)誤和警告過(guò)濾出來(lái)沒(méi)有匹配到時(shí)自動(dòng)輸出「更新正?!贡苊饷看嗡⒁黄凛敵鲞€要自己找錯(cuò)。6. 最后這一步驗(yàn)證技巧值得養(yǎng)成習(xí)慣恢復(fù)完源文件、跑完sudo apt update很多人到這里就停了。但我建議再多做一步用apt-cache policy驗(yàn)證包來(lái)源。這個(gè)命令能告訴你系統(tǒng)實(shí)際從哪個(gè)倉(cāng)庫(kù)解析某個(gè)包也能確認(rèn)你的源配置是否真的生效。執(zhí)行方式很簡(jiǎn)單apt-cache policy nginx輸出里會(huì)列出Candidate版本和Version table重點(diǎn)看500 http://cn.archive.ubuntu.com/ubuntu focal/main amd64 Packages這類(lèi)行它表示 nginx 是從你配置的 focal main 里解析出來(lái)的。如果這里顯示的是別的地址說(shuō)明你的源文件可能被其他配置覆蓋了——比如/etc/apt/sources.list.d/目錄下還有別的文件在起作用。這一點(diǎn)經(jīng)常被人忽略/etc/apt/sources.list不是唯一生效的源配置。系統(tǒng)還會(huì)讀取/etc/apt/sources.list.d/目錄下所有以.list結(jié)尾的文件這些文件里的源和主文件是疊加關(guān)系。有些軟件安裝時(shí)會(huì)自動(dòng)往這個(gè)目錄寫(xiě)入自己的源比如 Docker、VS Code如果安裝后出現(xiàn)源沖突不要只盯主文件檢查一下這個(gè)目錄下的文件列表。ls -l /etc/apt/sources.list.d/看到不認(rèn)識(shí)的.list文件先cat看一眼內(nèi)容確認(rèn)來(lái)源再?zèng)Q定是否禁用——把文件后綴改成.list.disabled就可以臨時(shí)停用而不用刪除這是個(gè)很實(shí)用的技巧。我自己的習(xí)慣是每次改完源強(qiáng)制走一遍固定的三連——備份、改文件、sudo apt update后跑一次apt-cache policy 隨便一個(gè)已安裝軟件確認(rèn)來(lái)源。這套流程在最開(kāi)始也救過(guò)我不少次尤其是在 RK3588 這類(lèi)板子上燒寫(xiě)完系統(tǒng)、磁盤(pán)空間緊張的時(shí)候源一旦配錯(cuò)apt 報(bào)錯(cuò)疊加磁盤(pán)不足排查起來(lái)非常折磨。從那以后我每次在新機(jī)器上配源或者幫別人修源都強(qiáng)制走一遍備份加驗(yàn)證的流程不再跳過(guò)任何一步。希望這篇記錄能幫你避開(kāi)那些我踩過(guò)的坑。本文還有配套的精品資源點(diǎn)擊獲取