介紹常見 Linux 操作系統的安裝包管理工具,主要介紹其使用命令!
包管理系統除了安裝軟件外,它還提供了工具來更新已經安裝的包。包存儲庫有助于確保你的系統中使用的代碼是經過審查的,并且軟件的安裝版本已經得到了開發人員和包維護人員的認可。
Ubuntu、Debian
dpkg 命令是 Debian Linux 系統用來安裝、創建和管理軟件包的實用工具。
# dpkg(選項)(參數)
$ dpkg --help
Usage: dpkg [<option> ...] <command>
# 選項
-i:安裝軟件包
-r:刪除軟件包
-P:刪除軟件包的同時刪除其配置文件
-L:顯示于軟件包關聯的文件
-l:顯示已安裝軟件包列表
--unpack:解開軟件包
-c:顯示軟件包內文件列表
--confiugre:配置軟件包
# 參數
Deb軟件包:指定要操作的.deb軟件包
# 安裝包
$ dpkg -i package.deb
# 刪除包
$ dpkg -r package
# 刪除包(包括配置文件)
$ dpkg -P package
# 列出與該包關聯的文件
$ dpkg -L package
# 顯示該包的版本
$ dpkg -l package
# 解開deb包的內容
$ dpkg --unpack package.deb
# 搜索所屬的包內容
$ dpkg -S keyword
# 列出當前已安裝的包
$ dpkg -l
# 列出deb包的內容
$ dpkg -c package.deb
# 配置包
$ dpkg --configure package
# 列出已安裝軟件包
$ sudo dpkg-query -l
$ sudo dpkg-query -l | less
$ sudo dpkg-query -l | grep tmux
Ubuntu、Debian
apt-get 命令是 Debian Linux 發行版中的 APT 軟件包管理工具。所有基于 Debian 的發行都使用這個包管理系統。deb 包可以把一個應用的文件包在一起,大體就如同 Windows 上的安裝文件。
# apt-get(選項)(參數)
$ apt --help
Usage: apt [options] command
# 選項
-c:指定配置文件
# 參數
管理指令:對APT軟件包的管理操作
軟件包:指定要操縱的軟件包
# 更新所有已安裝的軟件包
$ apt-get upgrade
# 將系統升級到新版本
$ apt-get dist-upgrade
# 更新
$ apt-get update
# 安裝一個新軟件包
$ apt-get install packagename
# 卸載一個已安裝的軟件包(保留配置文件)
$ apt-get remove packagename
# 卸載一個已安裝的軟件包(刪除配置文件)
$ apt-get –purge remove packagename
# 來刪除你已經刪掉的軟件
$ apt-get autoclean apt
# 會把安裝的軟件的備份也刪除
$ apt-get clean
# 列出已安裝軟件包
$ sudo apt list --installed
$ sudo apt list --installed | less
$ sudo apt list --installed | grep tmux
RHEL、CentOS
rpm 命令是 RPM 軟件包的管理工具。rpm 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程序,由于它遵循 GPL 規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM 套件管理方式的出現,讓 Linux 易于安裝,升級,間接提升了 Linux 的適用度。
# rpm(選項)(參數)
$ rpm --help
Usage: rpm [OPTION...]
# 選項
-a:查詢所有套件
-c:只列出組態配置文件,本參數需配合"-l"參數使用
-d:只列出文本文件,本參數需配合"-l"參數使用
-e<套件檔>或--erase<套件檔>:刪除指定的套件
-f<文件>+:查詢擁有指定文件的套件
-h或--hash:套件安裝時列出標記
-i:顯示套件的相關信息
-i<套件檔>或--install<套件檔>:安裝指定的套件檔
-l:顯示套件的文件列表
-p<套件檔>+:查詢指定的RPM套件檔
-q:使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶
-R:顯示套件的關聯性信息
-s:顯示文件狀態,本參數需配合"-l"參數使用
-U<套件檔>或--upgrade<套件檔>:升級指定的套件檔
-v:顯示指令執行過程
-vv:詳細顯示指令執行過程,便于排錯
# 參數
軟件包:指定要操縱的rpm軟件包
# 安裝
$ rpm -ivh your-package.rpm
# 強制安裝
$ rpm --force -ivh your-package.rpm
# 卸載
$ rpm -e proftpd-1.2.8
# 列出所有安裝過的包
$ rpm -qa
$ rpm -qa | grep sql
# rpm包中的文件安裝到那里
$ rpm -ql ***.rpm
# 一個沒有安裝過的軟件包
$ rpm -qlp ***.rpm
# 一個已經安裝過的軟件包
$ rpm -ql ***.rpm
# 某個程序是哪個軟件包安裝
$ rpm -qf `which 程序名` # 返回軟件包的全名
$ rpm -qif `which 程序名` # 返回軟件包的有關信息
$ rpm -qlf `which 程序名` # 返回軟件包的文件列表
CentOS6、CentOS7
yum 命令是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的軟件包管理器,它可以使系統管理人員交互和自動化地更新與管理 RPM 軟件包,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
# yum(選項)(參數)
$ yum --help
Loaded plugins: fastestmirror, langpacks
Usage: yum [options] COMMAND
# 選項
-h:顯示幫助信息;
-y:對所有的提問都回答“yes”;
-c:指定配置文件;
-q:安靜模式;
-v:詳細模式;
-d:設置調試等級(0-10);
-e:設置錯誤等級(0-10);
-R:設置yum處理一個命令的最大等待時間;
-C:完全從緩存中運行,而不去下載或者更新任何頭文件。
# 參數
install:安裝rpm軟件包;
update:更新rpm軟件包;
check-update:檢查是否有可用的更新rpm軟件包;
remove:刪除指定的rpm軟件包;
list:顯示軟件包的信息;
search:檢查軟件包的信息;
info:顯示指定的rpm軟件包的描述信息和概要信息;
clean:清理yum過期的緩存;
shell:進入yum的shell提示符;
resolvedep:顯示rpm軟件包的依賴關系;
localinstall:安裝本地的rpm軟件包;
localupdate:顯示本地rpm軟件包進行更新;
deplist:顯示rpm軟件包的所有依賴關系。
# 安裝
$ yum install # 全部安裝
$ yum install package1 # 安裝指定的安裝包package1
$ yum groupinsall group1 # 安裝程序組group1
# 更新和升級
$ yum update # 全部更新
$ yum update package1 # 更新指定程序包package1
$ yum check-update # 檢查可更新的程序
$ yum upgrade package1 # 升級指定程序包package1
$ yum groupupdate group1 # 升級程序組group1
# 查找顯示
$ yum list installed | grep mysql
$ yum list installed mysql*
$ yum info package1 # 顯示安裝包信息package1
$ yum list # 顯示所有已經安裝和可以安裝的程序包
$ yum list package1 # 顯示指定程序包安裝情況package1
$ yum groupinfo group1 # 顯示程序組group1信息
# 刪除程序
$ yum remove/erase package1 # 刪除程序包package1
$ yum groupremove group1 # 刪除程序組group1
$ yum deplist package1 # 查看程序package1依賴情況
# 清除緩存
$ yum clean packages # 清除緩存目錄下的軟件包
$ yum clean headers # 清除緩存目錄下的 headers
$ yum clean oldheaders # 清除緩存目錄下舊的 headers
RHEL8、CentOS8
DNF 使用 libsolv 進行依賴解析,由 SUSE 開發和維護,旨在提高性能。Yum 主要是用 Python 編寫的,它有自己的應對依賴解析的方法。它的 API 沒有完整的文檔,它的擴展系統只允許 Python 插件。Yum 是 RPM 的前端工具,它管理依賴關系和資源庫,然后使用 RPM 來安裝、下載和刪除包。
由于 Yum 中許多長期存在的問題仍未得到解決,因此 Yum 包管理器已被 DNF 包管理器取代。這些問題包括性能差、內存占用過多、依賴解析速度變慢等。兩個管理包工具的更多區別可以查看,What is the difference between DNF and YUM? 進行閱讀。
# 依賴
$ yum install -y epel-release
# 安裝
$ yum install -y dnf
# 檢查
$ dnf –version
# 安裝軟件包
$ dnf install nano
# 升級軟件包
$ dnf update systemd
# 升級所有系統軟件包
$ dnf update
$ dnf upgrade
# 檢查系統軟件包的更新
$ dnf check-update
# 刪除軟件包
$ dnf remove nano
$ dnf erase nano
# 刪除無用孤立的軟件包
$ dnf autoremove
# 刪除緩存的無用軟件包
$ dnf clean all
# 查看系統中可用的DNF軟件庫
$ dnf repolist
# 查看系統中可用和不可用的所有的DNF軟件庫
$ dnf repolist all
# 列出所有RPM包
$ dnf list
# 列出所有安裝了的RPM包
$ dnf list installed
# 列出所有可供安裝的RPM包
$ dnf list available
# 搜索軟件庫中的RPM包
$ dnf search nano
# 查找某一文件的提供者
$ dnf provides /bin/bash
# 查看軟件包詳情
$ dnf info nano
# 查看所有的軟件包組
$ dnf grouplist
# 安裝一個軟件包組
$ dnf groupinstall 'Educational Software'
# 升級一個軟件包組中的軟件包
$ dnf groupupdate 'Educational Software'
# 刪除一個軟件包組
$ dnf groupremove 'Educational Software'
# 重新安裝特定軟件包
$ dnf reinstall nano
# 回滾某個特定軟件的版本
$ dnf downgrade acpid
# 查看DNF命令的執行歷史
$ dnf history
# 查看所有的DNF命令及其用途
$ dnf help
# 獲取有關某條命令的使用幫助
$ dnf help clean
鏈接:https://www.escapelife.site/posts/74caf2e7.html
(版權歸原作者所有,侵刪)
本篇介紹常見 Linux 操作系統的安裝包管理工具,主要介紹其使用命令。
包管理系統除了安裝軟件外,它還提供了工具來更新已經安裝的包。包存儲庫有助于確保你系統中使用的代碼是經過審查的,并且軟件的安裝版本已經得到了開發人員和包維護人員的認可。
Ubuntu、Debian
dpkg 命令是 Debian Linux 系統用來安裝、創建和管理軟件包的實用工具。
# dpkg(選項)(參數)
$ dpkg --help
Usage: dpkg [<option> ...] <command>
# 選項
-i:安裝軟件包
-r:刪除軟件包
-P:刪除軟件包的同時刪除其配置文件
-L:顯示于軟件包關聯的文件
-l:顯示已安裝軟件包列表
--unpack:解開軟件包
-c:顯示軟件包內文件列表
--confiugre:配置軟件包
# 參數
Deb軟件包:指定要操作的.deb軟件包
# 安裝包
$ dpkg -i package.deb
# 刪除包
$ dpkg -r package
# 刪除包(包括配置文件)
$ dpkg -P package
# 列出與該包關聯的文件
$ dpkg -L package
# 顯示該包的版本
$ dpkg -l package
# 解開deb包的內容
$ dpkg --unpack package.deb
# 搜索所屬的包內容
$ dpkg -S keyword
# 列出當前已安裝的包
$ dpkg -l
# 列出deb包的內容
$ dpkg -c package.deb
# 配置包
$ dpkg --configure package
# 列出已安裝軟件包
$ sudo dpkg-query -l
$ sudo dpkg-query -l | less
$ sudo dpkg-query -l | grep tmux
Ubuntu、Debian
apt-get 命令是 Debian Linux 發行版中的 APT 軟件包管理工具。所有基于 Debian 的發行都使用這個包管理系統。deb 包可以把一個應用的文件包在一起,大體就如同 Windows 上的安裝文件。
# apt-get(選項)(參數)
$ apt --help
Usage: apt [options] command
# 選項
-c:指定配置文件
# 參數
管理指令:對APT軟件包的管理操作
軟件包:指定要操縱的軟件包
# 更新所有已安裝的軟件包
$ apt-get upgrade
# 將系統升級到新版本
$ apt-get dist-upgrade
# 更新
$ apt-get update
# 安裝一個新軟件包
$ apt-get install packagename
# 卸載一個已安裝的軟件包(保留配置文件)
$ apt-get remove packagename
# 卸載一個已安裝的軟件包(刪除配置文件)
$ apt-get –purge remove packagename
# 來刪除你已經刪掉的軟件
$ apt-get autoclean apt
# 會把安裝的軟件的備份也刪除
$ apt-get clean
# 列出已安裝軟件包
$ sudo apt list --installed
$ sudo apt list --installed | less
$ sudo apt list --installed | grep tmux
RHEL、CentOS
rpm 命令是 RPM 軟件包的管理工具。rpm 原本是 Red Hat Linux 發行版專門用來管理 Linux 各項套件的程序,由于它遵循 GPL 規則且功能強大方便,因而廣受歡迎。逐漸受到其他發行版的采用。RPM 套件管理方式的出現,讓 Linux 易于安裝,升級,間接提升了 Linux 的適用度。
# rpm(選項)(參數)
$ rpm --help
Usage: rpm [OPTION...]
# 選項
-a:查詢所有套件
-c:只列出組態配置文件,本參數需配合"-l"參數使用
-d:只列出文本文件,本參數需配合"-l"參數使用
-e<套件檔>或--erase<套件檔>:刪除指定的套件
-f<文件>+:查詢擁有指定文件的套件
-h或--hash:套件安裝時列出標記
-i:顯示套件的相關信息
-i<套件檔>或--install<套件檔>:安裝指定的套件檔
-l:顯示套件的文件列表
-p<套件檔>+:查詢指定的RPM套件檔
-q:使用詢問模式,當遇到任何問題時,rpm指令會先詢問用戶
-R:顯示套件的關聯性信息
-s:顯示文件狀態,本參數需配合"-l"參數使用
-U<套件檔>或--upgrade<套件檔>:升級指定的套件檔
-v:顯示指令執行過程
-vv:詳細顯示指令執行過程,便于排錯
# 參數
軟件包:指定要操縱的rpm軟件包
# 安裝
$ rpm -ivh your-package.rpm
# 強制安裝
$ rpm --force -ivh your-package.rpm
# 卸載
$ rpm -e proftpd-1.2.8
# 列出所有安裝過的包
$ rpm -qa
$ rpm -qa | grep sql
# rpm包中的文件安裝到那里
$ rpm -ql ***.rpm
# 一個沒有安裝過的軟件包
$ rpm -qlp ***.rpm
# 一個已經安裝過的軟件包
$ rpm -ql ***.rpm
# 某個程序是哪個軟件包安裝
$ rpm -qf `which 程序名` # 返回軟件包的全名
$ rpm -qif `which 程序名` # 返回軟件包的有關信息
$ rpm -qlf `which 程序名` # 返回軟件包的文件列表
CentOS6、CentOS7
yum 命令是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的軟件包管理器,它可以使系統管理人員交互和自動化地更新與管理 RPM 軟件包,能夠從指定的服務器自動下載 RPM 包并且安裝,可以自動處理依賴性關系,并且一次安裝所有依賴的軟體包,無須繁瑣地一次次下載、安裝。
# yum(選項)(參數)
$ yum --help
Loaded plugins: fastestmirror, langpacks
Usage: yum [options] COMMAND
# 選項
-h:顯示幫助信息;
-y:對所有的提問都回答“yes”;
-c:指定配置文件;
-q:安靜模式;
-v:詳細模式;
-d:設置調試等級(0-10);
-e:設置錯誤等級(0-10);
-R:設置yum處理一個命令的最大等待時間;
-C:完全從緩存中運行,而不去下載或者更新任何頭文件。
# 參數
install:安裝rpm軟件包;
update:更新rpm軟件包;
check-update:檢查是否有可用的更新rpm軟件包;
remove:刪除指定的rpm軟件包;
list:顯示軟件包的信息;
search:檢查軟件包的信息;
info:顯示指定的rpm軟件包的描述信息和概要信息;
clean:清理yum過期的緩存;
shell:進入yum的shell提示符;
resolvedep:顯示rpm軟件包的依賴關系;
localinstall:安裝本地的rpm軟件包;
localupdate:顯示本地rpm軟件包進行更新;
deplist:顯示rpm軟件包的所有依賴關系。
# 安裝
$ yum install # 全部安裝
$ yum install package1 # 安裝指定的安裝包package1
$ yum groupinsall group1 # 安裝程序組group1
# 更新和升級
$ yum update # 全部更新
$ yum update package1 # 更新指定程序包package1
$ yum check-update # 檢查可更新的程序
$ yum upgrade package1 # 升級指定程序包package1
$ yum groupupdate group1 # 升級程序組group1
# 查找顯示
$ yum list installed | grep mysql
$ yum list installed mysql*
$ yum info package1 # 顯示安裝包信息package1
$ yum list # 顯示所有已經安裝和可以安裝的程序包
$ yum list package1 # 顯示指定程序包安裝情況package1
$ yum groupinfo group1 # 顯示程序組group1信息
# 刪除程序
$ yum remove/erase package1 # 刪除程序包package1
$ yum groupremove group1 # 刪除程序組group1
$ yum deplist package1 # 查看程序package1依賴情況
# 清除緩存
$ yum clean packages # 清除緩存目錄下的軟件包
$ yum clean headers # 清除緩存目錄下的 headers
$ yum clean oldheaders # 清除緩存目錄下舊的 headers
RHEL8、CentOS8
DNF 使用 libsolv 進行依賴解析,由 SUSE 開發和維護,旨在提高性能。Yum 主要是用 Python 編寫的,它有自己的應對依賴解析的方法。它的 API 沒有完整的文檔,它的擴展系統只允許 Python 插件。Yum 是 RPM 的前端工具,它管理依賴關系和資源庫,然后使用 RPM 來安裝、下載和刪除包。
由于 Yum 中許多長期存在的問題仍未得到解決,因此 Yum 包管理器已被 DNF 包管理器取代。這些問題包括性能差、內存占用過多、依賴解析速度變慢等。
# 依賴
$ yum install -y epel-release
# 安裝
$ yum install -y dnf
# 檢查
$ dnf –version