隨着linux系統愈來愈龐大,軟件包也愈來愈多,愈來愈複雜。在RHEL8中引入了一種新的結構來管理軟件內容,全部的軟件內容被劃分紅了兩個repository:BaseOS 和AppStreamlinux
相似於原來的軟件倉庫,主要提供了OS系統的基礎組建,提供的是RPM形式的包,由於都是RPM包形式因此它支持與以前版本兼容(support terms similar)ide
這是一個特殊類型的倉庫,它提供的是額外的用戶空間的應用,運行時語言等,它提供了兩種形式的內容:第一種是RPM形式的獨立的軟件包,第二種是Modules形式的包集合,它是一系列用於同時構建,測試,發佈的包的集合,即將相關的包組合在一塊兒。測試
Modules是表明着一組一般一塊兒安裝的RPM包,一個典型的modules包含應用,依賴庫,文檔庫,幫助組件等。code
如何劃分RPM包爲一個集合呢?有兩種組織RPM包的方式:
1.按照version組織:
modules streams表明一組組件的版本,能夠視爲實際repository經過過濾器構成的虛擬repository,streams有active和inactive兩種狀態,streams之間也能夠有依賴關係。
2.按purpose組織:
modules profiles表明爲了某個功能須要一塊兒安裝的包列表,module streams中能夠包含多個profiles。rem
一些RHEL的包管理命令文檔
$ yum search "package"
$ yum info package
$ yum module list
$ yum list available
$ yum module provides package
$ yum module enable module-name
$ yum module enable module-name:stream
$ yum install @module-name $ yum module install module-name
$ yum remove package
$ yum module remove module-name
$ yum module reset module-name
$ yum module disable module-name