注册系统获取红帽支持
描述并分析 RPM 软件包
软件包和 RPM
基于
yum
安装软件包时,只需要软件包的名称,如果存在多个版本,默认安装最高版本
每个
rpm
软件包包含
3
部分内容
-
安装的文件
-
元数据:如
name
、
version
、
release
和
arch
-
软件包的摘要和描述
-
安装、更新或删除软件包时可能运行的脚本
红帽使用
GPG
密钥对
RPM
软件包进行数字签名
通过 RPM 更新软件
红帽默认安装最新版本软件,更新软件时,将先卸载旧版本,再安装新版本(通常会保留配置文件)
通常只能安装一个版本的软件包。个别软件可以同时安装多个版本,例如 kernel
检查 RPM 软件包
rpm
命令可以用于管理
rpm
软件包,也可以查询
rpm
软件包信息
rpm
命令默认从本地
rpm
数据库查询软件包信息,但
-p 选项
可以指定未安装的 rpm
软件包
rpm -qa
:列出所有已安装的软件包
rpm -qf FILENAME
:查找 FILENAME 来自什么软件包
rpm -q
:列出当前安装的软件包的版本
rpm -qi
:获取有关软件包的详细信息
rpm -ql
:列出软件包安装的文件
rpm -qc:列出软件包的配置文件
rpm -qd:仅列出软件包安装的文档文件 rpm -q --scripts:列出在安装删除软件包前后运行的 shell 脚本
rpm -q --changelog:列出软件包的更改信息 查询本地 rpm 软件包包含的文件
-q
是指定查询操作,用于查询已安装的 RPM 包的信息。-l
是指定查询文件列表操作,用于显示 RPM 包中所包含的文件和目录。-p
是指定查询未安装的 RPM 包的信息,即查询 RPM 包文件中的内容。
安装 RPM 软件包
rpm
命令可用于安装本地的 RPM 软件包
-i
:表示安装 RPM 包。-v
:表示启用详细输出模式,显示安装的详细信息。-h
:表示显示进度信息
RPM 查询命令摘要
使用 YUM 管理软件包
rpm
命令无法与软件仓库一起使用或解决依赖关系
yum
命令可以安装、更新、删除和获取有关软件包及其依赖项的信息
yum help
显示用法信息
yum list
显示已安装和可用的软件包
yum search all KEYWORD
在名称、摘要字段和描述字段中根据关键字查找软件包
yum info PACKAGENAME
获得软件包的详细信息,包括安装所需的磁盘空间
yum provides PATHNAME 获得路径名匹配的软件包
yum install PACKAGENAME
下载并安装软件包, 包括所有依赖项
yum update PACKAGENAME
升级安装指定软件包的最新版本,包括所有依赖项,如未指定软件包名称,则安装所有更新。 注:内核升级可以通过:yum update kernel
实现,而且会多个内核共存
yum remove PACKAGENAME
卸载软件包
YUM 管理软件包组
yum
具有
group
的概念,针对特定目的而一起安装的相关软件集合
group
中软件包可能为
mandatory
(安装该组时必须安装)、
default
(安装该组时通常会安装),或 optional
(安装该组时不予以安装,除非特别要求)
yum group list
命令显示已安装和可用的组的名称
yum group info 显示组信息。它将列出必选、默认和可选软件包名称
yum group install GROUPNAME
,同时安装其必选和默认的软件包,及依赖的软件包
YUM 的历史记录
所有安装和删除事务的日志记录在
/var/log/dnf.rpm.log
中
yum history
显示安装和删除事务的摘要
yum history undo 可以撤销事务
YUM 命令摘要
启用 YUM 软件存储库
将系统注册到订阅服务后,可根据所附加的订阅,自动配置软件仓库的访问
#列出系统上所有的存储库
yum-config-manager 命令可用于启用或禁用仓库
--enable 启用
--disable 禁用
非红帽来源通过第三方仓库提供软件,可以通过
yum
命令从网站、
FTP 服务器或本地文件系统进行访问。要启用对第三方仓库的支持,可在
/etc/yum.repos.d/
目录中创建一个文件,仓库配置文件必须
以 .repo 扩展名结尾
也可以使用 vi 来编辑本地软件仓库的配置文件
管理软件包module streams
APPLICATION STREAM 简介
RHEL 8
引入了应用流的概念,可同时随发行版提供的多个版本的用户空间软件包, 它们可能比核心操作系统软件包更新得更频繁
传统上如果开发人员想要最新版本的应用,而管理员希望使用最稳定版本,会造成一种难以管理的局面
RHEL 8
中运用一种称为模块化
Modularity
的新技术简化了这个过程。 模块化允许单个仓库承载多个版本的应用软件包及其依赖项关系
RHEL 8
内容通过两个主要的软件仓库进行分发,分别为
BaseOS
和
AppStream
BaseOS
:以
RPM
软件包的形式为
RHEL
提供核心操作系统内容, BaseOS 组件的生命周期与
RHEL
发行版中的内容相同
Application Stream
:提供具有不同生命周期的内容,作为模块和传统 RPM 软件包。模块描述了属于一个整体的一组
RPM
软件包。模块可以包含多个流,使多个版本的应用可供安装。启用模块流后,系统能够访问该模块流中的 RPM
软件包
Modules
模块是一组相关联的
RPM
软件包
Module Streams
:每个模块可以具有一个或多个
模块流
,其包含不同版本的内容,每个流独立接收更新,模块流可以视为应用流仓库中的虚拟仓库
Module Profiles
:每个模块可以有一个或多个
配置文件
,配置文件是一起安装的某些软件包的列表,列表包括服务器、客戶端、开发或最小安装等
使用
YUM
管理模块
RHEL8
使用
yum
第四版,支持应用流中的模块特性
yum module
命令处理模块内容
yum module list
列出可用模块列表
yum module info 列出模块信息
yum module enable
必须启用模块流才能安装其模块。
注:对于指定模块,只能启用一个模块流,其它模块流将被禁用
yum module remove 删除已经安装的模块
yum module disable 禁用模块流
切换模块流
切换模块流通常需要将内容升级或降级到不同版本
为确保顺利切换,应首先删除模块流提供的模块
将删除模块的配置文件所安装的所有软件包,以及这些软件包依赖的任何模块和软件包
列出模块安装的软件包:
删除在上一个命令中列出的软件包。标记要卸载的模块配置文件
删除模块配置文件后,重置模块流。使用
yum module reset
命令重置模块流
启用其他模块流并安装模块