RHCE8学习过程(八)Centos8软件包的管理与安装

Centos8软件包的管理与安装

  • 八、Centos8软件包的管理与安装
    • 8.1、软件包的管理
      • 8.1.1 rpm软件包的管理
        • rpm 包的获取方式
        • rpm 包格式的说明
      • 8.1.2 安装 rpm 软件
      • 8.1.3 rpm 查询功能
      • 8.1.4 查看软件包内容是否被修改
      • 8.1.5 rpm 包卸载和升级
      • 8.1.6 解决 rpm 依赖关系
    • 8.2、YUM 的使用
      • 8.2.1 配置 yum 源
        • 1、挂载镜像:
        • 2、本地配置 yum 源文件:
        • 3、网络 yum 源
      • 8.2.2 yum 使用
      • 8.2.3 yum 安装开发工具软件包组
    • 8.3、CentOS8 中使用 DNF 管理软件包

八、Centos8软件包的管理与安装

8.1、软件包的管理

软件包的类型
rpm 二进制包------》已经使用 GCC 编译后的
tar 源码包-----》需要编译
RPM 概述:RPM 是 RPM Package Manager(RPM 软件包管理器)的缩写,这一文件格式名称虽然打上了 RedHat 的标志,但是其原始设计理念是开放式的,现在包括 OpenLinux、SUSE 以及 TurboLinux 等 Linux 的分发版本都有采用,可以算是公认的行业标准了。

8.1.1 rpm软件包的管理

rpm 包的获取方式

1、Centos 系统镜像光盘
2、网站 rpmfind.net
3、比如安装 mysql、nginx 软件,我们可以去它的官方网站下载:
http://nginx.org/en/download.html
4、centos yum 源上,也有 rpm 可以手动下载

rpm 包格式的说明
[root@Hengji ~]# mount /dev/cdrom /mnt/
mount: /mnt: WARNING: device write-protected, mounted read-only.
[root@Hengji ~]# ls /mnt/BaseOS/Packages/zsh-5.5.1-6.el8_1.2.x86_64.rpm 
/mnt/BaseOS/Packages/zsh-5.5.1-6.el8_1.2.x86_64.rpm

zsh **********-5. ***********5. **********1- *******************6. *********************el8. **************x86_64.rpm
软件名 、 主版本号 、 次版本号 、 修订 、 release(第几次发布版本) 、 操作系统版本 、 软件包是 64 位包

#修订指的是第几次修改 bug。 发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动。

[root@Hengji ~]# ls /mnt/BaseOS/Packages/atlas-3.10.3-7.el8.i686.rpm 
/mnt/BaseOS/Packages/atlas-3.10.3-7.el8.i686.rpm

.i686代表,此包是32位操作系统包。
64位操作系统是可以安装 32 位操作系统的包。 32位,安装不了64位的包。
在 centso7 开始,就没有 32 位操作系统

[root@Hengji ~]# ls /mnt/AppStream/Packages/zsh-html-5.5.1-6.el8_1.2.noarch.rpm 
/mnt/AppStream/Packages/zsh-html-5.5.1-6.el8_1.2.noarch.rpm

结尾有 noarch,代表此包在32位和64位操作系统上都可以运行。这类型包,里面通常是文本文件,如:shell脚本,html,txt等。

[root@Hengji ~]# uname -r   #查看内核版本
4.18.0-193.14.2.el8_2.x86_64

内核版本是 4.18.0-193.el8,有 x86_64 就是 64 位操作系统

8.1.2 安装 rpm 软件

RPM 工具使用分为安装、查询、验证、更新、删除等操作
命令格式:rpm [参数] 软件包
参数:
-i:是 install 的意思, 安装软件包
-v:显示附加信息,提供更多详细信息
-V:校验,对已经安装的软件进行校验
-h:–hash 安装时输出####标记

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

从本地安装

[root@Hengji ~]# rpm -ivh /mnt/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm 
#本地安装 lrzsz 包,安装后可以使用 rz 和 sz 命令。

8.1.3 rpm 查询功能

用法:rpm -q(query) 与下面参数组合使用
-a(all) 查询所有已安装的软件包
-f(file) 系统文件名(查询系统文件所属哪个软件包),反向查询
-i 显示已经安装的 rpm 软件包信息,后面直接跟包名
-l(list) 查询软件包中文件安装的位置
-p 查询未安装软件包的相关信息,后面要跟软件的命名
-R 查询软件包的依赖性

例:

[root@Hengji ~]# rpm -q lrzsz    #查询指定的包是否安装
lrzsz-0.12.20-43.el8.x86_64
[root@Hengji ~]# rpm -qa         #查询所有已安装包
jbig2dec-libs-0.14-4.el8_2.x86_64
mesa-libEGL-19.3.4-2.el8.x86_64
...
...
sssd-nfs-idmap-2.2.3-20.el8.x86_64
libieee1284-0.2.11-28.el8.x86_64

例:查看 passwd 文件中包括 bash 的行

[root@Hengji ~]# grep bash /etc/passwd      #grep 后面加关键字,可以查找文件中的内容。
root:x:0:0:root:/root:/bin/bash
hengji:x:1000:1000:Hengji:/home/hengji:/bin/bash

[root@Hengji ~]# rpm -qa | grep lrzsz       #查询所有已安装包中带 vim 关键字的包
lrzsz-0.12.20-43.el8.x86_64
[root@Hengji ~]# which find                 #查看 find 命令的路径
/usr/bin/find
[root@Hengji ~]# rpm -qf /usr/bin/find         #查询文件或命令属于哪个安装包
findutils-4.6.0-20.el8.x86_64

查询已经安装的 rpm 包的详细信息或作用 rpm -qi rpm 包名

[root@Hengji ~]# rpm -qi lrzsz
Name        : lrzsz
Version     : 0.12.20
Release     : 43.el8
Architecture: x86_64
Install Date: 2020年09月15日 星期二 18时10分28秒
Group       : Applications/Communications
Size        : 194342
License     : GPLv2+
Signature   : RSA/SHA256, 2019年07月02日 星期二 07时59分37秒, Key ID 05b555b38483c65d
Source RPM  : lrzsz-0.12.20-43.el8.src.rpm
Build Date  : 2019年05月11日 星期六 22时54分52秒
Build Host  : x86-02.mbox.centos.org
Relocations : (not relocatable)
Packager    : CentOS Buildsys 
Vendor      : CentOS
URL         : http://www.ohse.de/uwe/software/lrzsz.html
Summary     : The lrz and lsz modem communications programs
Description :
Lrzsz (consisting of lrz and lsz) is a cosmetically modified
zmodem/ymodem/xmodem package built from the public-domain version of
the rzsz package. Lrzsz was created to provide a working GNU
copylefted Zmodem solution for Linux systems.

针对没有安装的 RPM 包,要加参数: -p

[root@Hengji ~]# rpm -qpi /mnt/AppStream/Packages/php-mysqlnd-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm 
警告:/mnt/AppStream/Packages/php-mysqlnd-7.2.24-1.module_el8.2.0+313+b04d0a66.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
...
Summary     : A module for PHP applications that use MySQL databases     
#php 使用 mysql 数据库的一个模块

[root@Hengji ~]# rpm -qpl /mnt/AppStream/Packages/nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm 
警告:/mnt/AppStream/Packages/nginx-1.14.1-9.module_el8.0.0+184+e34fea82.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
/etc/logrotate.d/nginx
/etc/nginx/fastcgi.conf
...
#查看 rpm 安装后,将生成哪些文件

8.1.4 查看软件包内容是否被修改

rpm -V 包名
rpm -Vf 文件路径
例:

[root@Hengji ~]# which find
/usr/bin/find  
[root@Hengji ~]# rpm -qf /usr/bin/find
findutils-4.6.0-20.el8.x86_64

上面两条命令,等价于以下面这条命令:

[root@Hengji ~]# rpm -qf `which find`
findutils-4.6.0-20.el8.x86_64

这是反引号。 一行命令中,如果有反引号,那么先执行反引号中的命令,把反引号中的命令的输出,作为前面命令输入。

[root@Hengji ~]# rpm -Vf /usr/bin/find          #参数-Vf 后面加文件的路径,查看每个命令或文件,有没有被修改
[root@Hengji ~]# echo aaa >> /usr/bin/find
[root@Hengji ~]# rpm -Vf /usr/bin/find
S.5....T.    /usr/bin/find
[root@Hengji ~]# rpm -V findutils               #检查包
S.5....T.    /usr/bin/find

注:如果出现的是点,表示测试这一项,没有被修改
出现下面的字符代表某测试的失败:
5 — MD5 校验和是否改变,你也看成文件内容是否改变
S — 文件长度,大小是否改变
L — 符号链接,文件路径是否改变
T — 文件修改日期是否改变
D — 设备
U — 用户,文件的属主
G — 用户组
M — 模式 (包含许可和文件类型)
? — 不可读文件

再后面的 c 文件名,它表示的是文件类型
c 配置文件
d 普通文件
g 不该出现的文件,意思就是这个文件不该被这个包所包含
l 授权文件(license file)
r 描述文件

[root@Hengji ~]# rpm -V lrzsz     # -V 后面加软件包的名字,查看这个包安装的所有文件,没有被修改。

查看系统中所有的 rpm 包及安装的文件有没有被黑客修改

[root@Hengji ~]# rpm -Va > rpm_check.txt

注: 检验时参考了 /var/lib/rpm 目录下的 rpm 数据库信息

8.1.5 rpm 包卸载和升级

用法:rpm -e(erase) 包名

[root@Hengji ~]# rpm -q lrzsz 
lrzsz-0.12.20-43.el8.x86_64
[root@Hengji ~]# rpm -e lrzsz  #卸载
[root@Hengji ~]# rpm -q lrzsz  #已经找不到 lrzsz 包了,说明卸载成功了
未安装软件包 lrzsz 

–nodeps 忽略依赖,建议在卸载时不要用 rpm 去卸载有依赖关系的包,应该用 yum

[root@Hengji ~]# rpm -e --nodeps lrzsz 
错误:未安装软件包 lrzsz 

rpm 包升级:
centos8 下安装

[root@Hengji ~]# rpm -Uvh /mnt/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm
警告:/mnt/BaseOS/Packages/lrzsz-0.12.20-43.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:lrzsz-0.12.20-43.el8             ################################# [100%]

centos7 下安装

[root@Hengji ~]# rpm -Uvh /mnt/Packages/lrzsz-0.12.20-36.el7.x86_64.rpm

8.1.6 解决 rpm 依赖关系

[root@Hengji ~]# rpm -ivh /mnt/AppStream/Packages/httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64.rpm 
警告:/mnt/AppStream/Packages/httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
错误:依赖检测失败:
	libapr-1.so.0()(64bit) 被 httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64 需要
	libaprutil-1.so.0()(64bit) 被 httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64 需要

报错:我们需要把依赖包安装上,才可以。

[root@Hengji ~]# rpm -ivh /mnt/AppStream/Packages/apr-1.6.3-9.el8.x86_64.rpm 
警告:/mnt/AppStream/Packages/apr-1.6.3-9.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:apr-1.6.3-9.el8                  ################################# [100%]
[root@Hengji ~]# rpm -ivh /mnt/AppStream/Packages/apr-util-1.6.1-6.el8.x86_64.rpm 
警告:/mnt/AppStream/Packages/apr-util-1.6.1-6.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:apr-util-1.6.1-6.el8             ################################# [100%]
[root@Hengji ~]# rpm -ivh /mnt/AppStream/Packages/httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64.rpm 
警告:/mnt/AppStream/Packages/httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying...                          ################################# [100%]
准备中...                          ################################# [100%]
正在升级/安装...
   1:httpd-tools-2.4.37-21.module_el8.################################# [100%]

8.2、YUM 的使用

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

8.2.1 配置 yum 源

1、挂载镜像:

先确定虚拟机光驱中有加载系统镜像
RHCE8学习过程(八)Centos8软件包的管理与安装_第1张图片

[root@Hengji ~]# mount /dev/cdrom /mnt/
mount: /mnt: /dev/sr0 already mounted on /run/media/root/CentOS-8-2-2004-x86_64-dvd.
[root@Hengji ~]# ls /mnt/
AppStream  BaseOS  EFI  images  isolinux  media.repo  TRANS.TBL
2、本地配置 yum 源文件:

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

[root@Hengji ~]# 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

#centos8 与之前版本不同的是增加了一个 CentOS-AppStream.repo 文件,CentOS-AppStream.repo 和 CentOS-Base.repo 文件都需要移除目录或者改名。
BaseOS:类似于 centos7 中的 Base 软件仓库,主要提供了 OS 系统的基础组建,提供的是 RPM 形式的包,因为都是 RPM 包形式所以它支持与之前版本兼容(support terms similar)。
AppStream:它提供的是系统以外的应用程序,如 httpd,nginx,php,mariadb-server 等

(1)首先挂载光盘:

[root@Hengji ~]# mount /dev/sr0 /mnt/
mount: /mnt: /dev/sr0 already mounted on /run/media/root/CentOS-8-2-2004-x86_64-dvd.

(2)创建一个本地 yum 配置文件 centos8.repo:

[root@Hengji ~]# vim /etc/yum.repos.d/centos8.repo    #写入以下内容

[c8-media-BaseOS]
name=CentOS-BaseOS-$releasever - Media
baseurl=file:///mnt/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial
 
[c8-media-AppStream]
name=CentOS-AppStream-$releasever - Media
baseurl=file:///mnt/AppStream
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial

添加修改完两个区域后保存退出。
如果 gpgcheck=1 ,需要导入 rpm 公钥。方便后期校对 rpm 包。一般情况,写为 0. 工作就写成 1 并导入公钥。这样安全。

[root@Hengji ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial 

(3)移动网络 yum 源配置文件位置:

[root@Hengji ~]# mv /etc/yum.repos.d/C* /opt            #将网络 yum 配置文件移动到任意位置,使其不被 yum 所识别
[root@Hengji ~]# yum list                 #在 centos8 版本当中可以继续使用 yum 命令进行安装包管理
CentOS-BaseOS-8 - Media                                                  41 MB/s | 2.2 MB     00:00    
CentOS-AppStream-8 - Media                                               29 MB/s | 5.7 MB     00:00 
...
...
[root@Hengji ~]# ll /usr/bin/yum 
lrwxrwxrwx. 1 root root 5 7月  22 02:46 /usr/bin/yum -> dnf-3

我们执行的 yum 命令是一个软连接,它被链接到了 dnf-3 命令上。
使用 DNF 来管理软件包,提升了包括用户体验,内存占用,依赖分析,运行速度等多方面内容。

3、网络 yum 源

Centos8 使用阿里网络源:

[root@Hengji ~]# wget -O /etc/yum.repos.d/CentOS-8.repo  http://mirrors.aliyun.com/repo/Centos-8.repo
--2020-09-15 18:52:00--  http://mirrors.aliyun.com/repo/Centos-8.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 115.238.192.242, 115.238.192.243, 115.223.16.239, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|115.238.192.242|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2595 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-8.repo”

/etc/yum.repos.d/CentOS-8 100%[=====================================>]   2.53K  --.-KB/s  用时 0.008s  

2020-09-15 18:52:00 (313 KB/s) - 已保存 “/etc/yum.repos.d/CentOS-8.repo” [2595/2595])

[root@Hengji ~]# rpm --import https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official           #导入阿里的公钥

例:安装 centos epel 扩展 yum 源。
注:epel 源是对 centos 系统中自带的 base 源的扩展。

[root@Hengji ~]# yum install epel-release -y
CentOS-8 - Base - mirrors.aliyun.com                                    191 kB/s | 2.2 MB     00:11    
CentOS-8 - Extras - mirrors.aliyun.com                                  4.0 kB/s | 7.9 kB     00:01    
CentOS-8 - AppStream - mirrors.aliyun.com                               445 kB/s | 5.8 MB     00:13    
...
...
已安装:
  epel-release-8-8.el8.noarch                                                                           

完毕!
[root@Hengji ~]# ls /etc/yum.repos.d/epel.repo        #这就是安装的 epel 源
/etc/yum.repos.d/epel.repo

8.2.2 yum 使用

yum 常用操作:

[root@Hengji ~]# yum install -y httpd                  #安装软件包, -y 直接安装
Extra Packages for Enterprise Linux Modular 8 - x86_64                  202 kB/s | 117 kB     00:00    
Extra Packages for Enterprise Linux 8 - x86_64                          1.5 MB/s | 8.0 MB     00:05    
...         
...
完毕!

[root@Hengji ~]# yum update                     #升级软件包,改变软件设置和系统设置,系统版本内核都升级
上次元数据过期检查:0:00:19 前,执行于 2020年09月15日 星期二 18时55分37秒。
依赖关系解决。
无需任何处理。
完毕!

[root@Hengji ~]# yum upgrade                 #升级软件包,不改变软件设置和系统设置,系统版本升级,内核不改变。工作中推荐使用这种升级方式。
上次元数据过期检查:0:00:47 前,执行于 2020年09月15日 星期二 18时55分37秒。
依赖关系解决。
无需任何处理。
完毕!

[root@Hengji ~]# yum info httpd             #查询 rpm 包作用 
上次元数据过期检查:0:00:59 前,执行于 2020年09月15日 星期二 18时55分37秒。
已安装的软件包
名称         : httpd
版本         : 2.4.37
发布         : 21.module_el8.2.0+382+15b0afa8
架构         : x86_64
大小         : 4.9 M
源           : httpd-2.4.37-21.module_el8.2.0+382+15b0afa8.src.rpm
仓库         : @System
来自仓库     : AppStream
概况         : Apache HTTP Server
URL          : https://httpd.apache.org/
协议         : ASL 2.0
描述         : The Apache HTTP Server is a powerful, efficient, and extensible
             : web server.

[root@Hengji ~]# yum provides /usr/bin/find           #查看命令是哪个软件包安装的  发现 find 命令是 findutils 包中的文件
上次元数据过期检查:0:01:20 前,执行于 2020年09月15日 星期二 18时55分37秒。
findutils-1:4.6.0-20.el8.x86_64 : The GNU versions of find utilities (find and xargs)
仓库        :@System
匹配来源:
文件名    :/usr/bin/find

findutils-1:4.6.0-20.el8.x86_64 : The GNU versions of find utilities (find and xargs)
仓库        :base
匹配来源:
文件名    :/usr/bin/find

findutils-1:4.6.0-20.el8.x86_64 : The GNU versions of find utilities (find and xargs)
仓库        :c8-media-BaseOS
匹配来源:
文件名    :/usr/bin/find
[root@Hengji ~]# yum -y remove httpd-tools.x86_64            #卸载包
依赖关系解决。

已移除:
  centos-logos-httpd-80.5-2.el8.noarch                                                                  
  httpd-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64                                                    
  httpd-filesystem-2.4.37-21.module_el8.2.0+382+15b0afa8.noarch                                         
  httpd-tools-2.4.37-21.module_el8.2.0+382+15b0afa8.x86_64                                              
  mod_http2-1.11.3-3.module_el8.2.0+307+4d18d695.x86_64                                                 

完毕!

[root@Hengji ~]# yum search httpd        #查找包括 httpd 字符的软件包
上次元数据过期检查:0:04:14 前,执行于 2020年09月15日 星期二 18时55分37秒。
========================================= 名称 精准匹配:httpd =========================================
httpd.x86_64 : Apache HTTP Server
======================================= 名称 和 概况 匹配:httpd =======================================
lighttpd-filesystem.noarch : The basic directory layout for lighttpd
...
=========================================== 名称 匹配:httpd ===========================================
lighttpd.x86_64 : Lightning fast webserver with light system requirements
...
=========================================== 概况 匹配:httpd ===========================================
mod_dav_svn.x86_64 : Apache httpd module for Subversion server
mod_auth_mellon.x86_64 : A SAML 2.0 authentication module for the Apache Httpd Server

yum 报错,注意的几个小问题:
1、确定光盘是否链接,光盘是否挂载
2、配置文件中格式是否正确,字母,符号有没有少写,挂载点和配置文件中设置的是否一致
3、网络源需要联网,操作和 RPM 类似,只是会自动安装依赖项

8.2.3 yum 安装开发工具软件包组

[root@Hengji ~]# yum grouplist       #查看有哪些软件包组
上次元数据过期检查:0:37:39 前,执行于 2020年09月17日 星期四 09时19分23秒。
可用环境组:
   服务器
   最小安装
   工作站
   KDE Plasma 工作区
   定制操作系统
   虚拟化主机
已安装的环境组:
   带 GUI 的服务器
已安装组:
   容器管理
   开发工具
   无头系统管理
可用组:
   传统 UNIX 兼容性
   .NET 核心开发
   图形管理工具
   网络服务器
   RPM 开发工具
   科学记数法支持
   安全性工具
   智能卡支持
   系统工具
   Fedora Packager
   Xfce

语法:yum groupinstall GROUPNAME
yum grouplist #显示中文,如果想变成英文,则执行以一下命令

[root@Hengji ~]# echo $LANG
zh_CN.UTF-8
[root@Hengji ~]# LANG=en_US.UTF-8
[root@Hengji ~]# yum grouplist
Last metadata expiration check: 0:39:42 ago on Thu 17 Sep 2020 09:19:23 AM CST.
Available Environment Groups:
   Server
   Minimal Install
   Workstation
   KDE Plasma Workspaces
   Custom Operating System
   Virtualization Host
Installed Environment Groups:
   Server with GUI
Installed Groups:
   Container Management
   Development Tools
   Headless Management
Available Groups:
   Legacy UNIX Compatibility
   .NET Core Development
   Graphical Administration Tools
   Network Servers
   RPM Development Tools
   Scientific Support
   Security Tools
   Smart Card Support
   System Tools
   Fedora Packager
   Xfce

测试:
当你最小化安装系统后,在源码编译安装软件包时,觉得很需要安装很多依赖包,很痛苦,可以先安装好这个 Development tools 开发工具软件包组。

[root@Hengji ~]# yum groupinstall 'Development tools'       #安装开发工具软件包组。

8.3、CentOS8 中使用 DNF 管理软件包

DNF:Dandified YUM,是基于 RPM 的 Linux 发行版的软件包管理器。它用于在 Fedora / RHEL/ CentOS 操作系统中安装,更新和删除软件包。 它是 Fedora 22,CentOS8 和 RHEL8 的默认软件包管理器。 DNF 是 YUM 的下一代版本,并打算在基于 RPM 的系统中替代 YUM。 DNF 功能强大且具有健壮的特征。DNF 使维护软件包组变得容易,并且能够自动解决依赖性问题。

注:目前 DNF 命令和 YUM 命令相互兼容,软件包仓库依旧使用 YUM 仓库。

已安装软件包

[root@Hengji ~]# dnf list installed
Installed Packages
...
...
zstd.x86_64                            1.4.2-2.el8                           @AppStream

查找软件包

[root@Hengji ~]# dnf search httpd

安装软件包

[root@Hengji ~]# dnf install httpd -y

卸载软件包

[root@Hengji ~]# dnf remove httpd -y

下载软件包

[root@Hengji ~]# dnf download httpd

查看软件包信息

[root@Hengji ~]# dnf info httpd

检查系统中可更新软件包

[root@Hengji ~]# dnf check-update

更新所有软件包

[root@Hengji ~]# dnf update
或者
[root@Hengji ~]# dnf upgrade

更新指定软件包

[root@Hengji ~]# dnf update httpd

列出软件包组

[root@Hengji ~]# dnf grouplist

安装软件包组

[root@Hengji ~]# dnf groupinstall '开发工具'

更新软件包组

[root@Hengji ~]# dnf groupupdate '开发工具'

清空所有缓存
在使用 DNF 的过程中,会因为各种原因在系统中残留各种过时的文件和未完成的编译工程。我们可以使用该命令来删除这些没用的垃圾文件。并且软件仓库中的软件包依赖也会被清空,再次安装软件时则重新下载软件包依赖信息。

[root@Hengji ~]# dnf clean all
[root@Hengji ~]# yum clean all

重新创建新的软件包依赖关系

[root@Hengji ~]# dnf makecache
或者直接
[root@Hengji ~]# yum makecache
或者
[root@Hengji ~]# yum clean all
[root@Hengji ~]# yum list             #当清空后, 列出软件列表时,会自动创建新的软件包依赖关系

你可能感兴趣的:(Linux/RHCE,linux,centos)