当前位置:首页 > 操作系统 > Linux

RHEL之(五)Red Hat Linux 安装和更新软件包

安装和更新软件包

  一、订阅

  订阅是指 Red Hat Enterprise Linux的官方服务订阅,提供专门的软件仓库和企业支撑,因为是收费业务,这里不展开说。

 

  二、DNF

TipsRHEL8中,还能用命令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文件

  接着再使用命令mountISO文件进行挂载。

  命令 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:安装新的应用流版本

 

原文:https://www.cnblogs.com/zylSec/p/14672643.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐