0、Ubuntu上安裝軟件的方式和原理
Ubuntu 中安裝軟件的方式:
在 Ubuntu 中軟件安裝的方式和 Windows 系統中雙擊 exe 文件的傻瓜式軟件安裝的方式有很大的不同,它主要可以分爲下面三種安裝方式:
- 可執行文件安裝。具體分爲2種,1)通過 apt 包管理工具從軟件源中安裝; 2)通過 deb 格式的軟件包安裝
- 從軟件源碼手動編譯安裝
通過軟件源安裝軟件的原理:
其實通過軟件源安裝軟件的原理非常簡單。
Ubuntu 系統中自帶了一個名爲 apt的軟件包管理工具,它的主要功能就是負責 Ubuntu 系統中所有軟件包的管理,包括從軟件源中下載軟件,卸載系統中已經安裝的軟件等。
而每當我們通過 sudo apt-get install
查找包含該軟件的軟件源的網址,然後就從這個網址上把指定的軟件給下載下來,然後由 apt-get 包管理工具在本地進行一些解壓和安裝的操作。
1、ubuntu上的3種軟件源
APT (Advanced Packaging Tool) 用於管理Ubuntu及其衍生版本的軟件包。APT依賴於存儲在Ubuntu軟件倉庫中的軟件包。Ubuntu軟件倉庫源是APT用於獲取軟件包的位置。
Ubuntu軟件倉庫源分爲以下幾種類型:
官方源(Main、Restricted、Universe、Multiverse)
第三方源(PPA)
本地源(Local)
其中:
1)官方源由Canonical官方維護。
2)第三方源由社區或第三方維護。
3)本地源則是本地計算機上存儲軟件包的位置。
2、官方源
Ubuntu 官方軟件源中包含了 Ubuntu 系統中所用到的絕大部分的軟件。
它對應的軟件源網址列表是 /etc/apt/sources.list。
在這個文件中,記錄了 Ubuntu 官方源的地址,基本格式內容如下所示
deb [web/ftp地址] [發行版名字][ main/contrib/non-free]
deb開頭的行設置下載軟件軟件包的路徑,而以deb-scr開頭的行設置下載軟件包源碼的路徑,
deb [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty main universe restricted multiverse
deb [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty-security main universe restricted multiverse
deb [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty-updates main universe restricted multiverse
deb [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty-backports main universe restricted multiverse
deb-src [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty main universe restricted multiverse
deb-src [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty-security main universe restricted multiverse
deb-src [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty-updates main universe restricted multiverse
deb-src [arch=amd64] http://mirrors.zju.edu.cn/ubuntu trusty-backports main universe restricted
Main、Restricted、Universe、Multiverse是Ubuntu官方源的四個組件。每個組件包含不同類型的軟件包。
Main:包含Ubuntu官方支持的自由軟件。
Restricted:包含Ubuntu官方支持的非自由軟件,如硬件驅動程序。
Universe:包含社區支持的自由軟件。
Multiverse:包含社區支持的非自由軟件。
例如,要安裝OpenSSH服務器軟件包,可以使用以下命令:
sudo apt-get update
sudo apt-get install openssh-server
3、第三方源
除了官方源之外,我們還可以添加第三方源,通過它們來獲取更多軟件包。
Ubuntu 爲了分辨官方的源和第三方的源才設計成在sources.list存儲官方源網址 和 sources.list.d/下存放第三方軟件源地址。
最常見的第三方源是PPA(Personal Package Archives),由社區維護
所謂 PPA 源,就是指 “Personal Package Archives” ,也就是個人軟件包集。
這其實是一個網站,即-launchpad.net。Launchpad 是 Ubuntu 母公司 Canonical 有限公司所架設的網站,是一個提供維護、支援或聯絡 Ubuntu 開發者的平臺。
由於不是所有的軟件都能進入 Ubuntu 的官方的軟件庫,launchpad.net 提供了 PPA,允許開發者建立自己的軟件倉庫,自由的上傳軟件。供用戶安裝和查看更新。
添加PPA源可以通過以下命令:
sudo add-apt-repository ppa:用戶名/倉庫名
sudo apt-get update
例如,要添加Node.js的PPA源,可以使用以下命令:
sudo add-apt-repository ppa:nodejs/ppa
sudo apt-get update
sudo apt-get install nodejs
例如,我們想要添加一個 Wireshark軟件的 PPA 源,我們可以根據它官網上提供的命令來進行添加,如下圖所示
當我們添加完 PPA 源之後,系統就會在 /etc/apt/sources.list.d/ 文件夾裏創建了兩個文件:
我們再來打開一下 wireshark-dev-stable-trusty.list文件,看看裏面的內容是什麼:
deb http://ppa.launchpad.net/wireshark-dev/stable/ubuntu trusty main
deb-src http://ppa.launchpad.net/wireshark-dev/stable/ubuntu trusty main
Ubuntu根據軟件包的開發組織對該軟件的支持程度,以及遵循來源的程度,劃分如下:
一.核心(Main)。官方維護的開源軟件,是由Ubuntu官方完全支持的軟件,包括大多數流行的、穩定的開源軟件,是Ubuntu默認安裝的基本軟件包。
二.公共(Universe)。社區維護的開源軟件,是由Ubuntu社區的計算機愛好者維護的軟件,是Linux世界中完全自由和開源的部分,包括了絕大多數軟件。
這些軟件都是以(Main)中的軟件包爲基礎,編寫而成。但此類軟件包沒有安全升級的保障。
三.受限(Restricted)。官方維護的非開源軟件,是專供特殊用途,且沒有自由軟件版權,不能直接修改的軟件,但仍然被Ubuntu團隊支持。
四.多元化(Multiverse)。非Ubuntu官方維護的非開源軟件,是那些非自由軟件,通常不能被修改,用戶使用這些軟件包時,需要特別注意版本問題。
Ubuntu根據軟件包的必要性和安全性,又將軟件包劃分爲四類:
一.安全更新(Security)。穩定的、安全的軟件包,是必須要安裝的軟件包。
二.最新更新(Updates)。最新完成的更新軟件包,建議安裝的。
三.推薦更新(Proposed)。提前釋放的更新,處於alpha測試階段的軟件包。
四.修補更新(Backports)。在Ubuntu舊版本中部分添加新的功能,該類軟件包無任何技術支持。
4、本地源
有時,我們需要將軟件包存儲在本地計算機上,例如在沒有internet連接時。可以通過創建本地源的方式自己管理軟件包。例如,可以將deb軟件包放在/var/cache/apt/archives目錄中,然後使用以下命令將該目錄添加爲本地源:
sudo apt-ftparchive packages /var/cache/apt/archives > Packages
sudo gzip -c Packages > Packages.gz
sudo apt-ftparchive release . > Release
然後,可以使用以下命令將該源添加到apt的源列表中:
sudo echo "deb [trusted=yes] file:///var/local_repo ./" > /etc/apt/sources.list.d/local.list #注意file後面三個/
sudo apt-get update
以上命令將在本地創建名爲local的源,並將/var/local_repo目錄添加爲其存儲軟件包的位置。
參考資料:
1、https://blog.csdn.net/ymz641/article/details/132959142