安装和更新软件包
一、订阅
订阅是指Red Hat Enterprise Linux的官方服务订阅,提供专门的软件仓库和企业支撑,因为是收费业务,这里不展开说。
二、DNF
Tips:在RHEL8中,还能用命令yum的,但目前逐渐被dnf取代使用。
DNF:RHEL中安装包管理工具
1、怎样才能获取RPM包
(1)订阅:通过购买订阅就会有RPM包
(2)ISO文件:安装RHEL8系统的ISO文件就包含了6330个RPM包
(3)对于CentOS系统,我们熟知的开源镜像站上就有RPM包提供 (对RHEL同样适用)
清华大学开源镜像站:https://mirrors.tuna.tsinghua.edu.cn/
阿里巴巴开源镜像站:https://developer.aliyun.com/mirror/
网易开源镜像站:https://mirrors.163.com/
2、如何从ISO文件中拿取所需的RPM包
(1)首先需要挂载ISO文件,才能读取到RPM包
把一个ISO文件,或者分区关联到一个目录上,你访问这个目录,就相当于访问ISO文件的内容或者分区的内容。
Tips:前提需要系统已经导入该ISO文件
接着再使用命令mount对ISO文件进行挂载。
命令 mount /dev/sr0 /mnt/sr0/ (/mnt/sr0/需要提前创建)
挂载后的文件夹内容如上所示
Tips:RHEL8之前所有的RPM在ISO文件中的/Packages目录下
RPM(Red Hat Package Manager)简述
3、如何安装RPM包
以下给出两种方式:
3-1、方式一:rpm包管理工具
缺点:rpm的包与包之间存在依赖关系: 就是A→B,在A包安装之前必须要先把B包装好;
rpm这种安装包工具不提供依赖解决方案,就是你必须手工一个一个安装。
优点:虽然RPM这个工具无法解决包与包之间的依赖关系,但用在查询或单包更新上还是有一定优势。
(1)查询所有已安装的包:rpm -qa | grep 安装包关键字
(2)安装包提供的软件或目录:rpm -ql 安装包关键字 | more
安装包的概念:一个包就是各种各样的文件以及目录的集合,然后安装就是把这个包所提供的文件以及目录放到对应的路径下面去!
(3) 查看安装包配置文件:rpm -qc 安装包关键字
(4)查询安装包的文档说明:rpm -qd 安装包关键字
(5) 查看软件包的安装信息:rpm -qi 安装包关键字
(6)查询具体文件的安装包提供者:rpm -qf 文件名
(7)查看安装包的脚本:rpm -q --scripts 安装包关键字
(8)RPM包导入红帽公钥,进行完整性验证(GPG):
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-*
(9)安装RPM包:rpm -ivh 包名 / 更新RPM包:rpm -Uvh 包名
(10)删除安装包:rpm -e 安装包关键字
3-2、dnf(yum)
与rpm不同的是,dnf(yum)能很好的解决了软件包与包之间的依赖关系,其原理如下:
(1)rpm包与包之间的依赖的关系
repodata目录内的文件存放的就是包与包之间的依赖关系。
(2)如何读取到这个依赖关系?搭建一个软件仓库。
软件仓库文件格式:
Tips:连接地址可以是本地文件(file:///),远程文件(http://和ftp://)
File:/// --> 第三个杠代表本地的根目录
还需注意BaseOS和AppStream的大小写
在软件仓库的baseurl是来自于一个远程地址的链接时(如北京大学开源软件镜像站),则需要的连接地址为能够同时找到Packages和repodata两个目录的那个目录!(也就是其上一级目录)
示例:
(3)搭建软件仓库后,如何应用?
A、使用命令dnf clean all / dnf makecache / dnf repolist
dnf clean all:清理软件仓库缓存(不常用)。有时候更新出问题或者换一条软件源,可以把缓存清理一下,重新下载。
dnf makecache:更新软件仓库缓存(不常用)。在用 update 或 install 时,系统会智能判断是否需要刷新缓存。因此不用经常使用。
dnf repolist /dnf repolist all:列出软件源/列出软件源(详细)。
B、使用命令dnf install/remove/search/update 安装/删除/搜索/更新
安装软件:dnf install -y 安装包关键字
......
更新软件:dnf update -y 安装包关键字
卸载软件:dnf remove -y 安装包关键字
......
C、列出软件仓库信息
列出软件仓库的所有安装包:dnf list | more
查看安装包信息:dnf info 安装包关键字
D、查找安装包信息
查找安装包:dnf search 安装包关键字
查找文件对应的安装包提供者:dnf whatprovides 文件名
E、查看操作历史记录:dnf history
你还可以对你做的dnf命令进行逆操作:dnf history undo History_ID
如上可知,history ID为8的是卸载httpd服务,逆操作即为安装httpd服务了
F、组安装:dnf groupinstall -y 组关键字
Tips:单个安装和组安装的区别:
dnf install :安装单个软件,以及这个软件的依赖关系。
dnf groupinstall :安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系。
举例说明:
当想要安装虚拟化平台服务时,用dnf install 或dnf groupinstall都可以实现安装Virtualization Host
当使用组安装时,系统不仅安装了Virtualization Host这部分,还安装了相对应的组件和工具,如Base,Core,Virtualization Tools等等,而如果只使用单个安装,系统则只安装了Virtualization Host这部分的软件。
4、AppStream(应用流)——RHEL8 新特性
(1)模块:包含了很多个安装包(完成这个功能)
(2)应用流:就是在RHEL8针对一个模块存在多个版本,你可以选择安装其中的某一个版本。利用模块安装,我们可以启用或者禁用某个模块(简单来讲:就是可以选择安装的软件版本)
(3)设置安装的软件版本
A.查看模块列表:dnf module list perl 以查看perl的模块列表为例子
Tips: [d]efault, [e]nabled, [x]disabled, [i]nstalled
B、重设模块:dnf module reset perl
C、启用需要的版本:dnf module enable perl:5.24
D、禁用不需要的版本:dnf module disable perl:5.26
E、模块化安装:dnf module install perl
Tips:模块化安装步骤
Step 1:卸载已经安装的版本
Step 2:重置应用流
Step 3:设置新的应用流
Step 4:安装新的应用流版本