CentOS8软件包的管理与安装

一、软件包的概述

RPM 是 RPM Package Manager(软件包管理器)的缩写,这一文件格式名称虽然打上了 RedHat 的标志,但是其原始设计理念是开放式的,现在包括CentOS、OpenLinux、SUSE 以及 Turbo Linux 等 Linux 的分发版本都有采用,可以算是公认的行业标准了。 1、rpm包的获取方式: 1、Centos 系统镜像光盘 2、网站 rpmfind.net 3、比如安装 mysql、nginx 等软件,也可以去官方网站 4、centos yum 源上,也有 rpm 可以手动下载


2、 rpm包全名格式的简要说明

例:

[root@fishman-160 ~]# ls /mnt/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm 
/mnt/Packages/zsh-5.0.2-34.el7_8.2.x86_64.rpm
zsh -5. 5. 1- 6. el8 x86_64
软件名 主版本号 次版本号 修订次数 第几次发布 操作系统版本 x86架构的64位包

3、 查看内核版本

[root@fishman-160 ~]# uname -r
4.18.0-500.el8.x86_64

二、rpm命令常用使用技巧

rpm命令的应用场景包含安装、查询、删除

rpm命令基本格式: rpm -[参数] 软件包

rpm安装时,常用参数:

- i install 的意思, 安装软件包
- v 显示附加信息,提供更多详细信息
- h 或 *--hash* 安装时输出####标记

问:rpm 使用时,什么情况下使用软件包全名,什么时候使用软件包名?

全名是在 安装 和 更新 升级时候使用,每当一个 rpm 包安装到系统上之后,安装信息通常会保存在本地 的 /var/lib/rpm/目录下。 包名是对 已经安装过的软件包 进行操作时,比如 查询 已经安装的某个包, 卸载 包等 ,使用包名。它默认是去目录/var/lib/rpm 下面进行搜索。

rpm查询时,常用参数:

-q query的意思,查询软件包
-a 查询所以已安装的软件包
-f 查询系统文件所属哪个安装包,反向查询
-i 显示已经安装的rpm软件包详细信息
-l 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息

例1:查询所有已经安装包中带有vim关键字的包rpm -qa)

[root@fishman-160 ~]# rpm -qa | grep vim
vim-minimal-8.0.1763-19.el8.4.x86_64
vim-enhanced-8.0.1763-19.el8.4.x86_64
vim-filesystem-8.0.1763-19.el8.4.noarch
vim-common-8.0.1763-19.el8.4.x86_64

例2:查询vim命令属于哪个安装包

[root@fishman-160 ~]# rpm -qf `which vim`
vim-enhanced-8.0.1763-19.el8.4.x86_64

例3: 查询已经安装的rpm包的详细信息和作用

[root@fishman-160 ~]# rpm -qi `rpm -qf `which vim``#通过rpm -qf 找到完整的rpm安装包包名,在通过rpm -qi找到详细信息
rpm:未给出要查询的参数
Name        : which
Version     : 2.21
Release     : 20.el8
Architecture: x86_64
Install Date: 2023年07月06日 星期四 13时27分50秒
Group       : Unspecified
Size        : 83372
License     : GPLv3
Signature   : RSA/SHA256, 2023年04月03日 星期一 23时27分36秒, Key ID 05b555b38483c65d
Source RPM  : which-2.21-20.el8.src.rpm
Build Date  : 2023年03月22日 星期三 22时55分35秒
Build Host  : x86-06.stream.rdu2.redhat.com
Relocations : (not relocatable)
Packager    : builder@centos.org
Vendor      : CentOS
URL         : https://savannah.gnu.org/projects/which/
Summary     : Displays where a particular program in your path is located
Description :
The which command shows the full pathname of a specified program, if
the specified program is in your PATH.

例4:查询未安装的rpm包的详细信息和作用

root@fishman-160 /]# rpm -qpi /mnt/Packages/vim-enhanced-7.4.629-8.el7_9.x86_64.rpm 
警告:/mnt/Packages/vim-enhanced-7.4.629-8.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
Name        : vim-enhanced
Epoch       : 2
Version     : 7.4.629
Release     : 8.el7_9
Architecture: x86_64
Install Date: (not installed)
Group       : Applications/Editors
Size        : 2339666
License     : Vim
Signature   : RSA/SHA256, 2020年12月18日 星期五 04时37分21秒, Key ID 24c6a8a7f4a80eb5
Source RPM  : vim-7.4.629-8.el7_9.src.rpm
Build Date  : 2020年12月16日 星期三 00时44分28秒
Build Host  : x86-01.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://www.vim.org/
Summary     : A version of the VIM editor which includes recent enhancements
Description :
VIM (VIsual editor iMproved) is an updated and improved version of the
vi editor.  Vi was the first real screen-based editor for UNIX, and is
still very popular.  VIM improves on vi by adding new features:
multiple windows, multi-level undo, block highlighting and more.  The
vim-enhanced package contains a version of VIM with extra, recently
introduced features like Python and Perl interpreters.

例5:查询未安装的软件包安装后,会生成哪些文件

[root@fishman-160 /]# rpm -qpl /mnt/Packages/vim-enhanced-7.4.629-8.el7_9.x86_64.rpm 
警告:/mnt/Packages/vim-enhanced-7.4.629-8.el7_9.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor

rpm包的卸载

参数: --nodeps 忽略依赖,建议在卸载时不要用 rpm 去卸载有依赖关系的包

[root@fishman-160 /]# rpm -e lrzsz 
[root@fishman-160 /]# 
[root@fishman-160 /]# rpm -q lrzsz
未安装软件包 lrzsz 

 

三、Yum的使用

yum(全称为 Yellow dog Updater, Modified)是一个前端软件包管理器。基于 RPM 包管理,能 够从指定的服务器自劢下载 RPM 包并且安装,可以 自动处理依赖性关系,并且一次安装所有依赖的软体 包 ,无须繁琐地一次次下载、安装。yum 提供了查找、安装、删除某一个、一组甚至全部软件包的命令, 而且命令简洁而又好记. 总结:YUM能够解决依赖关系问题,自动下载软件包,是基于 C/S 架构。

1、 配置yum源

挂载镜像

1690174215036

[root@fishman-160 /]# mount /dev/sr0 /mnt
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@fishman-160 /]# ls /mnt
CentOS_BuildTag  EFI  EULA  GPL  images  isolinux  LiveOS  Packages  repodata  RPM-GPG-KEY-CentOS-7  RPM-GPG-KEY-CentOS-Testing-7  TRANS.TBL

2、配置本地yum源

centos8 本地 YUM 源配置: 在 centos8 当中,本地光盘中的安装包被分别放在了两个路径下。假设挂载路径为/mnt,那么两个Package 路径分别为:/mnt/AppStream/Packages 和/mnt/BaseOS/Packages。 因为 IOS 镜像内的设置,所以导致了在编辑本地 yum 源的时候需要分别写两个路径在配置文件中。 同时网络 yum 源也被分别写到了两个配置文件内。所以就需要把两个网络 yum 源配置文件改名:

[root@fishman-160 /]# ls /etc/yum.repos.d/
CentOS-AppStream.repo   CentOS-Debuginfo.repo  CentOS-HA.repo          CentOS-Vault.repo
CentOS-Base.repo        CentOS-Devel.repo      CentOS-Media.repo
CentOS-centosplus.repo  CentOS-Extras.repo     CentOS-PowerTools.repo
CentOS-CR.repo          CentOS-fasttrack.repo  CentOS-Sources.repo

创建一个本地 yum 配置文件 centos8.repo

请按 ENTER 或其它命令继续
  1 # CentOS-Stream-Media.repo
  2 #
  3 # You can use this repo to install items directly off the installation media.
  4 # Verify your mount point matches one of the below file:// paths.
  5 
  6 [media-baseos]
  7 name=CentOS7-local
  8 baseurl=file:///mnt
  9 gpgcheck=1
 10 enabled=1
 11 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

如果 gpgcheck=1 ,需要导入 rpm 公钥。方便后期校对 rpm 包。一般情况,写为 0. 工作就写成 1 并导入公钥。这样安全。

[root@fishman-160 yum.repos.d]# rpm --import  /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial 

移动原有的网络yum源

[root@fishman-160 ~]# mv /etc/yum.repos.d/CentOS* /opt

清除yum源缓存

[root@fishman-160 ~]# dnf clean all
7 个文件已删除

生成新的yum源缓存

[root@fishman-160 yum.repos.d]# dnf list |head 
上次元数据过期检查:2:31:03 前,执行于 20230724日 星期一 122447秒。
已安装的软件包
GConf2.x86_64                                      3.2.6-22.el8                                          @appstream  
ModemManager.x86_64                                1.20.2-1.el8                                          @baseos     
ModemManager-glib.x86_64                           1.20.2-1.el8                                          @baseos     
NetworkManager.x86_64                              1:1.40.16-8.el8                                       @baseos     
NetworkManager-adsl.x86_64                         1:1.40.16-8.el8                                       @baseos     
NetworkManager-bluetooth.x86_64                    1:1.40.16-8.el8                                       @baseos     
NetworkManager-config-server.noarch                1:1.40.16-8.el8                                       @baseos     
NetworkManager-libnm.x86_64                        1:1.40.16-8.el8                                       @baseos     

3、yum的常用命令

3.1、安装

[root@fishman-160 ~]# dnf-3 install -y httpd

3.2、罗列已经安装的软件包

[root@fishman-160 yum.repos.d]# dnf list installed
已安装的软件包
GConf2.x86_64                                                                                      3.2.6-22.el8                                                                                          @appstream
ModemManager.x86_64                                                                                1.20.2-1.el8                                                                                          @baseos   
ModemManager-glib.x86_64

.........

3.3、查找指定文件所属的软件包

[root@fishman-160 yum.repos.d]# dnf provides /usr/bin/python3
上次元数据过期检查:0:13:39 前,执行于 2023年07月25日 星期二 11时51分11秒。
python3.11-3.11.2-2.el8.x86_64 : Version 3.11 of the Python interpreter
仓库        :appstream
匹配来源:
文件名    :/usr/bin/python3

python3.11-3.11.4-1.el8.x86_64 : Version 3.11 of the Python interpreter
仓库        :@System
匹配来源:
文件名    :/usr/bin/python3

python3.11-3.11.4-1.el8.x86_64 : Version 3.11 of the Python interpreter
仓库        :appstream
匹配来源:
文件名    :/usr/bin/python3

3.4、升级软件包

[root@fishman-160 yum.repos.d]# dnf update
上次元数据过期检查:0:00:24 前,执行于 2023年07月25日 星期二 12时07分25秒。
依赖关系解决。
===================================================================================================================================================================================================================
 软件包                                                     架构                                        版本                                                  仓库                                            大小
===================================================================================================================================================================================================================
升级:
 audit                                                      x86_64                                      3.0.7-5.el8                                           baseos                                         283 k
 audit-libs                                                 x86_64                                      3.0.7-5.el8                                           baseos                                         123 k
 curl                                                       x86_64                                      7.61.1-31.el8                                         baseos                                         353 k
 libcurl                                                    x86_64                                      7.61.1-31.el8                                         baseos                                         303 k
 libipa_hbac                                                x86_64                                      2.9.1-1.el8                                           baseos                                         125 k
 libsss_autofs                                              x86_64                                      2.9.1-1.el8                                           baseos                                         128 k
 libsss_certmap                                             x86_64                                      2.9.1-1.el8                                           baseos                                         184 k
 libsss_idmap                                               x86_64                                      2.9.1-1.el8                                           baseos                                         130 k
 libsss_nss_idmap                                           x86_64                                      2.9.1-1.el8                                           baseos                                         138 k
 libsss_sudo                                                x86_64                                      2.9.1-1.el8                                           baseos                                         126 k
 open-vm-tools                                              x86_64                                      12.2.0-3.el8                                          appstream                                      917 k
 open-vm-tools-desktop                                      x86_64                                      12.2.0-3.el8                                          appstream                                      203 k
 python3-audit                                              x86_64                                      3.0.7-5.el8                                           baseos                                          87 k
 python3-sssdconfig                                         noarch                                      2.9.1-1.el8                                           baseos                                         152 k
 sssd                                                       x86_64                                      2.9.1-1.el8                                           baseos                                         117 k
 sssd-ad                                                    x86_64                                      2.9.1-1.el8                                           baseos                                         310 k
 sssd-client                                                x86_64                                      2.9.1-1.el8                                           baseos                                         249 k
 sssd-common                                                x86_64                                      2.9.1-1.el8                                           baseos                                         1.7 M
 sssd-common-pac                                            x86_64                                      2.9.1-1.el8                                           baseos                                         193 k
 sssd-ipa                                                   x86_64                                      2.9.1-1.el8                                           baseos                                         375 k
 sssd-kcm                                                   x86_64                                      2.9.1-1.el8                                           baseos                                         261 k
 sssd-krb5                                                  x86_64                                      2.9.1-1.el8                                           baseos                                         162 k
 sssd-krb5-common                                           x86_64                                      2.9.1-1.el8                                           baseos                                         208 k
 sssd-ldap                                                  x86_64                                      2.9.1-1.el8                                           baseos                                         248 k
 sssd-nfs-idmap                                             x86_64                                      2.9.1-1.el8                                           baseos                                         127 k
 sssd-proxy                                                 x86_64                                      2.9.1-1.el8                                           baseos                                         158 k

事务概要
===================================================================================================================================================================================================================
升级  26 软件包

总下载:7.3 M
确定吗?[y/N]: 

3.5、升级指定软件包

操作中止。
[root@fishman-160 yum.repos.d]# dnf update audit
上次元数据过期检查:0:01:19 前,执行于 2023年07月25日 星期二 12时07分25秒。
依赖关系解决。
===================================================================================================================================================================================================================
 软件包                                                 架构                                            版本                                                 仓库                                             大小
===================================================================================================================================================================================================================
升级:
 audit                                                  x86_64                                          3.0.7-5.el8                                          baseos                                          283 k
 audit-libs                                             x86_64                                          3.0.7-5.el8                                          baseos                                          123 k
 python3-audit                                          x86_64                                          3.0.7-5.el8                                          baseos                                           87 k

事务概要
===================================================================================================================================================================================================================
升级  3 软件包

总下载:493 k
确定吗?[y/N]: 

3.6、不升级内核的升级

#升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变

[root@fishman-160 yum.repos.d]# dnf upgrade
上次元数据过期检查:0:02:10 前,执行于 20230725日 星期二 120725秒。
依赖关系解决。
===================================================================================================================================================================================================================
 软件包                                                     架构                                        版本                                                  仓库                                            大小
===================================================================================================================================================================================================================
升级:
 audit                                                      x86_64                                      3.0.7-5.el8                                           baseos                                         283 k
 audit-libs                                                 x86_64                                      3.0.7-5.el8                                           baseos                                         123 k
 curl                                                       x86_64                                      7.61.1-31.el8                                         baseos                                         353 k
 libcurl                                                    x86_64                                      7.61.1-31.el8                                         baseos                                         303 k
 libipa_hbac                                                x86_64                                      2.9.1-1.el8                                           baseos                                         125 k
 libsss_autofs                                              x86_64                                      2.9.1-1.el8                                           baseos                                         128 k
 libsss_certmap                                             x86_64                                      2.9.1-1.el8                                           baseos                                         184 k
 libsss_idmap                                               x86_64                                      2.9.1-1.el8                                           baseos                                         130 k
 libsss_nss_idmap                                           x86_64                                      2.9.1-1.el8                                           baseos                                         138 k
 libsss_sudo                                                x86_64                                      2.9.1-1.el8                                           baseos                                         126 k

3.7、卸载

root@fishman-160 yum.repos.d]# dnf remove httpd
依赖关系解决。
===================================================================================================================================================================================================================
 软件包                                             架构                                   版本                                                                   仓库                                        大小
===================================================================================================================================================================================================================
移除:
 httpd                                              x86_64                                 2.4.37-54.module_el8.8.0+1256+e1598b50                                 @appstream                                 4.3 M
清除未被使用的依赖关系:
 apr                                                x86_64                                 1.6.3-12.el8                                                           @appstream                                 272 k
 apr-util                                           x86_64                                 1.6.1-9.el8                                                            @appstream                                 217 k
 apr-util-bdb                                       x86_64                                 1.6.1-9.el8                                                            @appstream                                  12 k
 apr-util-openssl                                   x86_64                                 1.6.1-9.el8                                                            @appstream                                  20 k
 centos-logos-httpd                                 noarch                                 85.8-2.el8                                                             @appstream                                 197 k
 httpd-filesystem                                   noarch                                 2.4.37-54.module_el8.8.0+1256+e1598b50                                 @appstream                                 400  
 httpd-tools                                        x86_64                                 2.4.37-54.module_el8.8.0+1256+e1598b50                                 @appstream                                 194 k
 mod_http2                                          x86_64                                 1.15.7-7.module_el8.8.0+1256+e1598b50                                  @appstream                                 394 k

事务概要
===================================================================================================================================================================================================================
移除  9 软件包

3.8、查找包含xx字符串的软件包

[root@fishman-160 yum.repos.d]# dnf search httpd
上次元数据过期检查:0:04:24 前,执行于 2023年07月25日 星期二 12时07分25秒。
============================================================================================== 名称 精准匹配:httpd ===============================================================================================
httpd.x86_64 : Apache HTTP Server
============================================================================================ 名称  概况 匹配:httpd =============================================================================================
centos-logos-httpd.noarch : CentOS-related icons and pictures used by httpd
keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
python3-keycloak-httpd-client-install.noarch : Tools to configure Apache HTTPD as Keycloak client
================================================================================================ 名称 匹配:httpd =================================================================================================
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-filesystem.noarch : The basic directory layout for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
httpd-tools.x86_64 : Tools for use with the Apache HTTP Server
libmicrohttpd.i686 : Lightweight library for embedding a webserver in applications
libmicrohttpd.x86_64 : Lightweight library for embedding a webserver in applications
================================================================================================ 概况 匹配:httpd =================================================================================================
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server
mod_dav_svn.x86_64 : Apache httpd module for Subversion server

3.9、yum安装工具软件包组

[root@fishman-160 yum.repos.d]# dnf group list
Last metadata expiration check: 0:06:00 ago on Tue 25 Jul 2023 12:07:25 PM CST.
Available Environment Groups:
   Server
   Minimal Install
   Workstation
   Virtualization Host
   Custom Operating System
Installed Environment Groups:
   Server with GUI
Installed Groups:
   Container Management
   Development Tools
   Headless Management
Available Groups:
   .NET Core Development
   RPM Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Network Servers
   Scientific Support
   Security Tools
   Smart Card Support
   System Tools

[root@fishman-160 yum.repos.d]# dnf groupinstall Development Tools
Last metadata expiration check: 0:07:35 ago on Tue 25 Jul 2023 12:07:25 PM CST.
Module or Group 'Tools' is not available.
#选项--skip-broken表示在解决软件包依赖关系时,忽略无法解决的冲突,继续安装其他可用的软件包。

3.10、查看依赖关系

[root@fishman-160 yum.repos.d]# dnf-3 deplist nginx #查看nginx的依赖
Last metadata expiration check: 3:08:27 ago on Tue 25 Jul 2023 12:07:25 PM CST.
package: nginx-1:1.14.1-9.module_el8.0.0+184+e34fea82.x86_64
  dependency: /bin/sh
   provider: bash-4.4.20-4.el8.x86_64
  dependency: libc.so.6(GLIBC_2.28)(64bit)
   provider: glibc-2.28-228.el8.x86_64
  dependency: libcrypt.so.1()(64bit)
   provider: libxcrypt-4.1.1-6.el8.x86_64
  dependency: libcrypt.so.1(XCRYPT_2.0)(64bit)
   provider: libxcrypt-4.1.1-6.el8.x86_64
  dependency: libcrypto.so.1.1()(64bit)
   provider: openssl-libs-1:1.1.1k-9.el8.x86_64
  dependency: libcrypto.so.1.1(OPENSSL_1_1_0)(64bit)
   provider: openssl-libs-1:1.1.1k-9.el8.x86_64
  dependency: libdl.so.2()(64bit)
   provider: glibc-2.28-228.el8.x86_64
  dependency: libdl.so.2(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-228.el8.x86_64
  dependency: libpcre.so.1()(64bit)
   provider: pcre-8.42-6.el8.x86_64
  dependency: libpthread.so.0()(64bit)
   provider: glibc-2.28-228.el8.x86_64
  dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)
   provider: glibc-2.28-228.el8.x86_64
  dependency: libssl.so.1.1()(64bit)
   provider: openssl-libs-1:1.1.1k-9.el8.x86_64
  dependency: libssl.so.1.1(OPENSSL_1_1_0)(64bit)
   provider: openssl-libs-1:1.1.1k-9.el8.x86_64
  dependency: libz.so.1()(64bit)
   provider: zlib-1.2.11-25.el8.x86_64
  dependency: nginx-all-modules = 1:1.14.1-9.module_el8.0.0+184+e34fea82
   provider: nginx-all-modules-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch
  dependency: nginx-filesystem
   provider: nginx-filesystem-1:1.14.1-9.module_el8.0.0+1060+3ab382d3.noarch
  dependency: nginx-filesystem = 1:1.14.1-9.module_el8.0.0+184+e34fea82
   provider: nginx-filesystem-1:1.14.1-9.module_el8.0.0+184+e34fea82.noarch
  dependency: openssl
   provider: openssl-1:1.1.1k-9.el8.x86_64
  dependency: pcre
   provider: pcre-8.42-6.el8.i686
   provider: pcre-8.42-6.el8.x86_64
  dependency: rtld(GNU_HASH)
   provider: glibc-2.28-228.el8.i686
   provider: glibc-2.28-228.el8.x86_64
  dependency: systemd
   provider: systemd-239-76.el8.i686
   provider: systemd-239-76.el8.x86_64
posted @   墨香清梦  阅读(671)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示