介紹常見 Linux 操作系統的安裝包管理工具,主要介紹其使用命令!
包管理系統除了安裝軟件外,它還提供了工具來更新已經安裝的包。包存儲庫有助于確保你的系統中使用的代碼是經過審查的,并且軟件的安裝版本已經得到了開發人員和包維護人員的認可。
1. dpkg
Ubuntu、Debian
dpkg 命令是 Debian Linux 系統用來安裝、創建和管理軟件包的實用工具。
命令行使用
# dpkg(選項)(參數) $ dpkg --help Usage: dpkg [ ...] # 選項 -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
2. apt
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
3. rpm
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 程序名` # 返回軟件包的文件列表
4. yum
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
5. dnf
RHEL8、CentOS8
DNF 使用 libsolv 進行依賴解析,由 SUSE 開發和維護,旨在提高性能。Yum 主要是用 Python 編寫的,它有自己的應對依賴解析的方法。它的 API 沒有完整的文檔,它的擴展系統只允許 Python 插件。Yum 是 RPM 的前端工具,它管理依賴關系和資源庫,然后使用 RPM 來安裝、下載和刪除包。
由于 Yum 中許多長期存在的問題仍未得到解決,因此 Yum 包管理器已被 DNF 包管理器取代。這些問題包括性能差、內存占用過多、依賴解析速度變慢等。兩個管理包工具的更多區別可以查看,What is the difference between DNF and YUM? 進行閱讀。
安裝 DNF 包管理器
# 依賴 $ 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 clea
一顆小胡椒
安全圈
看雪學苑
LemonSec
CNCERT國家工程研究中心
系統安全運維
LemonSec
betasec
HACK之道
黑客技術和網絡安全
聚銘網絡
系統安全運維