Linux软件包管理工具是一组命令的集合,其作用是提供在操作系统中安装,升级,卸载需要的软件的方法,并提供对系统中所有软件状态信息的查询,简言之包管理器(package manager)是一种让用户安装,卸载,更改,配置的软件包管理工具。不同的Linux发行版会有不同的包管理器,比较常见的包管理工具有DPKG,APT(APT-GET),RPM,YUM,DNF等。
- DPKG
Debian包管理系统,是Debian Linux家族的基础包管理系统,它用于安装、删除、存储和提供deb包的信息。
-
选项
-i:安装软件包
-r:删除软件包
-P:删除软件包的同时删除其配置文件
-L:显示于软件包关联的文件
-l:显示已安装软件包列表
–unpack:解开软件包
-c:显示软件包内文件列表
–confiugre:配置软件包 -
常用命令示例
-
安装包
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
-
列出已安装软件包
dpkg-query -l
dpkg-query -l | less
dpkg-query -l | grep package
-
- APT (高级打包工具)
一个dpkg包管理系统的前端工具,它是一个非常受欢迎的、自由而强大的,有用的命令行包管理器系统。Debian及其衍生版,例如Ubuntu、Linux Mint。apt-get命令是Debian Linux发行版中的APT软件包管理工具。所有基于Debian的发行都使用这个包管理系统。
-
常用命令示例
-
安装包
apt install package
-
卸载安装包
apt remove package
-
检测并清除无用的安装包
apt autoremove
-
更新所有安装包
apt update&upgrade package
-
更新所有已安装的软件包
apt-get upgrade
-
将系统升级到新版本(解决依赖关系并升级)
apt-get dist-upgrade
-
更新
apt-get update
-
安装一个新软件包
apt-get install package
-
卸载一个已安装的软件包(保留配置文件)
apt-get remove package
-
卸载一个已安装的软件包(删除配置文件)
apt-get –purge remove package
-
移除已安装的软件的旧版本软件包(删除为了满足其他软件包的依赖而安装的,但现在不再需要的软件包。)
apt-get autoclean package
-
移除下载到本地的已经安装的软件包
apt-get clean
-
列出已安装软件包
sudo apt list --installed
sudo apt list --installed | lesssudo apt list --installed | grep package
-
- RPM
红帽包管理器是红帽创建的Linux基本标准(LSB)打包格式和基础包管理系统。基于这个底层系统,有多个前端包管理工具可供使用
-
选项
-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 -ivh package.rpm
-
强制安装
rpm --force -ivh package.rpm
-
卸载软件包
rpm -e package
-
列出所有安装过的包
rpm -qa或者 rpm -qa | grep package
-
升级软件包
rpm -Uvh package.rpm
-
查询软件包的信息
rpm -qpi package.rpm
-
- YUM
YUM是一个开源、流行的命令行包管理器,它是用户使用 RPM 的界面(之一)。YUM命令是在Fedora和RedHat以及SUSE中基于RPM的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理RPM软件包,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
-
参数
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软件包的所有依赖关系 -
选项
-h:显示帮助信息
-y:对所有的提问都回答“yes”
-c:指定配置文件
-q:安静模式
-v:详细模式
-d:设置调试等级(0-10)
-e:设置错误等级(0-10)
-R:设置yum处理一个命令的最大等待时间
-C:完全从缓存中运行,而不去下载或者更新任何头文件 -
常用命令示例
-
yum install
全部安装
-
yum install package
安装制定的安装包package
-
yum groupinsall group
安装程序组group
-
yum update
全部更新
-
yum update package
更新指定程序包package
-
yum check-update
检查可更新的程序
-
yum upgrade package
升级指定程序包package
-
yum groupupdate group
升级程序组group
-
- DNF是一个用于基于RPM的发行版的包管理器,Fedora 18引入了它,它是下一代 YUM.它是Fedora 22及更新版本的默认包管理器,Rhel 8和CentOS 8也在应用。
-
常用命令示例
-
安装软件包
dnf install package
-
升级软件包
dnf update package
-
升级所有系统软件
dnf update && dnf upgrade
-
检查系统软件包的更新
dnf check-update
-
删除软件包
dnf remove package
dnf erase package -
删除无用孤立的软件包
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 package
-
查找某一文件的提供者(查找bash的提供者)
dnf provides /bin/bash
-
查看软件包详情
dnf info package
-
查看所有的软件包组
dnf grouplist
-
安装一个软件包组(安装’Educational Software’这个软件包组)
dnf groupinstall ‘Educational Software’
-
升级一个软件包组中的软件包(升级’Educational Software’这个软件包组)
dnf groupupdate ‘Educational Software’
-
删除一个软件包组(删除’Educational Software’这个软件包组)
dnf groupremove ‘Educational Software’
-
重新安装特定软件包
dnf reinstall package
-
回滚某个特定软件的版本
dnf downgrade package
-
查看DNF命令的执行历史
dnf history
-
查看所有的DNF命令及其用途
dnf help
-
获取有关某条命令的使用帮助
dnf help clean
-