安裝和更新軟件包
一、訂閱
訂閱是指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:安裝新的應用流版本