Linux常用包管理及命令
簡(jiǎn)介
在Linux上,安裝軟件的方式一般有幾種:系統(tǒng)包管理器安裝、源碼編譯、二進(jìn)制包,還有現(xiàn)在桌面系統(tǒng)用比較多的Snap、AppImage、Flatpak等。
Linux包管理
DPKG
dpkg是Debian系的包管理系統(tǒng),包后綴名是.deb。
apt命令可以快速安裝dpkg包,解決包與包的依賴關(guān)系。
常用命令:
- # 從軟件源同步最新的軟件信息并緩存到本地
- apt update
- # 安裝指定的包,并同時(shí)安裝其依賴的其他包。
- apt install [package]
- # 更新軟件版本
- apt upgrade
- # 查找軟件,沒有添加參數(shù)就是展示所有的軟件包,加關(guān)鍵字就是搜索指定的包
- apt list zlib*
- # 列出已經(jīng)安裝的軟件版本
- apt list --installed
- # 關(guān)鍵字搜索軟件的名稱和描述
- apt search zlib*
- # 卸載包,但是配置文件還是會(huì)保存著
- apt remove [package]
- # 卸載包,并刪除配置文件
- apt purge [package]
- # 卸載因安裝軟件自動(dòng)安裝的依賴
- apt autoremove
- # 刪除所有已下載的軟件包
- apt clean
- # 類似clean,但刪除的是過期的包(即已不能下載或者是無用的包)
- apt autoclean
RPM
RPM是紅帽系的包管理系統(tǒng),包后綴名是.rpm。

yum就是類似apt一樣的前端工具,可以很好地解決包與包之間的依賴關(guān)系。
dnf是yum的升級(jí)版本,是下一代的yum。dnf與yum的參數(shù)基本一致。
常用命令:
- # 安裝軟件,-y 表示直接安裝不詢問
- yum -y install nginx
- # 重新安裝
- yum reinstall nginx
- # 查找軟件
- yum list nginx
- # 查看包組(后面不加組名,就會(huì)列出所有的組)
- yum grouplist
- #根據(jù)關(guān)鍵字查找
- yum search nginx
- #根據(jù)文件路徑查找包名,如果不知道文件具體路徑也可以用通配符進(jìn)行匹配
- yum provides /usr/bin/vim
- yum provides */vim
- #檢查更新
- yum check-update
- # 更新軟件,如果不執(zhí)行包名就是更新所有的包
- yum -y update
- #如果不更新指定的包可以使用-x參數(shù)
- yum -y update -x nginx
- # 卸載
- yum remove nginx
- # 卸載并刪除配置
- yum erase nginx
- #更新索引,可以加快查找依賴包的速度
- yum makecache
Pacman
Pacman是Arch系的包管理系統(tǒng),新版本包后綴名是.pkg.tar.zst,之前的版本是.pkg.tar.xz。
常用命令:
- # 更新系統(tǒng)
- pacman -Syu
- # 將本地的包數(shù)據(jù)庫與遠(yuǎn)程的倉庫進(jìn)行了同步
- pacman -Sy
- pacman -Su
- # 安裝包
- pacman -S [package]
- # 更新倉庫并安裝包
- pacman -Sy [package]
- # 更新本地包,一般用于降級(jí),如果是url會(huì)自動(dòng)去下載
- pacman -U /var/cache/pacman/pkg/yay-10.1.2-1-x86_64.pkg.tar.zst
- # 只刪除包,保留其全部已經(jīng)安裝的依賴關(guān)系
- pacman -R [package]
- # 在刪除包的同時(shí),刪除其所有沒有被其他已安裝軟件包使用的依賴關(guān)系
- pacman -Rs [package]
- #在刪除包的同時(shí),刪除所有依賴這個(gè)軟件包的程序
- pacman -Rsc [package]
- # ]在刪除包時(shí)不檢查依賴
- pacman -Rd [package
- #在倉庫中搜索含關(guān)鍵字的包
- pacman -Ss 關(guān)鍵字
- # 搜索已安裝的包
- pacman -Qs 關(guān)鍵字
- #查看有關(guān)包的詳盡信息
- pacman -Qi 包名
- #列出該包的文件
- pacman -Ql 包名
- #只下載包,不安裝
- pacman -Sw 包名
- #清理未安裝的包文件,包文件位于 /var/cache/pacman/pkg/ 目錄
- pacman -Sc
- #清理所有的緩存文件
- pacman -Scc
apk
Alpine使用apk進(jìn)行包管理,通過apk –help命令查看完整的包管理命令。

常用命令:
- # 從遠(yuǎn)程鏡像源中更新本地鏡像源索引
- apk update:
- # 安裝包
- apk add openssh openntp vim
- apk add --no-cache mysql-client
- apk add docker --update-cache --repository http://mirrors.ustc.edu.cn/alpine/v3.4/main/ --allow-untrusted
- #安裝指定版本軟件包
- apk add asterisk=1.6.0.21-r0
- apk add 'asterisk<1.6.1'
- apk add 'asterisk>1.6.1'
- # 卸載并刪除
- apk del openssh openntp vim
- #升級(jí)軟件
- apk upgrade
- #指定升級(jí)部分軟件包
- apk add --upgrade busybox
- #查找所以可用軟件包
- apk search
- #查找所以可用軟件包及其描述內(nèi)容
- apk search -v
- #通過軟件包名稱查找軟件包
- apk search -v 'nginx*'
- #通過描述文件查找特定的軟件包
- apk search -v -d 'docker'
- #列出所有已安裝的軟件包
- apk info
- #顯示完整的軟件包信息
- apk info -a zlib
- #顯示指定文件屬于的包
- apk info --who-owns /sbin/lbu
其他管理器
還有其他的包管理器,只是我沒用過。
Zypper 是openSUSE包管理器。 Portage是Gentoo包管理器。