dnf包管理器(简介)

dnf包管理器(简介)

  一直在使用Ubuntu,已经好久没有用Fedora了。这次重新装了一次,竟然发现yum不能使用了,新的包管理器dnf已经替代了yum。具体怎么样还不知道,先试着使用基本的几项功能。

几个和yum类似的命令

# dnf list
# dnf list installed
# dnf list available
# dnf search nano
# dnf provides /bin/bash
# dnf info nano

安装软件包

# dnf install nano
# dnf reinstall nano

升级软件包

# dnf update systemd

检查更新

# dnf check-update

升级所有系统软件包

# dnf update # dnf upgrade

卸载软件包

# dnf remove nano 或 # dnf erase nano
# dnf autoremove
# dnf clean all

帮助

# dnf help clean
# dnf help

历史

# dnf history

# dnf grouplist

# dnf groupinstall 'xxx'

# dnf groupupdate 'xxx'

# dnf groupremove

更新软件包到最新的稳定发行版

# dnf distro-sync

回滚某个特定软件的版本

# dnf downgrade vim
<think>我们正在讨论Fedora中的DNF包管理器的module功能。根据提供的引用,虽然引用中没有直接提到module功能,但我们可以结合DNF的一般知识和Fedora中的实际情况来回答。 在Fedora中,DNF的模块(module)功能是用于管理不同版本的软件流(streams)。模块允许你在同一个系统中安装同一个软件包的多个版本,并且可以轻松地在它们之间切换。这对于需要特定版本软件的环境(如开发环境)特别有用。 模块通常包含以下概念: - 模块流(streams):一个模块可以有多个流,每个流代表软件的一个主要版本。 - 配置文件(profiles):一个模块流可以有多个配置文件,每个配置文件定义了安装该模块流时应该安装的软件包集合。 ### 使用方法 #### 1. 列出可用模块 ```bash dnf module list ``` 或者列出特定模块的信息: ```bash dnf module list <module_name> ``` #### 2. 启用一个模块流 要启用某个模块的特定流(例如,启用postgresql模块的12流): ```bash dnf module enable postgresql:12 ``` #### 3. 安装模块 安装一个模块的特定流和配置文件(如果不指定配置文件,则使用默认配置文件): ```bash dnf module install postgresql:12 ``` 或者指定配置文件: ```bash dnf module install postgresql:12/server ``` #### 4. 查看模块信息 ```bash dnf module info postgresql ``` 或者查看特定流的信息: ```bash dnf module info postgresql:12 ``` #### 5. 切换模块流 如果你已经安装了一个模块的某个流,想要切换到另一个流,可以执行: ```bash dnf module switch-to postgresql:13 ``` #### 6. 禁用模块 禁用模块会使得该模块的软件包不再被DNF作为更新候选,也不会在安装时被默认选择。 ```bash dnf module disable postgresql ``` #### 7. 重置模块 将模块重置为初始状态(即没有启用任何流): ```bash dnf module reset postgresql ``` ### 示例 假设我们需要安装PostgreSQL 12,我们可以这样做: ```bash # 列出所有postgresql模块 dnf module list postgresql # 启用postgresql:12流 dnf module enable postgresql:12 # 安装postgresql模块(使用默认配置文件) dnf module install postgresql:12 # 或者,如果我们想要安装服务器配置文件 dnf module install postgresql:12/server ``` ### 注意事项 - 模块功能在Fedora中是从Fedora 28开始引入的,并且随着DNF版本的更新而不断改进。 - 使用模块时,注意模块流之间的冲突,确保系统的一致性。 通过使用模块,我们可以更灵活地管理软件包的不同版本,满足不同的开发或部署需求。 §§相关问题§§ 1. DNF模块和传统的软件管理有什么区别? 2. 如何创建一个自定义的DNF模块? 3. 在Fedora中,有哪些常见的模块可以使用? 4. 如何处理模块之间的依赖冲突?</think>### Fedora DNF 包管理器的 Module 功能详解 #### **Module 的作用** DNF 的模块(Module)功能是 Fedora 引入的**高级软件管理机制**,主要解决以下问题: 1. **多版本共存**:允许同一软件(如 Python、Node.js、PostgreSQL)的多个主要版本并行安装,避免冲突[^1]。 2. **环境隔离**:为不同项目提供独立的依赖环境(类似虚拟环境),例如开发工具链的版本隔离。 3. **简化复杂软件栈**:将关联软件包(如 LAMP 堆栈)打包为统一模块,实现一键部署[^2]。 4. **生命周期管理**:对模块化的软件流(Stream)提供独立的生命周期支持(如长期支持版 vs 最新版)。 #### **核心概念** - **模块流(Module Stream)**:同一软件的不同版本分支(如 `nodejs:18` 和 `nodejs:20`)。 - **配置文件(Profile)**:模块的预定义安装方案(如 `server` 基础服务版或 `development` 开发工具版)[^3]。 --- #### **使用方法** ##### 1. **查看可用模块** ```bash dnf module list # 过滤特定模块(如 PHP) dnf module list php ``` 输出示例: ``` php 8.1 [d] common [d] PHP 8.1 php 8.2 common PHP 8.2 ``` > `[d]` 表示默认版本和配置文件。 ##### 2. **启用模块流** ```bash # 启用非默认版本(如 PHP 8.2) dnf module enable php:8.2 ``` ##### 3. **安装模块** ```bash # 安装默认配置 dnf module install nodejs:20 # 指定配置文件(如开发版) dnf module install postgresql:15/server ``` ##### 4. **查看模块详情** ```bash dnf module info postgresql ``` 输出包含: - 可用流(Streams):`15`, `16` - 配置文件(Profiles):`server`, `client`, `devel` - 依赖关系 ##### 5. **重置模块状态** ```bash # 恢复模块到初始状态(禁用自定义选择) dnf module reset postgresql ``` ##### 6. **禁用模块** ```bash dnf module disable python39 ``` --- #### **典型应用场景** 1. **开发环境切换**: ```bash # 为项目 A 使用 Python 3.9 dnf module install python39 # 为项目 B 切换 Python 3.11 dnf module install python311 ``` 2. **部署服务栈**: ```bash # 一键安装 LEMP 堆栈(Nginx + MySQL + PHP) dnf module install nginx:mainline mysql:8.0 php:8.2 ``` 3. **安全更新管理**: ```bash # 仅更新特定模块 dnf update --enablerepo=updates-modular postgresql ``` --- #### **注意事项** - **冲突处理**:启用新模块流时会自动禁用冲突的旧流。 - **依赖解析**:模块化软件包的依赖会被隔离,不影响系统其他组件[^2]。 - **仓库支持**:需确保 `fedora-modular` 和 `updates-modular` 仓库已启用(默认开启)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值