目錄
1. 什么是RPM?
2. dnf是什么,它和rpm有什么聯系和區別?
3. RHEL 中如何做才能啟用對第三方存儲庫的支持?
4. 怎么理解RHEL9中的應用流(Application Streams)和模塊(Modules)?
5. RHEL9 有兩個必要的軟件存儲庫,分別是什么,它們的主要區別是什么?
1. 什么是RPM?
RPM(Red Hat Package Manager)最早是由 Red Hat 開發的一個軟件包管理工具,現在已經是很多 Linux 發行版的標準,比如 RHEL, CentOS, Fedora, openSUSE 等。RPM不僅是一種軟件包格式,還是一個軟件包管理工具集,負責安裝、卸載、查詢和校驗 .rpm 包,但不處理依賴;日常推薦配合 dnf
使用。
RPM 軟件包文件名由四個元素組成:name-version-release.architecture
- Name 是描述軟件名。
- Version 是原始軟件版本號。
- Release 是基于該版本的軟件包的發行版號,由軟件打包商設置,不一 定是原始軟件開發商。
- Arch 是編譯的軟件包的處理器架構。noarch表示不限定架構。
2. dnf是什么,它和rpm有什么聯系和區別?
DNF(Dandified YUM)取代了 YUM,作為 RHEL9 中的軟件包管理器。 DNF 命令在功能上與 YUM 命令相同。出于兼容性考慮,YUM 命令依然 作為 DNF 的符號鏈接而存在。
DNF 在軟件包管理時能夠自動解決依賴關系。DNF 安裝包,本質上最后還是調用 RPM 完成包安裝。但 DNF 會在安裝前自動查找需要的依賴,從倉庫下載,省去你手動搞依賴的麻煩。
3. RHEL 中如何做才能啟用對第三方存儲庫的支持?
要啟用對第三方倉庫的支持,可在 /etc/yum.repos.d/ 目錄中創建一個文件。倉庫配置文件必須以 .repo 擴展名結尾。文件描述一個倉庫的基本信息,包括:
- 倉庫名稱name。
- baseurl(服務器地址)
- gpgcheck = 1/0,開啟/禁止檢查GPG簽名。
- enabled = 1/0,啟用/禁用狀態
4. 怎么理解RHEL9中的應用流(Application Streams)和模塊(Modules)?
在傳統的 RHEL 系統里,一個軟件包只有一個版本,統一維護,穩定但不靈活。所以,為了兼顧穩定性+靈活性,從 RHEL8 開始,Red Hat 引入了:?Application Streams(應用流)和?Modules(模塊化軟件包)。
Application Streams 就是:在官方系統倉庫中,同時提供多個版本的軟件,用戶可以自由選擇要用哪個版本。不同應用流版本并行存在,互不沖突,由用戶/管理員選擇、啟用。
Module 是 Application Stream 的實現機制。簡單說:模塊是打包成組的軟件集合,可以一次性管理安裝/更新/啟用/禁用。每個模塊可以有:多個流(不同版本)、各自的生命周期和維護政策。
想用哪個版本,就先 enable
哪個 模塊流(dnf module enable命令),再 install
安裝它。
5. RHEL9 有兩個必要的軟件存儲庫,分別是什么,它們的主要區別是什么?
RHEL 9 通過兩個主要的軟件倉庫分發內容,分別為 BaseOS 和 AppStream。
BaseOS:以 RPM 軟件包的形式為 RHEL 提供核心操作系統內容。 BaseOS 組件的生命周期與 RHEL 發行版中的內容相同 。特點是:穩定性極高,很少變動,主要是系統自己運行所必需的軟件。保證系統基礎架構長期穩定,只做安全補丁和重要修復,幾乎不添加新特性。
Application Stream:提供具有不同生命周期的內容,作為模塊和傳統 RPM 軟件包。模塊描述了屬于一個整體的一組 RPM 軟件包。模塊可以包含多個流,使多個版本的應用可供安裝。啟用模塊流后,系統能夠訪問該模塊流中的 RPM 軟件包。特點是:支持多版本并存,用戶可以選擇不同版本,更新頻率比 BaseOS 高,跟著應用需求走。給用戶靈活選擇更合適的軟件版本,平衡系統穩定性和應用層創新。