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 <bugs@centos.org>
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、挂载镜像:

先确定虚拟机光驱中有加载系统镜像

[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/findfindutils-1:4.6.0-20.el8.x86_64 : The GNU versions of find utilities (find and xargs)
仓库        :base
匹配来源:
文件名    :/usr/bin/findfindutils-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 PackagerXfce

语法: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:ServerMinimal InstallWorkstationKDE Plasma WorkspacesCustom Operating SystemVirtualization Host
Installed Environment Groups:Server with GUI
Installed Groups:Container ManagementDevelopment ToolsHeadless Management
Available Groups:Legacy UNIX Compatibility.NET Core DevelopmentGraphical Administration ToolsNetwork ServersRPM Development ToolsScientific SupportSecurity ToolsSmart Card SupportSystem ToolsFedora PackagerXfce

测试:
当你最小化安装系统后,在源码编译安装软件包时,觉得很需要安装很多依赖包,很痛苦,可以先安装好这个 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             #当清空后, 列出软件列表时,会自动创建新的软件包依赖关系

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

  1. linux零基础学习教程: Centos8软件包的管理与安装

    本人从事IT行业已有十多年,有着丰富的实战经验,总结了大量的学习方法,更是积累了很多的学习资料,很高兴能在这里跟大家交流学习,希望能在这里跟大家共同进步和成长! 全套学习资料移步至公众号[学神来啦]更 ...

  2. MacBook软件包的管理器-Homebrew常用命令

    Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装.卸载.更新.查看.搜索等很多实用的功能.简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷.是一款 ...

  3. centos8 配置 dns_管理Linux不想用命令行?可以试试Webmin!最新CentOS8上体验一下

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 在本教程中,我们将介绍如何在CentOS8或者RHEL ...

  4. Linux系统软件包的管理

    虽然使用源码编译安装可以具有提高速度个性化的定制等优点,但对于 Linux发行商来说,则不容易管理软件包,毕竟不是每个人都会进行源码编译的,如果能够将软件预先在相同的硬体与系统上面编译好在发布的话,不 ...

  5. linux rmp命令安装包在哪里_rpm命令_Linux rpm 命令用法详解:RPM软件包的管理工具...

    rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM ...

  6. Linux系统软件包的管理   3月30日课程

    Linux系统软件包的管理 一. rpm工具 rpm Redhat Package Manager, 设计理念是开放的,不仅仅是在RedHat平台上,在SUSE上也是可以使用的. rpm包名字构成由- ...

  7. Linux 软件包管理器的目的是什么,Linux软件包的管理--RPM包管理器

    在Linux中如何安装.升级.卸载软件,是我们日常运维中重要的组成部分.接下来一CentOS6系统为例,讲解如何使用 RPM 包管理器,yum包管理器以及源码的方式来管理我们的软件包. 一.相关的背景 ...

  8. 配置软件仓库和软件包的管理 (Linux)

    配置软件仓库和管理软件包 一.软件仓库的搭建 1. 建立阿里云仓库 2. 本地软件仓库的搭建 3. 配置网络软件仓库并自动挂载 4. 配置第三方软件仓库 二.软件包的管理 1. 软件包的类型 2. 软 ...

  9. 八. 项目的立项管理

    @(项目经理考试学习笔记) 八. 项目的立项管理 1. 项目的立项过程 2. 可行性研究 2.1 内容和步骤 2.2 初步可研 2.3 项目建议书(立项申请) 2.4 详细可研 2.4.1 依据和原则 ...

最新文章

  1. 9-分析事物问题并编写 Utils 文件
  2. OpenSwitch操作系统成为Linux基金会官方项目
  3. linux可以打开浏览器嘛,Linux下怎样可以打开浏览器
  4. 系统架构设计师考试4
  5. python如何确定拐点_python – 在样条拟合1d数据中找到拐点
  6. 终止中台乱象 《2021年中国中台市场研究报告》隆重发布
  7. 农村70后、80后、90后的儿时玩具有哪些?
  8. 园子装修 | 打造自己的直男审美博客园(施工中,持续更新)
  9. WebServices SOAP简单介绍
  10. Python中for循环之range、enumerate函数
  11. win10安装mvn,安装ojdbc7.jar
  12. selenium-python中文文档
  13. C++:动态规划DP;
  14. 流媒体相关资源下载地址(整理)
  15. 行星介绍html页面布局,css3 html5实现太阳系行星公转动画实例
  16. python编写简易木马程序_python简易木马编写
  17. 村医计算机在线考试答案,资讯详情-村医去卫生院换电脑,却被“威胁”停业整顿?-医德帮诊所生态服务平台-为基层诊所赋能...
  18. cesium 绘制轨迹
  19. 短时傅里叶变换(STFT)实例
  20. SIM300拨号上网与GPRS连接

热门文章

  1. HDU 1002 A+BII大数
  2. 喝脱脂牛奶容易长青春痘
  3. Java 输出单双引号问题
  4. 小寒也会写程序(五)
  5. 【四足机器人】学习笔记 欧拉角与旋转矩阵之间的转化关系
  6. 又爆作弊丑闻?AAAI 2023审稿人被作者找上门,才发现rebuttal阶段审稿人互相可见...
  7. 确定位数的C语言程序设计,c语言程序设计
  8. 关于时间time_t和tm的介绍(很详细)
  9. 如何从iCloud共享iWork文档
  10. Call From xxx/127.0.1.1 to xxx:9000 failed on connection拒绝连接部分解决办法