導讀 | 大多數現代類 Unix 操做系統都提供了一個集中的軟件包管理機制,以幫助用戶搜索、安裝和管理軟件。而軟件一般以「包」的形式存儲在倉庫「repository」中,對軟件包的使用和管理被稱爲包管理。而 Linux 包的基本組成部分一般有:共享庫、應用程序、服務和文檔。 |
包管理一般不只限於軟件的一次性安裝,還包括了對已安裝軟件包進行升級的工具。「包倉庫」有助於確保代碼已經在你使用的系統上進行了審覈,並由軟件開發者或包維護者進行管理。linux
在配置 Linux 服務器或開發環境時,一般都不只限於使用官方源。相較於現現在軟件版本快速更新迭代而言,雖然官方源所使用的穩定版軟件包極可能已過期,但對於系統管理員和開發人員來講,掌握常見 Linux 包管理基本操做仍是一項必備的經常使用技能。數據庫
本文將介紹經常使用 Linux 發行版對:搜索、安裝和升級等包管理方面的基本方式和快速參考,能夠幫助你快速瞭解不一樣 Linux 包管理基本操做與技巧。緩存
軟件包管理系統:簡要介紹安全
大多數包管理系統是創建在包文件上的集合,包文件一般包含編譯好的二進制文件和其它資源組成的:軟件、安裝腳本、元數據及其所需的依賴列表。服務器
雖然大多數流行的 Linux 發行版在包管理工具、方式和形式都大同小異,但卻仍是有平臺差別:工具
系統 | 格式 | 工具 |
---|---|---|
Debian | .deb | apt, apt-cache、apt-get、dpkg |
Ubuntu | .deb | apt、apt-cache、apt-get、dpkg |
CentOS | .rpm | yum |
Fedora | .rpm | dnf |
Debian 及其衍生產品如:Ubuntu、Linux Mint 和 Raspbian 的包格式爲.deb文件,APT 是最多見包操做命令,可:搜索庫、安裝包及其依賴和管理升級。而要直接安裝現成.deb包時須要使用dpkg命令。測試
CentOS、Fedora 及 Red Hat 系列 Linux 使用RPM包文件,並使用yum命令管理包文件及與軟件庫交互。ui
在最新的 Fedora 版本中,yum命令已被dnf取代進行包管理。操作系統
更新本地包數據庫列表命令行
大多數 Linux 都使用本地數據庫來存儲遠程可用的包倉庫列表,因此在安裝或升級包以前最好更新一下這個數據庫。
系統 | 命令 |
---|---|
Debian / Ubuntu | sudo apt-get update |
CentOS | yum check-update |
Fedora | dnf check-update |
升級已安裝的包
在沒有包管理方式時,要升級並保持 Linux 已裝軟件處在最新版本是一個巨大的工程,管理員和用戶不得不手動跟蹤上游軟件版本變化及安全警告。在有了包管理系統以後,只需幾條命令即可保持軟件最新。
系統 | 命令 | 備註 |
---|---|---|
Debian / Ubuntu | sudo apt-get upgrade | 僅升級已安裝的軟件包 |
sudo apt-get dist-upgrade | 可添加或刪除程序包,以知足新的依賴。 | |
CentOS | sudo yum update | |
Fedora | sudo dnf upgrade |
查找/搜索軟件包
大多數 Linux 桌面版本都提供用戶可搜索和安裝軟包的界面,這是找尋和安裝軟件的最佳方法。但對於追求效率和服務器管理員來講,使用命令行工具查找/搜索軟件包纔是正途。
系統 | 命令 | 備註 |
---|---|---|
Debian / Ubuntu | apt-cache search 搜索內容 | |
CentOS | yum search 搜索內容 | |
yum search all 搜索內容 | 搜索全部內容,包括包描述。 | |
Fedora | dnf search 搜索內容 | |
dnf search all 搜索內容 | 搜索全部內容,包括包描述。 |
查看某個軟件包信息
在決定安裝哪一個包以前,咱們每每都須要查看該軟件包的詳細說明。包的說明文件中一般包括:包名、版本號及依賴列表等元數據,可使用以下命令來查看。
系統 | 命令 | 備註 |
---|---|---|
Debian / Ubuntu | apt-cache show 包名 | 顯示有關軟件包的本地緩存信息 |
dpkg -s 包名 | 顯示包的當前安裝狀態 | |
CentOS | yum info 包名 | |
yum deplist 包名 | 列出包的以來 | |
Fedora | dnf info 包名 | |
dnf repoquery –requires 包名 | 列出包的以來 |
從軟件倉庫安裝包
一旦咱們知道某個軟件包的名稱以後,即可以使用以下命令從軟件倉庫安裝包。
系統 | 命令 | 備註 |
---|---|---|
Debian / Ubuntu | sudo apt-get install 包名 | |
sudo apt-get install 包1 包2 … | 安裝全部列出的包 | |
sudo apt-get install -y 包名 | 無需提示直接安裝 | |
CentOS | sudo yum install 包名 | |
sudo yum install 包1 包2 … | 安裝全部列出的包 | |
sudo yum install -y 包名 | 無需提示直接安裝 | |
Fedora | sudo dnf install 包名 | |
sudo dnf install 包1 包2 … | 安裝全部列出的包 | |
sudo dnf install -y 包名 | 無需提示直接安裝 |
從本地文件系統直接安裝包
不少時候,咱們在進行測試或從某個地方直接拿到軟件包以後須要從本地文件系統直接安裝包。Debian 及衍生系統可使用 dpkg進行安裝,CentOS 和 Fedora 系統使用 yum 和 dnf 命令進行安裝。
系統 | 命令 | 備註 |
---|---|---|
Debian / Ubuntu | sudo dpkg -i 包名.deb | |
sudo apt-get install -y gdebi&& sudo gdebi 包名.deb | 使用gdebi檢索缺乏的依賴關係 | |
CentOS | sudo yum install 包名.rpm | |
Fedora | sudo dnf install 包名.rpm |
移除已安裝的包
因爲包管理器知道哪些文件是由哪一個包提供的,因此在卸載不須要的軟件包以後一般能夠得到一個乾淨的系統。
系統 | 命令 | 備註 |
---|---|---|
Debian / Ubuntu | sudo apt-get remove 包名 | |
sudo apt-get autoremove | 自動移除已知不須要的包 | |
CentOS | sudo yum remove 包名 | |
Fedora | sudo dnf erase 包名 |
好了,本文算是對常見的 Linux 發行版包管理基本操做進行了介紹,以幫助新手更快入門及你們在切換 Linux 發行版時更快上手。
免費提供最新Linux技術教程書籍,爲開源技術愛好者努力作得更多更好:http://www.linuxprobe.com/