CentOS8 dnf module更换软件流

 admin   2022-04-18 14:38   200 人阅读  0 条评论


CentOS 8的 dnf 新增了的一个moduler 功能,中文译意的意思是模块流(大致如下),该功能主要用于切换不同版本的软件,其主要用于快速替换升级当前使用软件版本。
Fedora AppStream
Fedora AppStream

如果用过Windows 下的phpMyStudy 应该会知道,里面有一个一键切换PHP版本的功能,CentOS 8 中的dnf module 也是用于实现类似功能的,例如切换php、nginx、nodejx等软件版本的,后续CentOS8还会推出更多module的(这些module大部分集中在 AppStream软件库中)。
同时已经有部分第三方软件库支持该功能了,例如,remi 这个第三方源(repo下载:CentOS8 yum/dnf 配置

)

其实在平时使用的时候其实就已经使用了moduler功能了,只是有的时候会被忽略而已。
dnf install php
dnf install php
dnf Moduler 使用

基础使用方法

dnf [OPTIONS] module [COMMAND] [MODULE-SPEC]

OPTIONS:
   详情查询 dnf(8) 的 man 帮助文档

COMMAND:
   enable    启用模块
   info      查询模块信息
   remove    卸载模块
   provides  查询模块的提供软件库信息
   list      查询模块的详细信息
   update    更新模块
   install   安装模块
   reset     重置模块
   disable   禁用模块

MODULE-SPEC:
   Name[:Stream[/Profiles]]    模块名称[:流[/配置]]

查询有哪些模块流

查询指定软件的模块流,输入命令dnf module list php就可以看到指定软件提供的所有模块流了。
dnf module list php
dnf module list php

CentOS AppStream - 8表示一个软件库(repo)中包含的模块流,每一行代表一个模块流。
一共有4列,分别是 Name(名称),Stream(模块流),Profiles(配置),Summary(简介)。
其中Profiles列中的[d]标志着,在未指定配置时,将默认将使用此配置。
而Stream列中[d]标志着,在未指定模块流时,将默认使用该软件流。

查询所有软件流
如果想要查询所有软件流,可以不输入软件名称,直接输入命令dnf module list,如下:
dnf module list
dnf module list
安装指定的模块流

如果想要安装指定模块流的软件可以直接使用命令dnf module install php:7.2,如下:
dnf module install php:7.2
dnf module install php:7.2

当然没如果只是想要启用指定模块流而不想要安装软件,可以使用此命令dnf module enable php:7.3/common。
注意,由上面的查询我们可以看见,php7.3没有指定任何默认选项,所以这里的 MODULE-SPEC 需要写全。
dnf module enable php:7.3/common
dnf module enable php:7.3/common
更换指定的模块流

dnf同时支持升级和降级两种更换模块流的方法,下面将演示这两种的使用方法:
升级模块流

   首先需要重置模块流,注意不用卸载先前安装的软件!!

dnf module reset php
dnf module reset php

   直接安装更高版本的PHP即可(这里使用的时remi软件库),如果有冲突,那么dnf会自动将其升级未对应版本的模块流。
   这样就完成了模块流的升级

dnf module install php:remi-7.4/common
dnf module install php:remi-7.4/common

降级模块流

   与升级相同,先完成模块流的重置操作

dnf module reset php
dnf module reset php

   安装低版本的模块流,同样的,dnf检测到软件冲突,自动完成软件的降级任务。

dnf module install php:7.2/common
dnf module install php:7.2/common
更换模块流后的使用

在更换模块流之后,就可以安装平时使用的方法使用dnf安装软件了,可以不用管模块流之间冲突等问题了,这些都将由dnf自动完成处理。
例如在启用php:remi-7.4/common模块流之后(注意未安装),可以直接安装php了,将会自动使用指定模块流的版本安装软件,如下图。
dnf module enable php:remi-7.4/common
dnf module enable php:remi-7.4/common


本文地址:https://liuchunjie.top/?id=330
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?