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