介绍常见 Linux 操作系统的安装包管理工具,主要介绍其使用命令!
包管理系统除了安装软件外,它还提供了工具来更新已经安装的包。包存储库有助于确保你的系统中使用的代码是经过审查的,并且软件的安装版本已经得到了开发人员和包维护人员的认可。
1.dpkg
适用于Ubuntu、Debian
dpkg 命令是 Debian Linux 系统用来安装、创建和管理软件包的实用工具。
1.1 命令行使用
$ dpkg --help
Usage: dpkg [ < option> .. .] < command>
-i:安装软件包
-r:删除软件包
-P:删除软件包的同时删除其配置文件
-L:显示于软件包关联的文件
-l:显示已安装软件包列表
--unpack:解开软件包
-c:显示软件包内文件列表
--confiugre:配置软件包
Deb软件包:指定要操作的.deb软件包
1.2 示例演示说明
$ dpkg -i package.deb
$ dpkg -r package
$ dpkg -P package
$ dpkg -L package
$ dpkg -l package
$ dpkg --unpack package.deb
$ dpkg -S keyword
$ dpkg -l
$ 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 上的安装文件。
2.1 命令行使用
$ apt --help
Usage: apt [ options] command
-c:指定配置文件
管理指令:对APT软件包的管理操作
软件包:指定要操纵的软件包
2.2 示例演示说明
$ 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 的适用度。
3.1 命令行使用
$ 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:详细显示指令执行过程,便于排错
--nodeps:安装时不检查依赖关系
--force:强制安装
软件包:指定要操纵的rpm软件包
3.2 示例演示说明
$ rpm -ivh --nodeps your-package.rpm
$ rpm --force --nodeps -ivh your-package.rpm
$ rpm -e proftpd-1.2.8
$ rpm -qa
$ rpm -qa | grep sql
$ 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 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
4.1 命令行使用
$ 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软件包的所有依赖关系。
4.2 示例演示说明
$ yum install
$ yum install package1
$ yum groupinsall group1
$ yum update
$ yum update package1
$ yum check-update
$ yum upgrade package1
$ yum groupupdate group1
$ yum list installed | grep mysql
$ yum list installed mysql*
$ yum info package1
$ yum list
$ yum list package1
$ yum groupinfo group1
$ yum remove/erase package1
$ yum groupremove group1
$ yum deplist package1
$ yum clean packages
$ yum clean headers
$ yum clean oldheaders
5.dnf
适用于RHEL8、CentOS8
DNF 使用 libsolv 进行依赖解析,由 SUSE 开发和维护,旨在提高性能。Yum 主要是用 Python 编写的,它有自己的应对依赖解析的方法。它的 API 没有完整的文档,它的扩展系统只允许 Python 插件。Yum 是 RPM 的前端工具,它管理依赖关系和资源库,然后使用 RPM 来安装、下载和删除包。
由于 Yum 中许多长期存在的问题仍未得到解决,因此 Yum 包管理器已被 DNF 包管理器取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。
5.1 安装 DNF 包管理器
$ yum install -y epel-release
$ yum install -y dnf
$ dnf –version
5.2 常用命令介绍
$ 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 repolist
$ dnf repolist all
$ dnf list
$ dnf list installed
$ dnf list available
$ 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 history
$ dnf help
$ dnf help clean