RHEL软件包管理

news2024/10/5 13:48:30

3.1  RHEL软件包管理

完善的软件包管理机制对于操作系统来说是非常重要的,没有软件包管理器,用户使用操作系统将会变得非常困难,也不利于操作系统的推广。用户要使用Linux,需要了解Linux的包管理机制。随着Linux的发展,目前形成了两种包管理机制:DNF/RPM(Red Hat Package Manager)和DPKG(Debian Package)。DNF和RPM本质上是同一类包管理软件,DNF是RPM的更新版本。DNF、RPM和DPKG都是源代码经过编译之后,通过包管理机制将编译后的软件进行打包,避免了每次都编译软件的烦琐过程。

3.1.1  RPM软件包管理

RPM类似于Windows里面的“添加/删除程序”,最早由Red Hat公司研制,现已成为一个开源工具,并更名为RPM Package Manager。RPM软件包以rpm为扩展名,同时RPM也是一种软件包管理器,可以让用户方便地进行软件的安装、更新和卸载。操作RPM软件包对应的命令为rpm。

RPM包通常包含二进制包和源代码包。二进制包可以直接通过rpm命令安装在系统中,源代码包则可以通过rpm命令提取对应软件的源代码,以便进行学习或二次开发。

注意:在Red Hat Enterprise Linux 9里面可以使用dnf命令替换rpm命令来管理RPM包。

1. 安装软件包

RPM提供了非常丰富的功能,是通过一定机制把二进制文件或其他文件打包在一起的单个文件。使用RPM进行安装通常是一个把二进制程序或其他文件复制到系统指定路径的过程。下面演示如何使用RPM安装软件。

使用SecureCRT时常见的操作是使用rz或sz命令进行文件的上传或下载,对应的软件包为lrzsz-0.12.20-55.el9.x86_64.rpm,一般随附于Linux的发行版(软件版本可能有所不同)。示例3-1演示了如何通过RPM安装此软件。

【示例3-1】

#可以自动识别光盘,或者使用手动挂载方式
#以下是手动挂载方式
#建立目录
[root@localhost /]# mkdir -p /cdrom
#挂载光驱
[root@localhost /]# mount -t iso9660 /dev/cdrom  /cdrom
mount: /dev/sr0 is write-protected, mounting read-only
#找到要安装的软件
[root@localhost /]# cd cdrom/BaseOS/Packages/
[root@localhost Packages]# ls -l lrzsz-0.12.20-55.el9.x86_64.rpm
-r--r--r--. 1 liu liu 88569 11月 20  2021 lrzsz-0.12.20-55.el9.x86_64.rpm 
#安装前执行此命令发现并不存在
[root@localhost Packages]# rz --version
bash: rz: command not found...
Install package 'lrzsz' to provide command 'rz'? [N/y] #这里提示自动安装,可以暂时跳过,选择N
#进行软件包的安装
[root@localhost Packages]# rpm -ivh lrzsz-0.12.20-55.el9.x86_64.rpm
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:lrzsz-0.12.20-55.el9             ################################# [100%] 
[root@localhost Packages]# rz --version
rz (lrzsz) 0.12.20

首先挂载光驱,找到指定的软件,通过rpm命令将软件安装到系统中。上述示例中的参数说明如下:

  1. -i:安装软件时显示软件包的相关信息
  2. -v:安装软件时显示命令的执行过程
  3. -h:安装软件时输出hash记号“#”

软件已经安装完毕,查看软件的安装位置和安装文件列表如示例3-2所示。

【示例3-2】

#查看软件包文件列表及文件安装路径
[root@localhost Packages]# rpm -qpl lrzsz-0.12.20-55.el9.x86_64.rpm
warning: lrzsz-0.12.20-55.el9.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
/usr/bin/rb
/usr/bin/rx
/usr/bin/rz
/usr/bin/sb
/usr/bin/sx
/usr/bin/sz
/usr/share/locale/de/LC_MESSAGES/lrzsz.mo
/usr/share/man/man1/rz.1.gz
/usr/share/man/man1/sz.1.gz
[root@localhost Packages]# which rz
/usr/bin/rz
#查看安装的文件
[root@localhost Packages]# ls -l /usr/bin/rz
-rwxr-xr-x. 3 root root 74016  8月 10  2021 /usr/bin/rz 
#有时会遇到软件包有依赖关系的情况
[root@localhost Packages]# cd AppStream/Packages/
[root@localhost Packages]# rpm -ivh glibc-devel-2.34-28.el9_0.x86_64.rpm
错误:依赖检测失败:
        glibc-headers = 2.34-28.el9_0 被 glibc-devel-2.34-28.el9_0.x86_64 需要
        kernel-headers >= 3.2 被 glibc-devel-2.34-28.el9_0.x86_64 需要
        libxcrypt-devel(x86-64) >= 4.0.0 被 glibc-devel-2.34-28.el9_0.x86_64 需要
#这时需要将所有依赖包一起装上
[root@localhost Packages]# rpm -ivh glibc-devel-2.34-28.el9_0.x86_64.rpm glibc-headers-2.34-28.el9_0.x86_64.rpm kernel-headers-5.14.0-70.13.1.el9_0.x86_64.rpm  libxcrypt-devel-4.4.18-3.el9.x86_64.rpm
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:kernel-headers-5.14.0-70.13.1.el9################################# [ 25%]
   2:glibc-headers-2.34-28.el9_0      ################################# [ 50%]
   3:libxcrypt-devel-4.4.18-3.el9     ################################# [ 75%]
   4:glibc-devel-2.34-28.el9_0        ################################# [100%] 
#这里讲解的依赖问题,可以通过提示信息看到,但是对于管理员来说还是相对复杂,下一节会讲解使用集成管理工具YUM来自动化解决依赖问题

上述示例演示了如何通过rpm命令查看软件的安装位置,参数说明如下:

  1. -q:使用询问模式,当遇到任何问题时,rpm命令会先询问用户
  2. -p:查询软件包的文件
  3. -l:显示软件包中的文件列表

如果软件包已经安装,但由于某些原因想重新安装,则可采用强制安装的方式,使用指定参数实现这个功能,方法如示例3-3所示。

【示例3-3】

[root@localhost Packages]# rpm -ivh ftp-0.17-89.el9.x86_64.rpm
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:ftp-0.17-89.el9                  ################################# [100%]
#force参数表示强制安装
[root@localhost Packages]# rpm -ivh --force ftp-0.17-89.el9.x86_64.rpm
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:ftp-0.17-89.el9                  ################################# [100%]
#nodeps表示忽略依赖关系
[root@localhost Packages]# rpm -ivh --force --nodeps ftp-0.17-89.el9.x86_64.rpm Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:ftp-0.17-89.el9                  ################################# [100%]

上述示例演示了如何强制更新已经安装的软件,如果安装软件时遇到互相依赖的软件包导致不能安装,那么可以使用nodeps参数先禁止检查软件包依赖以便完成软件的安装。

2. 升级软件包

软件安装以后随着新功能的增加或BUG的修复,软件会持续更新。更新软件的方法如示例3-4所示。

【示例3-4】

#更新已经安装的软件
[root@localhost Packages]#rpm –Uvh lrzsz-0.12.20-55.el9.x86_64.rpm

通过rpm命令更新软件时常用的参数说明如下:

  1. -U:升级指定的软件

更新软件时如果遇到已有的配置文件,为保证新版本的运行,RPM包管理器会重命名该软件对应的配置文件,然后安装新的配置文件,新、旧文件的保存会使得用户有更多选择。

3. 查看已安装的软件包

系统安装完会默认安装一系列的软件。RPM包管理器提供了相应的命令查看已安装的安装包,如示例3-5所示。

【示例3-5】

#查看系统中安装的所有包
[root@localhost Packages]# rpm -qa 
libertas-sd8787-firmware-20220209-126.el9_0.noarch
netronome-firmware-20220209-126.el9_0.noarch
dejavu-serif-fonts-2.37-18.el9.noarch
google-noto-emoji-color-fonts-20200916-4.el9.noarch
jomolhari-fonts-0.003-34.el9.noarch
julietaula-montserrat-fonts-7.210-6.el9.noarch
khmer-os-system-fonts-5.0-36.el9.noarch
lohit-assamese-fonts-2.91.5-13.el9.noarch
lohit-bengali-fonts-2.91.5-13.el9.noarch
lohit-devanagari-fonts-2.95.4-14.el9.noarch
lohit-gujarati-fonts-2.92.4-13.el9.noarch
lohit-kannada-fonts-2.5.4-12.el9.noarch
lohit-odia-fonts-2.91.2-13.el9.noarch
lohit-tamil-fonts-2.91.3-13.el9.noarch
lohit-telugu-fonts-2.5.5-12.el9.noarch
paktype-naskh-basic-fonts-5.0-6.el9.noarch
pt-sans-fonts-20141121-23.el9.noarch
sil-abyssinica-fonts-1.200-23.el9.noarch
sil-nuosu-fonts-2.200-4.el9.noarch
sil-padauk-fonts-3.003-9.el9.noarch
smc-meera-fonts-7.0.3-5.el9.noarch
stix-fonts-2.0.2-11.el9.noarch
virtio-win-1.9.25-2.el9_0.noarch
gutenprint-doc-5.3.4-4.el9.x86_64
gnome-user-docs-40.0-3.el9.noarch
words-3.0-39.el9.noarch
rootfiles-8.1-31.el9.noarch
NetworkManager-config-server-1.36.0-4.el9_0.noarch
gpg-pubkey-fd431d51-4ae0493b
gpg-pubkey-5a6340b3-6229229e
grub2-common-2.06-27.el9_0.7.noarch
grub2-tools-minimal-2.06-27.el9_0.7.x86_64
grub2-pc-modules-2.06-27.el9_0.7.noarch
grub2-tools-2.06-27.el9_0.7.x86_64
grub2-pc-2.06-27.el9_0.7.x86_64
grub2-tools-extra-2.06-27.el9_0.7.x86_64
grub2-tools-efi-2.06-27.el9_0.7.x86_64
lrzsz-0.12.20-55.el9.x86_64
ftp-0.17-89.el9.x86_64
#部分结果省略
#查找指定的安装包
[root@localhost Packages]# rpm -aq | grep rz
lrzsz-0.12.20-55.el9.x86_64

通过使用rpm命令指定特定的参数可以查看系统中安装的软件包。查看已安装的软件包的参数说明如下:

  1. -a:显示安装的所有软件列表

4. 卸载软件包

RPM包管理器提供了对应的参数进行软件的卸载,软件卸载方法如示例3-6所示。如果卸载的软件被别的软件依赖,则不能卸载,需要将对应的软件卸载后才能卸载当前软件。

【示例3-6】

#查找指定的安装包
[root@localhost Packages]# rpm -aq | grep rz
lrzsz-0.12.20-55.el9.x86_64
#卸载软件包
[root@localhost Packages]# rpm -e lrzsz
#卸载后命令不存在
[root@localhost Packages]# rz --version
-bash: /usr/bin/rz: No such file or directory
#无结果说明对应的软件包被成功卸载
[root@localhost Packages]# rpm -qa  |grep rz
#如软件之间存在依赖,则不能卸载,此时需要先卸载依赖的软件
[root@localhost ~]# rpm -e glibc-devel
错误:依赖检测失败:
        glibc-devel >= 2.2.90-12 被 (已安裝) gcc-11.2.1-9.4.el9.x86_64 需要
        glibc-devel(x86-64) >= 2.27 被 (已安裝) libxcrypt-devel-4.4.18-3.el9.x86_64 需要

上述示例演示了如何查找并卸载lrzsz软件和glibc-devel软件。不幸的是卸载glibc-devel软件时因存在相应的软件依赖而卸载失败,此时需要先卸载依赖的软件包。卸载软件包的参数说明如下:

  1. -e:从系统中移除指定的软件包。

3.1.2  YUM软件包管理

RPM包管理器可以让用户不必经过编译就使用软件,但也存在不方便。当遇到软件包依赖问题时,RPM包管理器会中断当前安装,提示用户有依赖的软件包。很明显这种方法使用起来非常不方便,特别是一些依赖性非常复杂的软件包。

为解决软件包依赖性问题,Red Hat公司又开发了一个新工具YUM(全称为 Yellow dog Updater,Modified)。YUM工具的工作依赖于一个源,源中包含了许多软件包和软件包的相关索引数据,通常位于网络主机中。当用户使用YUM工具安装软件包时,YUM将通过索引数据搜索软件包的依赖关系,再从源中下载软件包并安装。

当用户将系统注册到Red Hat网络后,系统会自动配置源,因此无网络连接的计算机将无法使用Red Hat提供的源。为方便能从本地使用YUM工具安装软件包,用户可以使用安装光盘自建一个本地源。这种方法虽然能解决复杂的软件包依赖问题,但是无法通过Red Hat网络获取最新的软件包,以及获取最新的Bug修正。

本节将采用光盘自建源的方式演示YUM工具的使用方法,同时强烈建议将系统注册到Red Hat网络,以解决系统安全性问题。

1. 利用安装光盘建立源

利用安装光盘建立源首先需要将光盘挂载到目录,然后直接建立一个新的源即可,如示例3-7所示。

【示例3-7】

#建立挂载目录将光盘挂载到/cdrom
[root@localhost ~]# mkdir -p /cdrom
[root@localhost ~]# mount /dev/cdrom /cdrom
mount: /dev/sr0 is write-protected, mounting read-only
#备份原来的源配置文件
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv redhat.repo redhat.repo.bak
#建立新的源配置文件,命名为dvd.repo
[root@localhost yum.repos.d]# cat -v dvd.repo
#源配置文件的内容
[DVD-Local]
name=DVD Local
baseurl=file:///cdrom/
enable=1
gpgcheck=1
gpgkey=file:///cdrom/RPM-GPG-KEY-redhat-release
#清除YUM的所有缓存文件
[root@localhost yum.repos.d]# yum clean all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
              : manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: DVD-Local
Cleaning up everything
#建立新的缓存文件
[root@localhost yum.repos.d]# yum makecache
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-
              : manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
DVD-Local										| 4.1 kB     00:00
(1/4): DVD-Local/group_gz						| 136 kB   00:00
(2/4): DVD-Local/primary_db					| 3.9 MB   00:00
(3/4): DVD-Local/filelists_db					| 3.3 MB   00:00
(4/4): DVD-Local/other_db						| 1.5 MB   00:00
Metadata Cache Created

在dvd.repo文件中,方括号([])中的是源的名称,该名称在所有源中必须是独一无二的,name字段表示源的描述信息。enable和gpgcheck分别表示是否启用源及是否对软件包执行gpg检查,该检查可以验证软件包是否经过Red Hat的签名,未签名的软件包可能会危害系统的稳定。baseurl和gpgkey分别表示源的路径和签名使用的密钥文件位置。

2. 安装软件包

注册到Red Hat网络或建立源后,就可以使用yum命令安装软件包了,如示例3-8所示。

【示例3-8】

#使用YUM工具安装httpd
[root@localhost ~]# yum install httpd
正在更新 Subscription Management 软件仓库。
上次元数据过期检查:0:46:09 前,执行于 2022年08月03日 星期三 00时04分30秒。
依赖关系解决。
==========================================================================
 软件包          	架构  	版本           	仓库                              	大小
==========================================================================
安装:
 httpd           	x86_64 	2.4.51-7.el9_0	rhel-9-for-x86_64-appstream-rpms 	1.5 M
安装依赖关系:
 apr             	x86_64 	1.7.0-11.el9   	rhel-9-for-x86_64-appstream-rpms 	127 k
 apr-util        	x86_64 	1.6.1-20.el9   	rhel-9-for-x86_64-appstream-rpms  	98 k
 apr-util-bdb    	x86_64 	1.6.1-20.el9   	rhel-9-for-x86_64-appstream-rpms  	15 k
 httpd-filesystem 	noarch 	2.4.51-7.el9_0 	rhel-9-for-x86_64-appstream-rpms  	17 k
 httpd-tools       	x86_64 	2.4.51-7.el9_0 	rhel-9-for-x86_64-appstream-rpms  	88 k
 redhat-logos-httpd
                  	noarch 	90.4-1.el9     	rhel-9-for-x86_64-appstream-rpms  	18 k
安装弱的依赖:
 apr-util-openssl 	x86_64 	1.6.1-20.el9   	rhel-9-for-x86_64-appstream-rpms  	17 k
 mod_http2         	x86_64 	1.15.19-2.el9  	rhel-9-for-x86_64-appstream-rpms 		153 k
 mod_lua           	x86_64 	2.4.51-7.el9_0 	rhel-9-for-x86_64-appstream-rpms  	63 k
#YUM将提示用户是否下载安装
事务概要
==========================================================================
安装  10 软件包

总下载:2.1 M
安装大小:5.9 M
确定吗?[y/N]:y #选择安装
#执行软件包下载、事务检查及安装验证
下载软件包:
(1/10): apr-util-openssl-1.6.1-20.el9.x86_64.rp	25 kB/s  |  17 kB	00:00
(2/10): apr-util-1.6.1-20.el9.x86_64.rpm        	135 kB/s | 98 kB	00:00
(3/10): mod_lua-2.4.51-7.el9_0.x86_64.rpm       	84 kB/s  |  63 kB  	00:00
(4/10): redhat-logos-httpd-90.4-1.el9.noarch.rp 	73 kB/s  |  18 kB  	00:00
(5/10): apr-1.7.0-11.el9.x86_64.rpm                	334 kB/s | 127 kB 	00:00
(6/10): apr-util-bdb-1.6.1-20.el9.x86_64.rpm     	52 kB/s  |  15 kB  	00:00
(7/10): httpd-filesystem-2.4.51-7.el9_0.noarch.  	39 kB/s  |  17 kB  	00:00
(8/10): mod_http2-1.15.19-2.el9.x86_64.rpm        	439 kB/s | 153 kB 	00:00
(9/10): httpd-tools-2.4.51-7.el9_0.x86_64.rpm    	287 kB/s | 88 kB  	00:00
(10/10): httpd-2.4.51-7.el9_0.x86_64.rpm          	1.1 MB/s | 1.5 MB 	00:01
--------------------------------------------------------------------------
总计                                            1.0 MB/s | 2.1 MB     00:02
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                 	1/1
  安装    : apr-1.7.0-11.el9.x86_64                                     	1/10
  安装    : apr-util-bdb-1.6.1-20.el9.x86_64                          	2/10
  安装    : apr-util-1.6.1-20.el9.x86_64                               	3/10
  安装    : apr-util-openssl-1.6.1-20.el9.x86_64                      	4/10
  安装    : httpd-tools-2.4.51-7.el9_0.x86_64                          	5/10
  运行脚本: httpd-filesystem-2.4.51-7.el9_0.noarch                    	6/10
  安装    : httpd-filesystem-2.4.51-7.el9_0.noarch                   	6/10
  安装    : redhat-logos-httpd-90.4-1.el9.noarch                     	7/10
  安装    : mod_lua-2.4.51-7.el9_0.x86_64                             	8/10
  安装    : mod_http2-1.15.19-2.el9.x86_64                            	9/10
  安装    : httpd-2.4.51-7.el9_0.x86_64                                	10/10
  运行脚本: httpd-2.4.51-7.el9_0.x86_64                                	10/10
  验证    : apr-util-openssl-1.6.1-20.el9.x86_64                     	1/10
  验证    : apr-util-1.6.1-20.el9.x86_64                               	2/10
  验证    : mod_lua-2.4.51-7.el9_0.x86_64                              	3/10
  验证    : apr-1.7.0-11.el9.x86_64                                     	4/10
  验证    : httpd-2.4.51-7.el9_0.x86_64                                	5/10
  验证    : redhat-logos-httpd-90.4-1.el9.noarch                     	6/10
  验证    : apr-util-bdb-1.6.1-20.el9.x86_64                          	7/10
  验证    : httpd-filesystem-2.4.51-7.el9_0.noarch                   	8/10
  验证    : mod_http2-1.15.19-2.el9.x86_64                             	9/10
  验证    : httpd-tools-2.4.51-7.el9_0.x86_64                         	10/10
已更新安装的产品。

已安装:
  apr-1.7.0-11.el9.x86_64              apr-util-1.6.1-20.el9.x86_64
  apr-util-bdb-1.6.1-20.el9.x86_64     apr-util-openssl-1.6.1-20.el9.x86_64
  httpd-2.4.51-7.el9_0.x86_64          httpd-filesystem-2.4.51-7.el9_0.noarch
  httpd-tools-2.4.51-7.el9_0.x86_64    mod_http2-1.15.19-2.el9.x86_64
  mod_lua-2.4.51-7.el9_0.x86_64        redhat-logos-httpd-90.4-1.el9.noarch

完毕!

3. 卸载软件包

同安装软件包时一样,使用yum命令卸载软件包只需将命令参数install换成remove即可,如示例3-9所示。

【示例3-9】

#卸载软件包
[root@localhost ~]# yum remove httpd
正在更新 Subscription Management 软件仓库。
依赖关系解决。
==========================================================================
 软件包           		架构   	版本         	   仓库                             大小
==========================================================================
移除:
 httpd            		x86_64 	2.4.51-7.el9_0	   @rhel-9-for-x86_64-appstream-rpms	4.7 M
清除未被使用的依赖关系:
 apr              		x86_64 	1.7.0-11.el9 	   @rhel-9-for-x86_64-appstream-rpms 	289 k
 apr-util         		x86_64 	1.6.1-20.el9 	   @rhel-9-for-x86_64-appstream-rpms 	213 k
 apr-util-bdb     		x86_64 	1.6.1-20.el9 	   @rhel-9-for-x86_64-appstream-rpms  	16 k
 apr-util-openssl 		x86_64 	1.6.1-20.el9 	   @rhel-9-for-x86_64-appstream-rpms  	24 k
 httpd-filesystem noarch 		2.4.51-7.el9_0   @rhel-9-for-x86_64-appstream-rpms 	400
 httpd-tools      		x86_64 	2.4.51-7.el9_0    @rhel-9-for-x86_64-appstream-rpms 	202 k
 mod_http2        		x86_64 1.15.19-2.el9  	   @rhel-9-for-x86_64-appstream-rpms 	385 k
 mod_lua          		x86_64 2.4.51-7.el9_0 	   @rhel-9-for-x86_64-appstream-rpms 	143 k
 redhat-logos-httpd
                  noarch 90.4-1.el9     @rhel-9-for-x86_64-appstream-rpms  12 k

事务概要
==========================================================================
移除  10 软件包
#询问是否删除
将会释放空间:5.9 M
确定吗?[y/N]: y
运行事务检查
事务检查成功。
运行事务测试
事务测试成功。
运行事务
  准备中  :                                                                 	1/1
  运行脚本: httpd-2.4.51-7.el9_0.x86_64                               	1/10
  删除    : httpd-2.4.51-7.el9_0.x86_64                                	1/10
  运行脚本: httpd-2.4.51-7.el9_0.x86_64                                	1/10
  删除    : httpd-filesystem-2.4.51-7.el9_0.noarch                    	2/10
  删除    : redhat-logos-httpd-90.4-1.el9.noarch                      	3/10
  删除    : httpd-tools-2.4.51-7.el9_0.x86_64                          	4/10
  删除    : apr-util-1.6.1-20.el9.x86_64                                	5/10
  删除    : apr-util-bdb-1.6.1-20.el9.x86_64                           	6/10
  删除    : apr-1.7.0-11.el9.x86_64                                      	7/10
  删除    : apr-util-openssl-1.6.1-20.el9.x86_64                      	8/10
  删除    : mod_http2-1.15.19-2.el9.x86_64                             	9/10
  删除    : mod_lua-2.4.51-7.el9_0.x86_64                              	10/10
  运行脚本: mod_lua-2.4.51-7.el9_0.x86_64                              	10/10
  验证    : apr-1.7.0-11.el9.x86_64                                     	1/10
  验证    : apr-util-1.6.1-20.el9.x86_64                               	2/10
  验证    : apr-util-bdb-1.6.1-20.el9.x86_64                          	3/10
  验证    : apr-util-openssl-1.6.1-20.el9.x86_64                     	4/10
  验证    : httpd-2.4.51-7.el9_0.x86_64                                	5/10
  验证    : httpd-filesystem-2.4.51-7.el9_0.noarch                   	6/10
  验证    : httpd-tools-2.4.51-7.el9_0.x86_64                         	7/10
  验证    : mod_http2-1.15.19-2.el9.x86_64                             	8/10
  验证    : mod_lua-2.4.51-7.el9_0.x86_64                              	9/10
  验证    : redhat-logos-httpd-90.4-1.el9.noarch                      	10/10
已更新安装的产品。

已移除:
  apr-1.7.0-11.el9.x86_64              apr-util-1.6.1-20.el9.x86_64
  apr-util-bdb-1.6.1-20.el9.x86_64     apr-util-openssl-1.6.1-20.el9.x86_64
  httpd-2.4.51-7.el9_0.x86_64          httpd-filesystem-2.4.51-7.el9_0.noarch
  httpd-tools-2.4.51-7.el9_0.x86_64    mod_http2-1.15.19-2.el9.x86_64
  mod_lua-2.4.51-7.el9_0.x86_64        redhat-logos-httpd-90.4-1.el9.noarch

完毕!

除了以上使用install、remove选项分别安装、卸载软件包外,yum命令还可以使用grouplist、groupinstall和groupremove参数分别列出、安装及卸载软件组。关于软件组的更多细节,读者可阅读相关文档,此处不做过多介绍。

----------------------------------------------------

本文节选自《Red Hat Enterprise Linux 9 系统管理实战》

本次内容发布,获得作者和出版社授权,供读者个人非商业目的使用。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/495008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

初识Vue-数据

目录 响应式 data prop 单向数据流 Prop属性校验 计算属性(computed) 侦听器(watch) 数组操作 数组操作-解决方案 响应式 data data为什么是函数? 因为只有返回一个生成data的函数,这个组件产生的…

精妙绝伦的算法之舞:解密力扣“删除有序数组中的重复项”

本篇博客会讲解力扣“26. 删除有序数组中的重复项”这道题,这是题目链接。 老规矩,先来审题: 题目有对判题标准的详细解释: 接下来是2个示例: 还有提示: 其实这道题考察的是“去重算法”,即…

【Linux】基础IO_文件描述符与重定向

环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅 相关文章推荐: 【Linux】冯.诺依曼体系结构与操作系统 【C/进阶】如何对文件进行读写(含二进制)操作? 【Linux】基础…

SuperMap GIS基础产品WebGIS FAQ集锦(2)

SuperMap GIS基础产品WebGIS FAQ集锦(2) 【iClient】Vue中该如何使用inject传递Map容器? 【解决方案】provide和inject绑定是不可响应的,所以传递时需要传递对象的property,使它变为可响应,示例如下&#…

为什么选择云计算

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和…

【python】keras包:深度学习( CNN卷积神经网络 convolution nulear network)

CNN卷积神经网络 convolution nulear network 应用场景 图像识别、根据轮廓识别的图像识别 算法逻辑 算法学得好的话,一眼就可以看出MLP就是暴力算法,时间效率低。因此希望提升效率。 剪枝方法: 先提取图像的关键信息(轮廓&am…

树莓派系统配置-raspi-config

在终端内输入 sudo raspi-config 显示如下界面,左上方是树梅派的型号及版本信息。: 设置界面操作介绍 该配置工具中可以用键盘 ↑ ↓ ← → 进行选择,按 tab 在条目间切换,按 enter 确认,按 esc 返回。在二三级菜单…

(二)PID控制的Anti-windup

比例环节:快速接近目标积分环节:防止稳态误差微分环节:减少振荡 被控对象可以分为两个部分,分别是执行器,用于产生力或者能量从而改变系统,和处理,比如说温控的加热过程。在现实世界中&#xf…

PCL学习六:Filtering-滤波

参考引用 Point Cloud Library黑马机器人 | PCL-3D点云 1. 点云滤波概述 1.1 背景 在获取点云数据时,由于设备精度、操作者经验、环境因素等带来的影响,以及电磁波衍射特性、被测物体表面性质变化和数据拼接配准操作过程的影响,点云数据中将…

java的spi机制使用场景讲解和具体使用

八股文背多了,相信大家都听说过一个词,SPI扩展。 有的面试官就很喜欢问这个问题,SpringBoot的自动装配是如何实现的? 基本上,你一说是基于spring的SPI扩展机制,再把spring.factories文件和EnableAutoConf…

回收站文件恢复,分享4个巧妙解决方法!

案例:回收站文件怎么恢复 【清理电脑时一不小心清空了我的回收站,有朋友知道该怎么恢复吗?急急急!】 回收站对于电脑用户来说,可以带来很多的方便,能让用户能够在删除文件后将其恢复。但是,有…

C++之正则表达式

目录 #include • .:换行符以外的任何字符 • […]:…字符中的任何一个 • [^…]:…字符之外的任何一个 • [[:charclass:]]:指定之字符类charclass中的一个 • \n, \t, \f, \r, \v:换行符,tab符号&#xf…

协程实现原理

大家好,我是易安!今天我们来探讨一个问题,Go 协程的实现原理。此“协程”非彼”携程“。 线程实现模型 讲协程之前,我们先看下线程的模型。 实现线程主要有三种方式:轻量级进程和内核线程一对一相互映射实现的1:1线程…

自动驾驶经验分享

人生经验总结 第一个要聊的就是在自动驾驶行业工作的这几年,有什么人生经验可以总结一下。 我觉得从这几个方面,首先第一个是能力上,能力上你需要去锻炼,做成功一件事情的一个能力;技术上,对前沿的技术要…

并发编程java

1、CountDownLatch: 如果我们知道了我们的需要执行的任务数,那么我们可以用java并发包下的CountDownLatch,直接上代码: public class CountDownLaunch {private static final Executor executor Executors.newFixedThreadPool(…

SpringBoot参数校验

简单数据类型 SpringBoot自带了validation工具可以从后端对前端传来的参数进行校验&#xff0c;用法如下&#xff1a; 引入validation起步依赖 <!-- 参数校验 --> <dependency><groupId>org.springframework.boot</groupId><artifactId>sprin…

springboot、SpringCloud 常见版本版本介绍

官方版本号&#xff08;2023年5月6日&#xff09; Spring Boot 版本说明 Spring Boot的版本号分析&#xff1a; Spring Boot的版本以数字表示。例如&#xff1a;Spring Boot 2.4.1.RELEASE --> 主版本.次版本.增量版本&#xff08;Bug修复&#xff09; 主版本&#xff0c…

学系统集成项目管理工程师(中项)系列18a_进度管理(上)

1. 规划项目进度管理 1.1. 为实施项目进度管理制定政策、程序&#xff0c;并形成文档化的项目进度管理计划的过程 1.2. 输入 1.2.1. 项目管理计划 1.2.1.1. 范围基准 1.2.1.2. 其他信息 1.2.2. 项目章程 1.2.2.1. 【19下选43】 1.2.2.2. 项目章程中规定的项目审批要求和总…

python ---->>利用 urllib 库获取网络资源

我的个人博客主页&#xff1a;如果’真能转义1️⃣说1️⃣的博客主页 &#xff08;1&#xff09;关于Python基本语法学习---->可以参考我的这篇博客《我在VScode学Python》 &#xff08;2&#xff09;pip是必须的在我们学习python这门语言的过程中Python ----&#xff1e;&a…

SAP: SMARTFORMS

事务码&#xff1a;SMARTFORMS 1、输入表格名&#xff0c;点击创建/更改/显示 2、设置页格式 查看页格式事务码&#xff1a;SPAD 创建的详细流程&#xff1a;详见博客ABAP开发Smartform实例_abap smartform_小强pp的博客-CSDN博客 SMARTFORMS TEMPLATE使用方法_Seele_1018的…