沒有人規定Linux一定要換源……要不要換源、要換什麼源,要看你的需求和碰到的問題是什麼。

比如因為沒有訂閱的問題將個人安裝的RHEL系統的付費使用源換成CentOS的免費使用源;

比如因為因為網路延遲或封禁等問題將遠端源換成近端鏡像源;

比如因為個人喜好或工作需要等原因將穩定舊版本的源換成新版本甚至最新測試版本的源;

……

……

Linux系統就是由軟體組成的,一套基本的軟體源基本代表一個不同版本甚至不同類型的Linux系統。你換一個源,就相當於換一個「軟體供應商」,這個「供應商」有可能是另一個原始供應商,也可能是二道販子,也可能是和原始供應商有合作的第三方供應商等。


什麼是源?

軟體源是debian系的概念,把軟體放在一個pool裡面,用一條命令就可以自動從指定伺服器下載並安裝。源列表是/etc/apt/sources.list,裡面寫了你所用的伺服器地址,這個路徑有三個部分,分別解釋一下:

  1. etc:代表附加物的意思,英文全稱etcetra。換句話說,是一個底層的重要項目,通常添加一些次等重要的零碎事物。今天, 「etc」包含了廣泛的系統配置文件,這些配置文件幾乎包含了系統配置的方方面面,同樣非常重要。
  2. apt:Advanced Packaging Tool,是Linux下的一款安裝包管理工具,是一個客戶/伺服器系統。
  3. sources.list:作為操作的一部分,APT使用一個文件列出可獲得軟體包的鏡像站點地址,這個文件就是/etc/apt/sources.list

最初只有.tar.gz的打包文件,用戶必須編譯每個他想在GNU/Linux上運行的軟體。用戶們普遍認為系統很有必要提供一種方法來管理這些安裝在機器上的軟體包,當Debian誕生時,這樣一個管理工具也就應運而生,它被命名為dpkg。從而著名的「package」概念第一次出現在GNU/Linux系統中,稍後Red Hat才決定開發自己的「rpm」包管理系統。

很快一個新的問題難倒了GNU/Linux製作者,他們需要一個快速、實用、高效的方法來安裝軟體包,當軟體包更新時,這個工具應該能自動管理關聯文件和維護已有配置文件。Debian再次率先解決了這個問題,APT(Advanced Packaging Tool)作為dpkg的前端誕生了。APT後來還被Conectiva改造用來管理rpm,並被其它Linux發行版本採用為它們的軟體包管理工具。

APT工作原理

APT是一個客戶/伺服器系統。在伺服器上先複製所有DEB包(DEB是Debian軟體包格式的文件擴展名),然後用APT的分析工具(genbasedir)根據每個DEB 包的包頭(Header)信息對所有的DEB包進行分析,並將該分析結果記錄在一個文件中,這個文件稱為DEB 索引清單,APT伺服器的DEB索引清單置於base文件夾內。一旦APT 伺服器內的DEB有所變動,一定要使用genbasedir產生新的DEB索引清單。客戶端在進行安裝或升級時先要查詢DEB索引清單,從而可以獲知所有具有依賴關係的軟體包,並一同下載到客戶端以便安裝。

當客戶端需要安裝、升級或刪除某個軟體包時,客戶端計算機取得DEB索引清單壓縮文件後,會將其解壓置放於/var/state/apt/lists/,而客戶端使用apt-get install或apt-get upgrade命令的時候,就會將這個文件夾內的數據和客戶端計算機內的DEB資料庫比對,知道哪些DEB已安裝、未安裝或是可以升級的。

可以理解為,APT是個客戶端,這個客戶端先從伺服器上獲取所有包的信息,並記錄在一個清單里。當用戶使用apt-get之類的指令時,無論是升級 安裝 還是刪除。APT都會先去找清單(清單里有伺服器包的信息),然後對照本地的庫。知道哪些包安裝了,哪些沒安裝,哪些是可以升級的。

為什麼要換源?

所謂換源不過就是換掉/etc/apt/source.list裡邊的清單,這個清單就是上邊說的apt要對比的那個單子,也就是我們下載、安裝或者卸載deb包的伺服器地址。

如果是國外的源,也就是我們需要去訪問國外的伺服器來更新包,訪問速度是非常慢的。

另外不同的軟體源所包含的deb包是不同的,當我們用sudo apt install abc安裝abc的時候,可能你用的A的源,會提示你沒有這個軟體包,但你換成B的源,就可以下載abc了。

不過大多數人換源是因為慢啦,這種一款應用只在某家的源才有的情況,我是沒遇到過呢...

參考鏈接:Linux軟體源的概念


換源是因為大部分linux官方源都是國外的速度慢,而且失敗的概率高,幾百兆的更新速度幾十K甚至幾K能急死個人。使用科大,阿里,網易的源速度飛快,不但節省生命,還可以降低心臟病發病概率。

當然,如果用深度,麒麟,UOS,EulerOS估計就不用換源了。


  1. 正常情況下,使用鏡像源源和官方源下載到的東西是一樣的,只不過鏡像源的同步會滯後一小段時間。
  2. 國內網路環境特殊,除了deepin以外,其他Linux發行版從官方源下載東西都很慢,鏡像源能提供更快的速度。
  3. 使用鏡像源可以給官方源的伺服器減壓(話說國內清華的源壓力也不小)
  4. 使用官方源會佔用出口帶寬,使用我國大區域網內的鏡像源可以節省出口帶寬,緩解網路高峰期時的線路擁堵情況。


一般都是因為下載速度


推薦閱讀:
相关文章