【Linux】第十二章 安裝和更新軟件包

目錄

1. 什么是RPM?

2. dnf是什么,它和rpm有什么聯系和區別?

3. RHEL 中如何做才能啟用對第三方存儲庫的支持?

4. 怎么理解RHEL9中的應用流(Application Streams)和模塊(Modules)?

5. RHEL9 有兩個必要的軟件存儲庫,分別是什么,它們的主要區別是什么?


1. 什么是RPM?

RPMRed 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 高,跟著應用需求走。給用戶靈活選擇更合適的軟件版本,平衡系統穩定性和應用層創新。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/78589.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/78589.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/78589.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

新時代下的存儲過程開發實踐與優化

隨著現代應用系統的復雜度不斷增加,數據庫作為核心的數據存儲和處理引擎,其性能和可靠性顯得尤為重要。存儲過程(Stored Procedure)作為一種封裝在數據庫中的應用邏輯,使得開發者能夠在數據庫層面實現數據操作、數據校…

從梯度消失到百層網絡:ResNet 是如何改變深度學習成為經典的?

自AlexNet贏得2012年ImageNet競賽以來,每個新的獲勝架構通常都會增加更多層數以降低錯誤率。一段時間內,增加層數確實有效,但隨著網絡深度的增加,深度學習中一個常見的問題——梯度消失或梯度爆炸開始出現。 梯度消失問題會導致梯…

JVM——引入

什么是JVM?它與JDK、JRE的關系? JVM、JRE 和 JDK 是 Java 平臺的三個核心組件,各自承擔著不同的職責,它們之間的關系密不可分。理解它們的區別和聯系有助于更好地開發、部署和運行 Java 應用程序。對于 Java 開發者來說&#xff…

PyCharm 2023升級2024 版本

windows下把老版本卸載之后,需要把環境變量,注冊表信息刪除。 并且把C:\Users\用戶\AppData 文件夾下的 Local\JetBrains和Roaming\JetBrains 都刪除,再重新安裝 原舊項目升級的方式: 1.2023虛擬機的文件夾是venv 改為.venv…

從外賣大戰看O2O新趨勢:上門私廚平臺系統架構設計解析

京東高調進軍外賣市場,美團全力防守,兩大巨頭的競爭讓整個行業風起云涌。但在這場外賣大戰之外,一個更具潛力的細分市場正在悄然興起——上門私廚服務。 與標準化外賣不同,上門私廚提供的是個性化定制服務。廚師帶著新鮮食材上門現…

驅動開發系列53 - 一個OpenGL應用程序是如何調用到驅動廠商GL庫的

一:概述 一個 OpenGL 應用程序調用 GPU 驅動的過程,主要是通過動態鏈接庫(libGL.so)來完成的。本文從上到下梳理一下整個調用鏈,包含 GLVND、Mesa 或廠商驅動之間的關系。 二:調用關系 1. 首先一個 OpenGL 應用程序(比如游戲或圖形渲染軟件)在運行時會調用 OpenGL 提供…

springboot3 聲明式 HTTP 接口

1 介紹 在 Spring 6 和 Spring Boot 3 中,我們可以使用 Java 接口來定義聲明式的遠程 HTTP 服務。這種方法受到 Feign 等流行 HTTP 客戶端庫的啟發,與在 Spring Data 中定義 Repository 的方法類似。 聲明式 HTTP 接口包括用于 HTTP exchange 的注解方法…

多級緩存架構設計與實踐經驗

多級緩存架構設計與實踐經驗 在互聯網大廠Java求職者的面試中,經常會被問到關于多級緩存的架構設計和實踐經驗。本文通過一個故事場景來展示這些問題的實際解決方案。 第一輪提問 面試官:馬架構,歡迎來到我們公司的面試現場。請問您對多級…

Mac「brew」快速安裝Redis

安裝Redis 步驟 1:安裝 Redis 打開終端(Terminal)。 運行以下命令安裝 Redis: brew install redis步驟 2:啟動 Redis 安裝完成后,可以使用以下命令啟動 Redis 服務: brew services start redis…

文獻閱讀(一)植物應對干旱的生理學反應 | The physiology of plant responses to drought

分享一篇Science上的綜述文章,主要探討了植物應對干旱的生理機制,強調通過調控激素信號提升植物耐旱性、保障糧食安全的重要性。 摘要 干旱每年致使農作物產量的損失,比所有病原體造成損失的總和還要多。為適應土壤中的濕度梯度變化&#x…

if consteval

if consteval 是 C23 引入的新特性,該特性是關于immediate function 的,即consteval function。用于在編譯時檢查當前是否處于 立即函數上下文(即常量求值環境),并根據結果選擇執行不同的代碼路徑。它是對 std::is_con…

MANIPTRANS:通過殘差學習實現高效的靈巧雙手操作遷移

25年3月來自北京通用 AI 國家重點實驗室、清華大學和北大的論文“ManipTrans: Efficient Dexterous Bimanual Manipulation Transfer via Residual Learning”。 人手在交互中起著核心作用,推動著靈巧機器人操作研究的不斷深入。數據驅動的具身智能算法需要精確、大…

Field訪問對象int字段,對象訪問int字段,通過openjdk17 C++源碼看對象字段訪問原理

在Java反射機制中,訪問對象的int類型字段值(如field.getInt(object))的底層實現涉及JVM對內存偏移量的計算與直接內存訪問。本文通過分析OpenJDK 17源碼,揭示這一過程的核心實現邏輯。 一、字段偏移量計算 1. Java層初始化偏移量…

Java查詢數據庫表信息導出Word

參考: POI生成Word多級標題格式_poi設置word標題-CSDN博客 1.概述 使用jdbc查詢數據庫把表信息導出為word文檔, 導出為word時需要下載word模板文件。 已實現數據庫: KingbaseES, 實現代碼: 點擊跳轉 2.效果圖 2.1.生成word內容 所有數據庫合并 數據庫不合并 2.2.生成文件…

Qt中的全局函數講解集合(全)

在頭文件<QtGlobal>中包含了Qt的全局函數&#xff0c;現在就這些全局函數一一詳解。 1.qAbs 原型&#xff1a; template <typename T> T qAbs(const T &t)一個用于計算絕對值的函數。它可以用于計算各種數值類型的絕對值&#xff0c;包括整數、浮點數等 示…

AI與IT協同的典型案例

簡介 本篇代碼示例展示了IT從業者如何與AI協同工作&#xff0c;發揮各自優勢。這些案例均來自2025年的最新企業實踐&#xff0c;涵蓋了不同IT崗位的應用場景。 一、GitHub Copilot生成代碼框架 開發工程師AI協作示例&#xff1a;利用GitHub Copilot生成代碼框架&#xff0c;…

三網通電玩城平臺系統結構與源碼工程詳解(二):Node.js 服務端核心邏輯實現

本篇文章將聚焦服務端游戲邏輯實現&#xff0c;以 Node.js Socket.io 作為主要通信與邏輯處理框架&#xff0c;展開用戶登錄驗證、房間分配、子游戲調度與事件廣播機制的剖析&#xff0c;并附上多個核心代碼段。 一、服務端文件結構概覽 /server/├── index.js …

【prompt是什么?有哪些技巧?】

Prompt&#xff08;提示詞&#xff09;是什么&#xff1f; Prompt 是用戶輸入給AI模型&#xff08;如ChatGPT、GPT-4等&#xff09;的指令或問題&#xff0c;用于引導模型生成符合預期的回答。它的質量直接影響AI的輸出效果。 Prompt 的核心技巧 1. 明確目標&#xff08;Clar…

堆和二叉樹--數據結構初階(3)(C/C++)

文章目錄 前言理論部分堆的模擬實現:(這里舉的大根堆)堆的創建二叉樹的遍歷二叉樹的一些其他功能實現 作業部分 前言 這期的話講解的是堆和二叉樹的理論部分和習題部分 理論部分 二叉樹的幾個性質:1.對于任意一個二叉樹&#xff0c;度為0的節點比度為2的節點多一個 2.對于完全…

Dockerfile講解與示例匯總

容器化技術已經成為應用開發和部署的標準方式,而Docker作為其中的佼佼者,以其輕量、高效、可移植的特性,深受開發者和運維人員的喜愛。本文將從實用角度出發,分享各類常用服務的Docker部署腳本與最佳實踐,希望能幫助各位在容器化之路上少走彎路。 無論你是剛接觸Docker的…