介绍常见 Linux 操作系统的安装包管理工具,主要介绍其使用命令!
包管理系统除了安装软件外,它还提供了工具来更新已经安装的包。包存储库有助于确保你的系统中使用的代码是经过审查的,并且软件的安装版本已经得到了开发人员和包维护人员的认可。
1. dpkg
Ubuntu、Debian
dpkg
命令是 Debian Linux
系统用来安装、创建和管理软件包的实用工具。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 $ dpkg --help Usage: dpkg [<option> ...] <command > -i:安装软件包 -r:删除软件包 -P:删除软件包的同时删除其配置文件 -L:显示于软件包关联的文件 -l:显示已安装软件包列表 --unpack:解开软件包 -c:显示软件包内文件列表 --confiugre:配置软件包 Deb软件包:指定要操作的.deb软件包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 $ 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
上的安装文件。
1 2 3 4 5 6 7 8 9 10 $ apt --help Usage: apt [options] command -c:指定配置文件 管理指令:对APT软件包的管理操作 软件包:指定要操纵的软件包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 $ 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
的适用度。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $ 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软件包
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 $ rpm -ivh your-package.rpm $ rpm --force -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
包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 $ 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软件包的所有依赖关系。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 $ 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
包管理器取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。两个管理包工具的更多区别可以查看,What is the difference between DNF and YUM? 进行阅读。
1 2 3 4 5 6 7 8 $ yum install -y epel-release $ yum install -y dnf $ dnf –version
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 $ 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
本文转载自:「 Escape 的博客 」,原文:https://url.hi-linux.com/No9Xd ,版权归原作者所有。欢迎投稿,投稿邮箱: editor@hi-linux.com 。