基于RPM的分发的YUM命令
在本指南中,我们的编辑者为管理员和一般用户选择了50种广泛使用的yum命令。尽管本指南主要侧重于RHEL和CentOS,但这些命令对于使用RPM的所有系统都将相同。建议大家一一阅读,并在本指南中添加书签,以备将来参考。
下面惠主机www.idccoupon.com简单整理RHEL或CentOS系统最佳且常用的50个YUM命令示例。
1.安装软件包
像yum这样的软件包管理器的主要用途之一是在Linux或BSD系统上安装软件包。幸运的是,yum使安装软件包非常容易。
$ sudo yum install PACKAGE-NAME
$ sudo yum install firefox
Yum将在其存储库中搜索软件包,并为您自己解决所有依赖性问题。它将显示信息,例如可用软件包的存储库名称及其大小。只需在确认提示中输入Y,即可开始安装。
$ sudo yum -y install firefox
上面的命令不会要求您确认,而是一次安装firefox软件包。这是自动化系统管理的好方法。
2.卸载包
管理员通常需要删除过时的软件包以保持其系统更新。您可以使用以下命令从系统中删除已安装的软件包。
$ sudo yum remove PACKAGE-NAME $ sudo yum remove firefox
如前所述,该命令还将要求用户确认。您可以输入Y继续进行软件包的删除过程,也可以使用以下命令完全跳过此步骤。
$ sudo yum -y remove firefox
3.更新程序包
开源软件包不断推出更新的版本,以提高性能并解决错误。要更新已安装的RPM软件包,请在Linux终端中使用以下命令。
$ sudo yum update PACKAGE-NAME
$ sudo yum update firefox
这将查找任何最新更新,如果有更新,将询问用户是否安装新版本的确认。如果要跳过此提示或正在Linux Shell脚本中运行此命令,请在yum之后添加-y选项。
$ sudo yum -y update firefox
4.列出包信息
管理员应该清楚了解系统中所有已安装的软件包。Yum通过公开列表选项使此操作非常容易。
$ sudo yum list firefox
当您运行上述命令时,它将显示计算机中安装的firefox版本及其源体系结构。如果您没有安装Firefox,它将在版本信息旁边显示此Web浏览器的可用软件包。
5.查找包
搜索是Linux软件包管理器的基本功能。它使用户无需事先知道其特定名称即可查找软件包。正如您在下一条命令中将看到的那样,Yum使此任务非常容易。
$ sudo yum search PACKAGE-NAME
$ sudo yum search httpd
该命令将搜索其中包含单词“ httpd ”的所有软件包。它将基于三个条件显示结果。第一个是完全匹配的名称,然后是名称和摘要匹配,最后是摘要匹配。百胜还将显示简短说明,以帮助用户轻松找到所需的内容。
6.显示包装信息
您可以使用yum的info子命令找到有关软件包的很多信息。这对于确保您不在工作站或远程服务器中安装任何有害的应用程序至关重要。
$ sudo yum info PACKAGE-NAME $ sudo yum info firefox
上面的命令将显示终端中有关firefox软件包的所有相关信息。它将包含版本信息以及软件包的大小,发行信息,许可以及firefox软件包的简短描述。
7.显示所有已安装的软件包
您可以使用以下简单的yum命令轻松显示基于RPM的系统中安装的所有软件包。
$ sudo yum list installed $ sudo yum list installed | less
以上两个命令都将显示所有当前已安装软件包的列表。但是,第二个命令更加灵活,因为它允许用户使用键盘的PageUp和PageDown按钮在列表中滚动。
8.检查软件包是否已安装
我们可以将上面的命令与Linux grep命令结合使用,以检查计算机中是否已经安装了特定的应用程序。这使我们免于滚动浏览整个软件包列表。
$ sudo yum list installed | grep curl
您还可以在Linux中使用awk命令执行此任务,如下所示。查看我们之前关于awk的指南,以了解有关其工作原理的更多信息。
$ sudo yum list installed | awk '/curl/ {print}'
9.显示所有可用和已安装的软件包
list子命令还使我们能够查看系统的所有可用软件包和已安装软件包。这在许多情况下很有用。
$ sudo yum list | less
这将首先显示系统中已经安装的所有软件包,然后显示所有可用软件包的列表。如果仅希望查看可用的软件包,请使用以下命令。
$ sudo yum list available | less
10.显示所有可用更新
管理员应始终通过安装最新的软件包来尝试使其系统保持最新。以下简单命令使基于RPM的系统非常简单。$ sudo yum list updates | less
此命令将显示系统中具有可用更新的所有软件包。现在,您可以升级它们以摆脱过时的软件包,并轻松地用它们的最新替代品替换它们。
11.显示系统的可用更新
上面的命令将显示yum存储库中具有可用更新的所有软件包。但是,在大多数情况下,您的系统只会安装其中一定数量的这些软件包。因此,通常不需要列出所有存储库软件包的可用更新。
$ sudo yum check-update
上面的命令仅显示可用于已安装软件包的更新。因此,对于大多数现实场景而言,这已经绰绰有余了。
12.更新系统
yum update命令使用户可以非常轻松地更新其基于RPM的系统。以下命令将下载并安装已安装软件包的所有最新更新以及所有最近的安全补丁。
$ sudo yum update
它将显示将要安装的软件包以及它们的版本和大小信息。由于该命令要求确认的用户,您将需要手动输入按键?。如果要避免这种情况,请使用以下命令。
$ sudo yum -y update
13.仅应用安全补丁
如果您是负责管理远程RHEL或CentOS服务器的系统管理员,则您常常可能希望不理会用户空间程序,而只安装安全更新。幸运的是,您可以使用以下命令执行此操作。
$ sudo yum update --security $ sudo yum -y update --security
此命令将仅下载安全补丁并将其应用到基于RPM的服务器。您可以使用以下命令查看给定时间可用的安全补丁程序。
$ sudo yum info-sec
14.升级RPM软件包
yum upgrade命令将安装已安装软件包的较新版本,并删除过时的软件包。根据软件包,先前演示的yum update命令可以执行此操作,也可以不执行。
$ sudo yum upgrade
$ sudo yum -y upgrade
尽管删除过时的软件包可能会为您节省一些存储空间,但是它们可能以多种方式引起麻烦,有时甚至会破坏系统。因此,我们的编辑建议您使用yum update命令。
有时,您可能已经在计算机上安装了rpm软件包。您可以在Linux中使用以下yum命令轻松地安装它们。
$ sudo yum localinstall abc-1-1.i686.rpm
上面的命令将从指定的rpm文件安装给定的软件包。如果文件在其他目录中,只需传递其位置,如以下命令所示。
$ sudo yum localinstall /path/to/abc-1-1.i686.rpm
16.查询文件包
yum软件包管理器公开了一个方便的子命令,称为provides,该命令使用户可以查看哪个软件包包含某个文件。如以下所示,这在许多情况下非常有用。
$ sudo yum provides /bin/curl
在Linux中,此yum命令将显示包含curl命令的软件包。以下命令将列出包含文件/etc/httpd/conf/httpd.conf的软件包。
$ sudo yum provides /etc/httpd/conf/httpd.conf
17.显示所有程序包组
Linux通常根据使用情况将一组软件包分组,例如“系统工具”或“图形”。每个组包含多个具有相似功能的软件包。管理员通常会一起安装一组软件包,以节省时间并避免手动选择软件包。
$ sudo yum grouplist
该命令允许用户列出所有可用和已安装的软件包组。现在,您可以轻松查看计算机上安装了哪些软件包组以及哪些组可供安装。
18.安装组软件包
一旦查看了可用于安装的组,就可以继续安装它们。使用以下命令从Linux终端仿真器执行此操作。
$ sudo yum groupinstall 'Network Servers'
$ sudo yum -y groupinstall 'Network Servers'
该命令将安装所有分组在“网络服务器”下的软件包。它将为您处理所有依赖关系,并相应地更新旧软件包。您可以使用任何一组软件包,以相同的方式节省以后的时间。
19.更新组包
使软件包组真正有用的是,您可以像对其他任何yum命令一样对它们执行操作。假设您已经使用上述命令安装了“网络服务器”组。现在,如果要更新该组下的软件包,可以使用以下命令轻松进行。
$ sudo yum groupupdate 'Network Servers'
$ sudo yum -y groupupdate 'Network Servers'
该命令将查看“网络服务器”下的任何软件包是否有最新更新,如果可以找到,请安装它们。它将也照顾用户的依赖性。
使用yum删除软件包组与安装它们一样容易。您可以在Linux中使用以下yum命令删除“网络服务器”组。
$ sudo yum groupremove 'Network Servers'
$ sudo yum -y groupremove 'Network Servers'
如您所见,yum允许用户像独立软件包一样安装,更新或删除软件包组。对于普通用户和删除服务器管理员而言,这使系统管理变得更加容易。
21.显示启用或禁用的存储库
Linux软件包可以驻留在各种yum存储库中。您可以显示基于RPM的系统已启用的存储库,以查看可以从何处安装某些软件包。
$ sudo yum repolist
$ sudo yum repolist enabled
您还可以使用下一条命令列出禁用的存储库。您不能从任何这些库中安装Linux软件包。
22.显示所有存储库
以下yum命令将列出基于RPM的Linux发行版的所有yum存储库。此清单将包含诸如存储库名称,存储库ID之类的信息,并指示系统中是启用还是禁用了某个存储库。
$ sudo yum repolist disabled
该命令对于远程管理员非常方便,因为它允许他们一次性检查可用存储库。
23.启用或禁用YUM存储库
如您所见,yum为软件包提供了广泛的存储库。您可以使用yum-config-manager轻松启用或禁用yum仓库。它是允许管理员管理yum和存储库中的配置选项的工具。
$ sudo yum repolist all
$ sudo yum-config-manager --enable extras
首先,为方便起见,我们列出了所有的yum仓库。接下来,我们使用yum-config-manager及其回购ID启用了存储库Extras 。
$ sudo yum-config-manager --disable extras
最后,此命令禁用此Extras存储库。启用或禁用yum仓库时,请记住使用仓库ID而不是仓库名称。
24.将软件包更新为特定版本
前面我们已经看到了如何更新yum软件包或软件包组。但是,在这两种情况下,yum都会将软件包更新为最新的可用版本。如果要将软件包更新到特定版本该怎么办。您可以使用以下命令轻松完成此操作。
$ sudo yum update-to abc-1-1.i686.rpm
当您运行此命令时,yum会将所述abc软件包更新为指定的版本。确保此版本在您启用的存储库中可用,否则此命令将无法执行。
25.降级现有软件包
有时,由于诸如无法跟踪的错误或最新版本与现有Linux Shell脚本不兼容之类的问题,您可能希望降级某些软件包。使用yum软件包管理器时,这也相当容易。
$ sudo yum downgrade abc
这会将包abc降级到其较早的版本。您可以使用以下命令将该软件包降级到特定版本。
$ sudo yum downgrade abc-1-0.1.i686.rpm
但是,如果您的活动仓库中缺少此版本的软件包,则该操作将无法执行。
26.同时安装和卸下软件包
有时您可能需要安装一个新软件包,然后从系统中删除另一个软件包。值得庆幸的是,yum使基于RPM的Linux发行版变得非常容易。这称为交换安装。
$ sudo yum swap ftp lftp
当您运行此命令时,yum将首先从系统中删除ftp软件包,然后安装lftp软件包。这对许多Linux管理员来说很有用,因为它允许进行更灵活的软件包管理。
27.删除缓存的软件包
Yum对安装在系统上的每个软件包进行缓存。随着时间的推移,这可能会导致存储问题,因此您可能不希望一次删除它们。只需发出以下yum命令即可从系统中删除所有缓存的软件包。
$ sudo yum clean packages
此命令从yum缓存中删除所有下载的软件包。管理员应使用此命令停止累积多余的缓存软件包。
28.清理程序包和元数据
像yum这样的软件包管理器不仅可以缓存安装文件,还可以缓存很多元数据。您已经猜到了,随着时间的流逝,太多的麻烦可能会引起麻烦。但是,您可以使用以下简单命令删除它们,以轻松清理系统。
$ sudo yum clean all
此命令将从dbcache,本地rpmdb,插件和其他元数据信息中删除缓存的安装文件,头文件以及干净的缓存数据。但是,下次安装新软件包时,yum可能会花费一些额外的时间。
29.下载存储库的元数据
您可以下载和配置当前启用的所有存储库所需的yum元数据。这将加快您的包裹管理操作,以备下次使用。请参阅以下命令以了解如何执行此操作。
$ sudo yum makecache
该命令将确保yum缓存是最新的元数据。您还可以通过配置/etc/yum.conf文件中的metas -expire设置来设置此元数据的到期时间。
30.显示软件包依赖关系
Linux软件包在设计上是模块化的,通常将依赖于许多其他软件包来提供其功能。您可以在Linux中使用以下yum命令列出yum软件包的所有依赖关系。
$ sudo yum deplist nfs-utils
此命令将列出rpm软件包nfs-utils的所有依赖项。它还将突出显示提供这些软件包的软件包以及包含它们的yum存储库的名称。对于服务器管理员来说,这是一个非常有用的命令,因为它使可视化依赖关系变得容易。
31.完成剩余交易
当您的Linux工作站或服务器由于系统故障或某些不需要的原因而无法完成正在进行的软件包管理作业时,有时可能会出现这种情况。yum软件包管理器使管理员可以轻松完成这些操作,如以下命令所示。
$ sudo yum-complete-transaction
上面的命令将找到所有未完成的事务并相应地完成它们。它使软件包管理在系统维护时轻松自如。您也可以仅使用以下命令清除事务日志文件并退出。
$ sudo yum-complete-transaction --cleanup-only
32.更新时跳过损坏的软件包
由于回购包含大量软件包,因此用户经常必须处理无法理解或损坏的软件包。这些大多发生在系统更新期间,并且可能使管理任务变得困难。幸运的是,您可以使用以下命令告诉yum跳过这些软件包。
$ sudo yum update --skip-broken
因此,请不要担心您的系统在软件包管理作业期间是否发生故障并留下损坏的软件包。您可以使用上面的两个命令轻松清理它们。
33.显示更新信息
作为系统管理员,必须全面监视软件包更新。值得庆幸的是,updateinfo子命令使我们可以非常轻松地可视化更新过程。
$ sudo yum updateinfo summary
此命令将显示系统的所有新可用错误修复和安全补丁。使用以下命令仅获取有关安全更新的信息。
$ sudo yum updateinfo security
使用以下命令获取有关所有新更新的信息。
$ sudo yum updateinfo list new
34.重新安装软件包
由于错误的安装或配置问题,用户可能经常遇到破损的软件包。解决此问题的最快方法之一是重新安装一个或多个进程。您可以按照以下yum命令轻松完成此操作。
$ sudo yum reinstall PACKAGE-NAME
$ sudo yum reinstall curl
最后一条命令将在RHEL / CentOS系统上的Linux中重新安装curl命令的当前版本。对系统进行故障排除时,您会发现此命令非常有用。
35.列出已安装和可用的内核
Linux内核是所有Linux发行版的核心组件。在给定的时间有几种版本可用。您可以使用以下简单命令显示系统当前安装的内核以及所有可用的内核。
$ sudo yum list kernel
它将显示系统的内核信息以及它们的版本和可用性。如果要使用yum升级或降级到其他内核版本,这将很有用。
36.下载软件包但不安装
有时,您可能需要下载应用程序的rpm软件包而不安装软件包本身。您可以稍后使用yum的localinstall子命令来安装此软件包。
$ sudo yum install --downloadonly --downloaddir=/home/user/downloads curl
上面的命令将下载curl软件包并将其放入/ home / user / downloads目录。只需更改此路径即可将软件包存储在Linux文件系统的不同部分中。
37.添加新的存储库
RHEL或CentOS管理员可以轻松添加新的存储库。一种常见的方法是在/etc/yum.repos.d中编辑配置文件。但是,最新版本的yum允许管理员使用yum-config-manager工具添加新的存储库。只需使用以下命令添加新的仓库。
$ sudo yum-config-manager --add-repo =“ https://mirror.xarnet.edu.au/pub/centos/7”
将–add-repo选项的字符串值替换为要添加的存储库的URL。
38.在安装/更新期间排除软件包
有时您可能想从更新或安装操作中排除某些软件包。使用yum相当简单。只需使用以下格式即可从终端执行此操作。
$ sudo yum check-update $ sudo yum update -x sqlite-libs.x86_64
首先,我们检查了当前有哪些更新。然后,我们执行了系统范围的更新,但省略了软件包sqlite-libs.x86_64。因此,只需使用-x选项即可从操作中省略rpm软件包。
39.查找软件包的存储库
管理员可以轻松找出特定软件包或一组软件包来自哪个存储库。您将需要使用工具find-repos-of-install来执行此操作。仅在安装yum-utils软件包后可用。
$ sudo yum install yum-utils
$ sudo find-repos-of-install curl
首先,我们安装了包含所需命令的yum-utils软件包。然后,我们使用find-repos-of-install命令来查找哪个存储库具有curl软件包。
40.同步所有软件包
管理员可以同步其rpm软件包,以确保所有已安装的软件包均与其存储库版本相同。Yum将基于已启用的存储库中找到的最新可用版本来升级或降级您的软件包。
$ sudo yum distribution-synchronization
当您运行此命令时,yum将下载较新的更新,删除过时的软件包,甚至在需要时降级软件包。此yum命令对系统维护非常有用,因为它提供了更轻松的同步途径。
41.显示软件包的多个版本
您可以使用yum的–showduplicates选项显示软件包的所有可用版本。对旧系统进行故障排除时,有几种用例。
$ sudo yum --showduplicates list httpd
此命令将显示系统可用的所有httpd软件包版本。当您在继续安装之前要查找RPM软件包的特定名称时,它也很有用。
$ sudo yum search --showduplicates emacs
42.显示存储库信息
您将使用以下简单命令学习如何显示有关yum存储库的信息。此命令提供有关存储库的各种信息,包括存储库ID,名称,最近更新日期,大小和baseurl。
$ sudo yum repoinfo
使用以下yum命令将此结果限制为启用或禁用的存储库。
$ sudo yum repoinfo enabled $ sudo yum repoinfo disabled
您还可以使用repoinfo子命令来查找特定软件包或一组软件包的存储库信息,如下所示。
$ sudo yum repoinfo nginx
43.在特定存储库中工作
yum的repo-pkgs命令允许管理员从指定的存储库安装或更新软件包。以下命令显示了如何列出特定存储库中包含的所有软件包。
$ sudo yum repo-pkgs AppStream list
此命令将列出AppStream存储库提供的所有软件包。使用以下命令从此存储库安装软件包。
$ sudo yum repo-pkgs AppStream install wget
您还可以使用以下简单命令安装或删除存储库的所有软件包。
$ sudo yum repo-pkgs AppStream install
$ sudo yum repo-pkgs AppStream remove
44.使用交互式YUM Shell
Yum提供了易于使用且功能强大的交互式外壳,使管理员可以更加临床地执行软件包管理任务。只需在命令提示符下键入以下命令即可调用此交互式Shell。
$ sudo yum shell
系统会提示您以“>”开头的提示。开始在此shell中依次键入yum命令。
>列表更新 >更新
只需输入“ quit ”或按Ctrl + C即可终止此shell。您还可以使用一个文本文件,该文件在不同的行中包含所有命令。百胜将依次运行这些命令。
> list updates
> update
45.显示交易记录
使用以下命令查看yum到目前为止所执行的所有命令。您可以使用此按钮轻松撤消或重做较旧的事务。
$ sudo yum history
此列表在开始时显示最新操作。您可以使用交易ID来分析特定交易,如下所示。
$ sudo yum history info 10
使用以下命令撤消/重做某些事务。尾随-y选项跳过确认提示。
$ sudo yum history undo 20 -y
$ sudo yum history undo 30 -y
46.隐藏YUM输出
默认情况下,yum提供有关其操作的一组选择的信息。您可以使用以下简单命令隐藏这些数据。
$ sudo yum install httpd -y -q
$ sudo yum install httpd --assumeyes --quiet
这些命令是等效的,它们将安装httpd软件包而无需用户确认或在Linux终端中提供任何文本输出。
47.Increasing Verbosity
您也可以使用yum的-v或–verbose开关来执行与上述命令相反的操作。在这种情况下,yum将提供有关正在进行的操作的大量输出。
$ sudo yum install httpd -v
$ sudo yum install httpd --verbose
我们省略了-y开关,因为您可能希望在继续操作之前检查操作。这是调试程序包管理操作的出色工具。
48.显示帮助页面
您可以使用以下任何命令找到所有可能的命令组合的摘要信息。
$ yum -h
$ yum --help
此外,使用以下命令查找有关特定yum操作的帮助。
$ yum help autoremove
49.查阅手册
手册页包含所有命令行选项及其用法的详细信息。如果您是绝对的初学者,那么这应该是开始的地方。
$ man yum
遇到某些命令时,请查阅此文档。
50.显示版本信息
使用以下简单命令来找出您的计算机上安装了哪个版本的yum和dnf。它还显示该版本的构建信息。
$ yum --version
结束
Yum命令非常通用,可以提供维护现代RHEL或CentOS软件包所需的所有功能。无论您是专业的sysadmin还是Linux的入门用户,掌握这些命令都将帮助您轻松处理基于RPM的发行版。我们的编辑器试图包含用户维护系统可能需要知道的所有命令。