
3.2.2 常用包管理命令
下面结合yum的典型应用场景,列出yum常用命令的示例,具体说明如下。
1.查看有效的安装源配置项
yum的安装源配置文件位于 /etc/yum.repos.d/ 目录下,每个配置文件又有若干个安装源配置项,这些配置项中有的是有效的,有的则是无效的。可以使用下面的命令来查看当前哪些配置项有效,这样就可以避免一个个查看配置文件。

上述命令执行的结果如图3-14所示,第一列是repo id即安装源配置项中括号([ ])的内容,第二列是yum仓库名,即安装源配置项中name的值。

图3-14 yum有效的安装源配置项图
仅安装源配置项有效还不行,其配置的yum仓库也必须准备就绪,以图3-14为例,c8-media-AppStream和c8-media-BaseOS的yum仓库均位于光盘上,那么就需要先将光盘挂载到/media目录,否则即使c8-media-AppStream/c8-media-BaseOS有效,yum仓库访问不了,待安装的软件包也无法获取;同样的,AppStream、BaseOS和extras的yum仓库位于互联网,需要先准备好网络,使得本机能够访问互联网。
2.安装软件包
本示例使用yum安装wget软件包,wget是Linux下常用的下载工具,安装命令如下。

上述命令和参数说明如下。
● -y是选项,表示在安装的过程中,凡是需要用户选择的地方,全部选择Yes,这样安装过程就可以直接进行下去,而不需要和用户交互。
● install也是选项,告诉yum这是一个安装软件的操作。
● wget是要安装的软件包的名字。
按〈Enter〉键后,yum会查找yum仓库元数据信息,从中找到wget软件包的数据对其做依赖解析,然后下载依赖包和wget软件包,依次安装依赖包和wget。所有的这些操作都是自动运行的。对用户来说,只需要运行yum一个命令,非常简单。但是,上述安装能否顺利完成,还取决于以下两个条件。
● 安装包所在的安装源配置项必须有效,配置的yum仓库必须能够访问。
● 要确定软件包的名字。但有的时候,只知道命令的名字,却不知道命令所在的软件包的名称,此时可以使用yum来反查软件包名称。例如本机上没有链接器ld,也不清楚ld所在的软件包名称,使用yum反查软件包的命令如下。

上述命令会列出ld命令的软件包和yum仓库信息。如下所示,ld命令的软件安装包有两个版本:第一个是32位的binutils-2.30-49.el8.i686;第二个是64位的binutils-2.30-49.el8.x86_64,可以根据需要在yum命令后精确指定软件包的名称。每个软件包下列出了yum仓库的名称,例如binutils-2.30-49.el8.i686的yum仓库就是BaseOS。

3.列出软件包信息
上节介绍了反查软件包名称的方法,它需要提供命令的名字。但有的时候连命令的名字也不清楚,只是对软件包的名字或功能有个大概印象,例如只记得要安装的软件包是以bin开头的,此时,可以列出yum仓库中所有的软件包,在列出的信息中查找以bin开头的软件包,命令如下。

上述命令中yum list会列出yum仓库中所有的软件包,然后通过管道 | 将此输出信息作为显示软件less的输入,如图3-15所示,在less中可以使用翻屏键〈Page Up〉/〈Page Down〉遍历yum list的输出信息,还可以使用斜杠 / 来搜索字符串,例如/bin就是搜索包含bin的字符串,然后使用n来遍历每个包含bin的字符串。

图3-15 yum仓库可安装的软件包信息图
yum list | grep bin可以直接输出包含bin的软件包信息,然后从中确定想要安装的软件包的名称。
使用yum来列出已经安装的软件包信息,命令如下。

4.撤销已安装的软件包
本小节以wget为例,介绍如何撤销之前已经安装的软件包,步骤如下。
(1)查看安装序号
1)yum的每次安装都会有一个安装序号,使用下面的命令来查看yum操作历史中的安装序号。

上述命令执行结果如图3-16所示,安装wget的ID是2。

图3-16 yum操作历史中的安装序号图
2)使用下面的命令,来进一步查看wget安装的详细信息。

(2)撤销安装
使用下面的命令撤销之前的wget安装,此时之前安装的wget就会被卸载,如果有依赖包的话,依赖包也会一并卸载。

如果系统打印以下信息,则说明撤销成功。

如果要恢复已撤销的动作,可以使用yum history redo 2。yum remove wget也可以卸载wget,但是不建议这么做,因为remove操作可能会卸载之前安装的依赖包(有些依赖包是在安装wget之前就已经安装好了的,它们也是其他程序的依赖包),这样会导致其他程序不能正常工作。而yum history undo 2只会卸载本次安装的依赖包,不会对其他程序造成影响。
5.安装EPEL源
EPEL(Extra Packages for Enterprise Linux)是一个非常重要的安装源,它提供了很多基础安装源之外的软件包,实际使用中经常用到,安装EPEL安装源的命令如下所示。

上述命令执行后,可以看5个EPEL源配置文件,如下所示。

查看当前有效的安装源,命令如下。

上述命令执行后,可以看到EPEL有关的安装源,如图3-17所示。

图3-17 yum EPEL有关的安装源图