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源
挂载镜像
[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 前,执行于 2023年07月24日 星期一 12时24分47秒。
已安装的软件包
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 前,执行于 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
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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤