6

Infrastructure 知识: dnf对module的处理 - yahoon

 2 years ago
source link: https://www.cnblogs.com/yahoon/p/16195431.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Infrastructure 知识: dnf对module的处理

从RHEL8/CentOS8开始,dnf取代yum作为rpm 包管理工具。与之而来的还有模块(module)这个东西。 有了它们的加持,让在同一个OS上安装不同版本的软件或者开发语言的工作比之前容易多了。

Modules are special package groups usually representing an application, a language runtime, or a set of tools. They are available in one or multiple streams which usually represent a major version of a piece of software, giving you an option to choose what versions of packages you want to consume.

To simplify installation, modules usually define one or more installation profiles that represent a specific use case. For example a server or a client profile in a database module.

也就是说:

一个软件可以有多个版本,每个版本对应一个stream. 在每个stream内部,又分为proile对应到安装场景(比如开发, server, client)。

实际dnf使用中的要点

如果module有多个stream(版本),会有一个是默认的, 在dnf命令输出里面在stream name后用[d]表示

如果某个stream有多个profiles, 会有一个默认的,在dnf命令输出里面在profile name后用[d]表示

Module install

    $ dnf module install NAME
    $ dnf module install NAME:STREAM
    $ dnf module install NAME/PROFILE
    $ dnf module install NAME:STREAM/PROFILE

下面以nginx举例

$ sudo dnf module list nginx
Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
Name                     Stream                      Profiles                      Summary                          
nginx                    1.14 [d]                    common [d]                    nginx webserver                  
nginx                    1.16                        common [d]                    nginx webserver                  
nginx                    1.18                        common [d]                    nginx webserver                  
nginx                    1.20                        common [d]                    nginx webserver                  

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

解读output:

nginx module 有4个stream(对应4个版本),默认安装的是1.14,1.14这个stream只有一个profile “common”, 它也是默认安装的profile

例子: 查看已经安装的module

$ dnf module list --installed
Name      Stream       Profiles                                   Summary                                                       
nodejs    14 [e]       common [d] [i], development, minimal, s2i  Javascript runtime                                            
python39  3.9 [d][e]   build, common [d] [i]                      Python programming language, version 3.9                      

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

dnf module list --installed 显示已经安装的module

查看输出 nodejs这一行表示:

14 [e]: 表示14这个版本(stream)已经启用了,用[e]表示. 这里[e]就肯定说明已经安装了

common [d] [i], development, minimal, s2i : 共4个profiles: common, devleopment, mininal, s2i。 其中common 是默认的Profile,用[d]表示,而且它已经安装在本机了,用[i]表示

查看输出 python39这一行表示:

3.9 [d] [3]: 3.9这个版本(stream)是这个module的缺省版本,用[d]表示;而且是已经启用了,用[e]表示。 这里[e]就肯定说明已经安装了

Refer

https://docs.fedoraproject.org/en-US/modularity/using-modules/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK