Ubuntu: 軟件庫(software repositories)


Linux 生態下,幾乎每個發行版都有自己的軟件庫(software repositories),Ubuntu 當然也不例外。Ubuntu 提供了四個不同的軟件庫,分別是 main、restricted、universe 和 multiverse:

本文主要介紹它們之間的區別。本文的演示環境為 Ubuntu Desktop 18.04。

Main 庫

Main 庫由 Ubuntu 官方支持,其中的軟件都是開源免費的。Ubuntu 的默認安裝中的所有開源軟件都在 main 庫中,另外還有一些比較重要的服務器軟件也被包含在 main 庫中。在 Ubuntu 發行版的生命周期中,main 庫中的軟件會有安全更新,嚴重的問題會被修復。

Main 庫是 Ubuntu 最重要的軟件庫,Ubuntu 官方(實際上是 Canonical 公司)承諾在發行版的生命周期中,這里面的每一個軟件包都會收到安全補丁和嚴重問題的修復補丁。比如對於 Ubuntu LTS(長期支持版)來說,支持周期為五年,就是保證在五年內會有安全更新。而這里的安全更新,實際上就是對 main 庫中的包進行安全更新。之所以會有這樣的保證,也是因為 main 庫中的軟件都是開源軟件,Ubuntu 自己的開發人員就可以修復這些問題而無需依賴第三方。

在 Ubuntu Desktop 中通過 GUI 工具管理軟件時,可以在軟件的詳細信息處看到該軟件屬於哪個庫,比如下圖中的 Vim 屬於 main 庫:

Restricted 庫

Restricted 庫中包含 Ubuntu 官方支持的閉源軟件(Closed-Source),主要是一些硬件驅動程序。比如運行一些游戲程序,需要安裝 NVIDIA 或 AMD 的圖形驅動程序來獲得最佳的圖形硬件性能。這些驅動程序可以通過 Ubuntu 中的其他驅動管理工具來啟用。

Ubuntu 官方將在承諾的支持期內為這些閉源的驅動程序和固件包提供支持。他們致力於讓這些驅動程序繼續工作,解決任何嚴重的問題,並堵住任何的安全漏洞。當然,Ubuntu 自己無法做到這一點——當出現問題時,他們必須等待硬件制造商發布新的驅動程序或更新有問題的驅動程序。因為代碼不是開源的,所以 Ubuntu 官方無法自己修復它,這就是為什么這里只包含關鍵的硬件驅動程序的原因(沒有其他的封閉源軟件得到官方支持)。

Universe 庫

Universe 庫中存放的是由社區維護的開源軟件。我們在 GUI 工具 Ubuntu Software 中看到的軟件多數都來自 universe 庫:

這些軟件包要么是自動從最新版本的 Debian 庫中導入的,要么是由 Ubuntu 社區上傳和維護的。
Ubuntu 不為 universe 庫中的軟件提供官方支持或更新。即便不能收更新,universe 庫中的軟件通常也能夠運行的很好。所以我們基本上可以放心的使用 universe 庫中的軟件!
但是,在服務器系統上,需要我們考慮安裝的服務器軟件是 main 庫的一部分還是  universe 庫的一部分。如果它來自 universe 庫,您需要關注其安全性更新。如果發現漏洞,您需要自己更新該服務器軟件。

同樣在 Ubuntu Software 中,可以在軟件的詳細信息處看到該軟件是否屬於 universe 庫,比如下圖中的 plan 程序就屬於 universe 庫:

Multiverse 庫

Multiverse 庫是不受 ubuntu 官方支持的軟件、閉源軟件和專利授權軟件聚集的地方。這是哪些有爭議的東西存在的地方。它包括像 Adobe Flash 插件這樣的閉源軟件,和那些依賴於閉源軟件的包,比如 Skype 的插件。它還包括受法律限制的開源軟件,例如侵犯專利的音頻和視頻播放軟件。這里不包括 DVD 播放軟件——開源的 libdvdcss DVD 播放庫存在嚴重的法律問題。

Ubuntu 不會在主發行版發布的同時發布這些包,但是我們卻可以從這里提供的內容獲得便利。在其他 Linux 發行版中,這里的內容通常可以在第三方存儲庫中找到,比如 Fedora 的 RPM Fusion、openSUSE 的 Packman 等。
和 universe 庫一樣,Multiverse 也是一個由社區支持的庫,因此這里不會保證有安全更新。

Download Server

Ubuntu 官方提供了上述庫的下載服務器,但是對於全球的使用者來說使用默認的服務器並不一定是最好的選擇。我們可以指定一個地理位置上比較近或者是認為下載速度比較快的服務器:

總結這樣下載更新文件的速度可能會有比較大的提升。

配置文件

我們在 GUI 工具中配置的 Download Server 信息都保存在配置文件 /etc/apt/sources.list 和 /etc/apt/sources.list.d 目錄下的文件中。/etc/apt/sources.list 中一般保存 Ubuntu 庫的配置信息,比如:

deb http://cn.archive.ubuntu.com/ubuntu/ bionic main restricted

這行信息指明 Ubuntu bionic(18.04) 版本的 main 庫和 restricted 庫的服務器地址為  http://cn.archive.ubuntu.com/ubuntu/。
如果要添加第三方軟件庫的信息,可以在 /etc/apt/sources.list.d 目錄下創建 .list 文件,把源信息寫入到文件中就可以了。

或者我們不使用 GUI 工具,直接編輯配置文件 /etc/apt/sources.list,把其中指定的默認的庫的 Download Server 修改為指定的服務器。修改后運行下面的命令,然后就可以使用新指定的服務器安裝包了:

$ sudo apt-get update

Other Softwares

還有一些軟件提供了自己的庫和下載服務器,它們被顯示為 "Other Software",比如下圖中顯示的 docker 和 vscode:

在我們安裝這些軟件前,需要先添加其下載服務器已經庫信息:

當然,你也可以通過編輯配置文件或者是通過命令完成同樣的任務。

參考:
What's the Difference Between Main, Restricted, Universe, and Multiverse on Ubuntu?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM