当前位置: 首页 > news >正文

【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 高,跟着应用需求走。给用户灵活选择更合适的软件版本,平衡系统稳定性和应用层创新。

相关文章:

  • deepseek对IBM MQ SSL 证书算法的建议与解答
  • 自动驾驶L4级技术落地:特斯拉、Waymo与华为的路线之争
  • [三分钟]web自动化测试(三):selenium自动化测试常用函数(下)
  • 突破JVM边界:类加载三重门与栈帧的生存法则
  • x-cmd install | Orbiton:极简至上的终端文本编辑器与轻量级 IDE
  • wps批注线条怎么取消去掉wps批注后有竖线
  • idea启动springboot方式及web调用
  • 数据库基础与核心操作:从概念到实战的全面解析
  • Linux进程7-signal信号处理方式验证、可重入函数举例、信号集函数验证、信号集阻塞验证
  • Github两种鉴权模式PAT与SSH
  • 【Shell 脚本入门】轻松上手的实战指南
  • DIFY教程第三弹:构建一个智能生成图片的Agent
  • 【OSG学习笔记】Day 13: 事件处理——响应键盘与鼠标
  • 高压直流输电MATLAB/simulink仿真模型+说明文档
  • UDP协议详解+代码演示
  • Nginx支持HTTP2/HTTP3的并用CURL测试
  • 微信小程序连续多个特殊字符自动换行解决方法
  • 在 Ubuntu 24.04 LTS 一台机子上同时部署Dify 1.3.1 和 RAGflow 0.18.0
  • 系统架构-软件可靠性
  • 如何删除此电脑上的迅雷下载、WPS云盘、百度网盘
  • 全国电影工作会:聚焦扩大电影国际交流合作,提升全球影响力
  • 一张老照片里蕴含的上海文脉
  • 《九龙城寨之围城》斩获香港金像奖九项大奖,包括最佳影片
  • 我国已形成完整人工智能产业体系,专利申请量位居全球首位
  • 王文涛会见德国汽车工业协会主席穆勒
  • VR数字沉浸体验又添新节目,泰坦尼克号驶进文旅元宇宙