RHEL8的软件仓库

随着linux系统越来越庞大,软件包也越来越多,越来越复杂。在RHEL8中引入了一种新的结构来管理软件内容,所有的软件内容被划分成了两个repository:BaseOS 和AppStream

BaseOS

类似于原来的软件仓库,主要提供了OS系统的基础组建,提供的是RPM形式的包,因为都是RPM包形式所以它支持与之前版本兼容(support terms similar)

AppStream

这是一个特殊类型的仓库,它提供的是额外的用户空间的应用,运行时语言等,它提供了两种形式的内容:第一种是RPM形式的独立的软件包,第二种是Modules形式的包集合,它是一系列用于同时构建,测试,发布的包的集合,即将相关的包组合在一起。

模块(modules)

Modules是代表着一组通常一起安装的RPM包,一个典型的modules包含应用,依赖库,文档库,帮助组件等。

如何划分RPM包为一个集合呢?有两种组织RPM包的方式:
1.按照version组织:
modules streams代表一组组件的版本,可以视为实际repository通过过滤器构成的虚拟repository,streams有active和inactive两种状态,streams之间也可以有依赖关系。
2.按purpose组织:
modules profiles代表为了某个功能需要一起安装的包列表,module streams中可以包含多个profiles。

包管理

一些RHEL的包管理命令

  • 查找包
$ yum search "package"
  • 查看包信息
$ yum info package
  • 列出可用的module streams
$ yum module list
  • 列出可用的包
$ yum list available
  • 找出哪些module提供了包
$ yum module provides package
  • 启用一个module
$ yum module enable module-name
  • 启用一个module使用指定的stream
$ yum module enable module-name:stream
  • 使用默认的stream和profiles安装一个module
$ yum install @module-name
$ yum module install module-name
  • 删除包
$ yum remove package
  • 删除module stream profiles
$ yum module remove module-name
  • 重置module streams
$ yum module reset module-name
  • 禁用module
$ yum module disable module-name

hhhan
13 声望1 粉丝