本文是 i 春秋作家「xiehudie」表哥分享的技术文章,旨在为大家提供更多的学习方法与技能技巧,文章仅供学习参考。本套Linux进阶教程共分为14章,欢迎大家前来系统学习。
前期回顾>>
第12章:安装与更新软件包
一、软件包和RPM
RPM软件包管理器提供了一种标准的方式来打包欤件进行分发。与使用从存档提取到文件系统的软件相比,采用RPM软件包形式管理软件要简单得多。管理员可以通过它跟踪欤件包所安装的文件,需要删除哪些件并检查确保显示支持赖件包。有关已安装件包的信息存储在各个系统的本地RPM数据库中。
RPM软件包文件由四个元素组成:
-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选项来指定我们想获取有关已下载软件包文件的信息。这样做的目的可能是想在安装之前检查软件包文件的内容。
查看已安装软件包的一般信息:
二、YUM
该低级别rpm命令可用于安装软件包,但不可与软件包存储库一起使用或自动解决多个源的依赖关系/
Yum的设计目标是在管理基于RPM的软件安装和更新方面成为一个更理想的系统。Yum命令允许我们安装、更新、删除和获取有关软件包及其依赖性的信息。
使用yum查找软件
- yum help 显示用法信息
- yum list 显示已安装和可用的软件包
若要搜索名称、摘要和描述字段中包含“web server”的软件包,可以使用search all:
获取Apache HTTP Server的相关信息:
若要查找提供/var/www/html目录的软件包,可使用:
- yum install PACKAGENAME获取并安装软件包,包括所有依赖项:
- yum remove PACKAGENAME删除安装的软件包,包括所有受支持的软件包:
- 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命令可显示已安装和可用的组的名称。
- yum group info显示组的相关信息。它可以列出必选、默认和可选软件包的名称。
- 所有安装和删除事务的日志记录在/var/log/dnf.rpm.log中。