本章目标:
- 将系统注册到你的红帽账户,并使用红帽订阅管理为其分配软件更新和支持服务的权利
- 说明如何以RPM软件包形式提供软件,并使用yum和RPM调查系统上安装的软件包
- 使用yum命令查找、安装和更新软件包
- 启用和禁用红帽或第三方yum存储库
- 说明如何借助模块安装 特定版本的软件,如何列出、启用和切换模块流,以及如何从模块安装和更新软件包
文章目录
一、红帽注册系统
1.1 红帽订阅管理
红帽订阅管理提供可用于向计算机授权产品订阅的工具,让管理员能够获取软件包的更新,并且跟踪系统所用支持合同和订阅的相关信息。PackageKit和yum等标准工具可以通过红帽提供的内容分发网络获取软件包和更新。
注册系统:
两种方式进行注册红帽客户门户,一是使用GNOME应用程度或Web控制台服务访问相应的图形界面,二是使用 subscription-manager(8) 命令行工具。
授权证书:
注册成功后,授权证书存储在 /etc/pki 和其子目录中:
- /etc/pki/product 中的证书指明系统上安装了哪些红帽产品
- /etc/pki/consumer 中的证书指明系统所注册到的红帽账户
- /etc/pki/entitlement 中的证书指明系统附加有哪些订阅
二、解释和调查RPM软件包
2.1 软件包和RPM
RPM软件包管理器 最初是红帽开发的,该程序提供了一种标准的方式来打包软件进行分发。管理员可以通过它跟踪软件包所安装的文件,需要删除哪些软件(如果卸载)并检查确保显示支持软件包(如果安装)。红帽为红帽企业Linux提供的所有软件都以RPM软件包的形式提供。
RPM软件包文件名由四个元素组成(再加上.rpm后缀):
name-version-release.architecture
name:名称,描述其内容的一个或多个词语
version:版本号,原始软件的版本号
release:发行号,由软件打包商设置,基于该版本的软件包的发行版号
arch:编译的软件包运行的处理器架构,其中noarch表示此软件包的内容不限定架构(x86_64表示64位,aarch64表示64位ARM)
2.2 检查RPM软件包
rpm 实用程序是低级工具,可获取软件包文件和已安装软件包的内容的相关信息。默认情况下,它从已安装软件包的本地数据库中获取信息。但是,可以使用 -p 选项来指定你想获取有关已下载软件包文件的信息。
一般查询格式: rpm -q [select-options] [query-options]
关于已安装的软件包的一般信息
命令 | 作用 |
---|---|
rpm -qa | 列出所有已安装的软件钆 |
rpm -qf <filename> | 查找提供filename的软件包 |
关于特定软件包的信息
命令 | 作用 |
---|---|
rpm -q | 列出当前安装的软件包的版本 |
rpm -qi | 获取有关软件包的详细信息 |
rpm -ql | 列出软件包安装的文件 |
rpm -qd | 仅列出软件包安装的文档文件 |
rpm -q --scripts | 列出在安装或删除软件包之前或之后运行的shell脚本 |
rpm -q --changelog | 列出软件包的更改信息 |
rpm -qlp <rpmname> | 查询本地软件包文件 |
安装RPM软件包命令: rpm -ivh <rpmname>
三、使用yum安装和更新软件包
3.1 使用yum管理软件包
该低级别rpm命令可用于安装软件包,但不可与软件包存储库一起使用或自动解决多个源的依赖关系。
yum 的设计目标是在管理基于RPM的软件安装和更新方面成为一个更理想的系统。yum命令允许安装、更新、删除和获取有关软件包及其依赖项的信息。因此,你可以获取已执行事务的历史记录并使用多个红帽及第三方软件存储库。
使用yum查找软件
命令 | 作用 |
---|---|
yum help | 显示用法信息 |
yum list <packagename> | 显示已安装和可用的软件包 |
yum search all <keyword> | 根据仅在名称和摘要字段中找到的关键字列出软件包 |
yum info <packagename> | 返回与软件包相关的详细信息,包括安装所需的磁盘空间 |
yum provides <pathname> | 显示与指定的路径名(通常包含通配符)匹配的软件包 |
使用yum安装和删除软件
命令 | 作用 |
---|---|
yum install <packagename> | 获取并安装软件包,包括所有依赖项 |
yum update <packagename> | 获取并安装指定软件包的较新版本,包括所有依赖项 |
yum remove <packagename> | 删除安装的软件包,包括所有受支持的软件包 |
使用yum安装和删除各组软件
yum具有组的概念,即针对特定目的而一起安装的相关软件集合。在红帽企业Linux 8中,有两种类型的组:常规组和环境组。常规组是软件包的集合,而环境组是常规组的集合。一个组提供的软件包或组有三种状态:mandatory(安装该组时必须予以安装)、default(安装该组时通常会安装)、optional(安装该组时不予以安装,除非特别要求)。
命令 | 作用 |
---|---|
yum group list | 显示已安装和可用的组的名称 |
yum group info | 显示组的相关信息 |
yum group install | 将安装一个组,同时安装其必选和默认的软件包,以及它依赖的软件包 |
查看事务历史记录
所有安装和删除事务的日志记录在 /var/log/dnf.rpm.log 中
命令 | 作用 |
---|---|
yum history | 显示安装和删除事务的摘要 |
history undo | 选项可以撤销事务 |
四、启用yum软件存储库
4.1 启用红帽软件存储库
红帽的存储库
命令 | 作用 |
---|---|
yum repolist all | 查看所有可用的存储库 |
yum-config-manager | 启用或禁用存储库(启用:enabled参数设为1,禁用则反之) |
非红帽来源的第三方存储库
第三方存储库的软件,可以通过yum命令从网站、FTP服务器或本地文件系统进行访问。要启用对新的第三方存储库的支持,可在 /etc/yum.repos.d/ 目录中创建一个文件。存储库配置文件必须以 .repo 扩展名结尾。存储库定义包含存储库的URL和名称,也定义是否使用GPG检查软件包签名;如果是,则还检查URL是否指向受信任的GPG密钥。
创建
五、管理软件包模块流
5.1 应用流简介
红帽企业Linux 8引入了应用流的概念。现在可同时提供发行版随附的多个版本的用户空间组件。它们可能比核心操作系统软件包更新得更频繁。这让你可以更灵活地自定义红帽企业Linux,而不会影响平台或特定部署的底层稳定性。
从传统上看,管理应用软件包的备用版本及其相关软件包意味着为每个不同版本维护不同的存储库。如果开发人员想要最新版本的应用,而管理员希望获得该应用的最稳定版本,便会造成一种难以管理的繁琐局面。红帽企业Linux 8中运用一种称为模块化的新技术简化了这个过程。模块化允许单个存储库承载应用软件包及其依赖项的多个版本。
红帽企业Linux 8内容通过两个主要的软件存储库进行分发: BaseOS 和 应用流(AppStream)
BaseOS:
BaseOS存储库以RPM软件包的形式为红帽企业Linux提供核心操作系统内容。BaseOS组件的生命周期与之前红帽企业Linux发行版中的内容相同。
应用流(AppStream):
应用流存储库提供具有不同生命周期的内容,作为模块和传统软件包。应用流包含系统的必要部分,以及以前作为红帽软件集合的一部分以及其他产品和程序提供的各种应用。
应用流存储库包含两种类型的内容:模块和传统的RPM软件包。模块描述了属于一个整体的一组RPM软件包。模块可以包含多个流,使多个版本的应用可供安装。启用模块流后,系统能够访问该模块流中的RPM软件包。
5.2 模块
模块是一组属于一个整体的、协调一致的RPM软件包。通常,这是围绕软件应用或编程语言的特定版本进行组织的。典型的模块可以包含应用的软件包、应用特定依赖库的软件包、应用文档的软件包,以及帮助器实用程序的软件包。
模块流:
每个模块可以具有一个或多个模块流,其包含不同版本的内容。每个流独立接收更新。模块流可以视为应用流物理存储库中的虚拟存储库。对于每个模块,只能启用其中一个流并提供它的软件包。
模块配置文件:
每个模块可以有一个或多个配置文件。配置文件是要为特定用例一起安装的某些软件包的列表,这些用例包括服务器、客户端、开发或最小安装等。
安装特定的模块配置文件只是从模块流安装一组特定的软件包。你可以随后正常安装或卸载软件包。如果未指定配置文件,模块将安装它的默认配置文件。
5.3 使用yum模块
yum版本 4 是红帽企业Linux 8的新功能,它增加了对应用流新模块化功能的支持。为处理模块化内容,添加了 yum module 命令。否则,yum 很大程度上会像常规软件包一样处理模块。
列出模块
命令 | 作用 |
---|---|
yum module list | 显示可用模块的列表 |
yum module info | 显示使用默认流的模块的默认配置文件所安装的软件包列表 |
启用模块流和安装模块(必须启用模块流才能安装其模块)
命令 | 作用 |
---|---|
yum module enable | 启用模块流 |
yum module install | 使用默认流和配置文件安装模块 |
删除模块和禁用模块流
命令 | 作用 |
---|---|
yum module disable | 禁用模块流 |
yum module remove | 删除已安装的模块,并删除当前启用的模块流的配置集所安装的所有软件包,以及依赖于这些软件包的任何其他软件包和模块 |
注意:删除模块和切换模块会比较棘手。因为切换为模块启用的流相当于重置当前流并启用新流,而它不会自动更改任何已安装的软件包,必须手动来完成。
切换模块流
切换模块流通常需要将内容升级或降级到不同版本。为确保顺利切换,应首先删除模块流提供的模块。这将删除模块的配置文件所安装的所有软件包,以及这些软件包依赖的任何模块和软件包。
命令 | 作用 |
---|---|
yum module reset | 重置模块流 |