本文是 i 春秋作家「xiehudie」表哥分享的技术文章,公众号旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。本套Linux进阶教程共分为14章,欢迎大家前来系统学习。

前期回顾>>

第1章:访问命令行

第2章:从命令行管理文件

第3章:编辑、查看和编辑文本文件

第4章:管理用户和组

第5章:控制对文件的访问

第6章:控制对文件的访问

第7章:控制服务和守护进程

第8章:配置和保护SSH

第9章:分析和储存日志

第10章:管理网络

第11章:归档和传输文件

linux系统的安装软件的过程(Linux进阶教程第12章)(1)

第12章:安装与更新软件包

一、软件包和rpm

RPM软件包管理器提供了一种标准的方式来打包欤件进行分发。与使用从存档提取到文件系统的软件相比,采用RPM软件包形式管理软件要简单得多。管理员可以通过它跟踪欤件包所安装的文件,需要删除哪些件并检查确保显示支持赖件包。有关已安装件包的信息存储在各个系统的本地RPM数据库中。

RPM软件包文件由四个元素组成:

linux系统的安装软件的过程(Linux进阶教程第12章)(2)

-NAME是描述其内容的一个或多个词语(coreutils)。

-VERSION是原始软件的版本号(8.30)。

-RELEASE是基于该版本的件包的发行版号,由赖件打包商设置,后者不一定是原始欤件开发商(4.el8)。

-ARCH是编译的软件包运行的处理器架构。noarch表示此软件包的内容不限定架构(与表示64 位的x86一64和表示64位ARM的aarch64等等相反)

从存储库安装软件包时,只需要软件包的名称。如果存在多个版本,则会安装具有更高版本号的软件包。如果一个版本存在多个发行版,则会安装具有更高发行版号的赖件包。

每个RPM软件包是包含以下三个组成部分的特殊存档:

- 软件包安装的文件。

- 与软件包(元数据)有关的信息,如name、version、release和arch;软件包的摘要和描述;是否要求安装其他软件包;授权许可信息;软件包更改日志;以及其他详细信息。

- 在安装、更新或删除此软件包时可能运行的脚本,或者在安装、更新或删除其他软件包时触发的脚本。

通常,软件提供商使用GPG密钥对RPM软件包进行数字签名。RPM系统通过确认件包已由相应的GPG密钥签名来验证软件包的完整性。如果GPG 签名不匹配,RPM系统拒绝安装赖件包。

我们在安装该软件包,仅获取该软件包的最新版本。为了更新软件,RPM会删除旧版本的软件包,再安装新版本。更新通常会保留配置文件,但新版本的打包程序会定义确切的行为。

在大多数情形中,一次仅可安装软件包的一个版本或发行版。不过,如果软件包构建为没有冲突的文件名,则可安装多个版本。最重要的相关例子是kernel软件包。由于新的内核只有通过启动至该内核才能进行测试,该软件包进行了特殊设计,以便一次能够安装多个版本。如果新内核启动失败,则旧内核依然可用并可启动。

rpm实用程序是低级工具,可获取欤件包文件和已安装软件包的内容的相关信息。默认情况下,它从已安装软件包的本地数据库中获取信息。但是,可以使用· p选项来指定我们想获取有关已下载软件包文件的信息。这样做的目的可能是想在安装之前检查软件包文件的内容。

查看已安装软件包的一般信息:

linux系统的安装软件的过程(Linux进阶教程第12章)(3)

列出软件包安装的文件:

linux系统的安装软件的过程(Linux进阶教程第12章)(4)

rpm命令也可以用于安装已下载到本地目录的RPM软件包。

linux系统的安装软件的过程(Linux进阶教程第12章)(5)

以下是RPM查看命令摘要:

linux系统的安装软件的过程(Linux进阶教程第12章)(6)

二、YUM

该低级别rpm命令可用于安装软件包,但不可与软件包存储库一起使用或自动解决多个源的依赖关系/

Yum的设计目标是在管理基于RPM的软件安装和更新方面成为一个更理想的系统。Yum命令允许我们安装、更新、删除和获取有关软件包及其依赖性的信息。

使用yum查找软件

- yum help 显示用法信息

- yum list 显示已安装和可用的软件包

linux系统的安装软件的过程(Linux进阶教程第12章)(7)

- yum search KEYWORD根据仅在名称和摘要字段中找到的关键字列出的软件包。

若要搜索名称、摘要和描述字段中包含“web server”的软件包,可以使用search all:

linux系统的安装软件的过程(Linux进阶教程第12章)(8)

- yum info PACKAGENAME返回与软件包相关的详细信息,包括安装所需的磁盘空间。

获取Apache HTTP Server的相关信息:

linux系统的安装软件的过程(Linux进阶教程第12章)(9)

- yum provides PATHNAME显示与指定的路径名匹配的软件包。

若要查找提供/var/www/html目录的软件包,可使用:

linux系统的安装软件的过程(Linux进阶教程第12章)(10)

使用yum安装和删除软件

- yum install PACKAGENAME获取并安装软件包,包括所有依赖项:

linux系统的安装软件的过程(Linux进阶教程第12章)(11)

- yum update PACKAGENAME获取并安装指定赖件包的较新版本,包括所有依赖项。通常,该进程尝试适当保留配置文件,但是在某些情况下,如果打包商认为旧文件在更新后将无法使用,则可能对其进行重命名。如果未指定PACKAGENAME,它将安装所有相关更新。

linux系统的安装软件的过程(Linux进阶教程第12章)(12)

由于新的内核只有通过启动至该内核才能进行测试,该软件包进行了特殊设计,以便一次能够安装多个版本。如果新内核启动失败,则依然可以使用旧的内核。使用yum update kernel实际上会安装新的内核。配置文件中保存一份软件包列表,即使在管理员要求更新时也始终安装这些软件包。

- yum remove PACKAGENAME删除安装的软件包,包括所有受支持的软件包:

linux系统的安装软件的过程(Linux进阶教程第12章)(13)

使用yum安装和删除各组软件

- yum也具有组的概念,即针对特定目的而一起安装的相关软件集合。常规组是软件包的集合。环境组是常规组的集合。一个组提供的软件包或组可能为mandatory(安装该组时必须予以安装)、default(安装该组时通常会安装),或 optional(安装该组时不予以安装,除非特别要求)file:///C:\Users\lenovo\AppData\Local\Temp\ksohtml\wps948C.tmp.png与yum list相似,yum group list命令可显示已安装和可用的组的名称。

与yum list相似,yum group list命令可显示已安装和可用的组的名称。

linux系统的安装软件的过程(Linux进阶教程第12章)(14)

有些组一般通过环境组安装, 默认为隐藏。可通过yum group list hidden命令列出这些隐藏组。

- yum group info显示组的相关信息。它可以列出必选、默认和可选软件包的名称。

linux系统的安装软件的过程(Linux进阶教程第12章)(15)

- yum group install 将安装一个组,同时安装其必选和默认的软件包,以及它们依赖的软件包。

linux系统的安装软件的过程(Linux进阶教程第12章)(16)

查看事务历史记录

- 所有安装和删除事务的日志记录在/var/log/dnf.rpm.log中。

linux系统的安装软件的过程(Linux进阶教程第12章)(17)

- yum history显示安装和删除事务的摘要。

linux系统的安装软件的过程(Linux进阶教程第12章)(18)

- history undo选项可以撤销事务。

linux系统的安装软件的过程(Linux进阶教程第12章)(19)

以下是Yum命令摘要:

linux系统的安装软件的过程(Linux进阶教程第12章)(20)

,