yum已被dnf替代

Yum group install 错误

$ sudo yum groupinstall "Server with GUI"
Last metadata expiration check: 0:00:04 ago on Mon 30 Nov 2020 10:23:37 AM CST.
Warning: Group 'Server' does not exist.
Warning: Group 'with' does not exist.
Warning: Group 'GUI' does not exist.
Error: Nothing to do.

原因是目前比较新的Linux 发行版yum已经被dnf替代。
vim /usr/bin/yum 查看

#!/usr/bin/bash

args="$@"
append='Package(s) download url:'
for i in "$@"
do
  case $i in
    "--listurl-only")
      args=`echo "$@" | sed 's/install/download/; s/--listurl-only/--urls/; s/--enableplugin=listdownloadpkgurl//'`
            result=`dnf $args`
      if [[ $result = *"http"* ]];then
        echo "$result" | awk '{if(!match($0, "http")){print $0}}'
        echo $append
        echo "$result" | awk '{if(match($0, "http")){n=split($0,a,"/");sub(/.rpm/,"",a[n]);printf "  %s %s\n", a[n],$0}}'
        exit 0
      else
        exit 1
      fi
      ;;
    "makecache")
      args=`echo "$@" | sed 's/fast//'`
      ;;
    "--downloadonly")
      args="$args -y"
      ;;
  esac
done
dnf $args

确实是dnf的包装, 在对带空格的group安装字符串处理有误,导致无法安装。

正确的的做法, 直接用dnf安装

$ sudo dnf groupinstall "Server with GUI"

安装成功。

<think>好的,用户想了解yumdnfdnf5之间的区别,特别是作为包管理器的功能差异。我需要先回忆一下这三个工具的背景和发展历程。 首先,yum是Red Hat系列Linux发行版中长期使用的包管理器,基于RPM包管理,处理依赖关系。但用户提到参考内容里说yum逐渐被dnf取代。dnf作为yum的下一代版本,解决了性能问题,比如依赖解析更快,内存占用更低,还有更好的错误处理,比如某个仓库可用时会跳过而是中止。这点在引用[3]里提到过。然后dnf5是最新的版本,可能进一步优化了性能和功能。 接下来需要对比三者的特性。用户可能需要知道它们的历史背景、依赖解析方式、性能、功能特性、兼容性等。比如yum使用Python,而dnf用了hawkey库(C语言),dnf5可能进一步改进。功能上,dnf5可能有更快的速度、更简洁的输出,或者更好的模块支持。 还要注意用户提供的引用内容,比如引用[2]提到CentOS7安装dnf可能有问题,说明版本兼容性,可能dnf在旧系统上支持有限,而dnf5可能只在新系统中出现。另外,引用[3]指出dnf跳过可用仓库,而yum会停止,这也是区别点。 需要整理出结构清晰的对比,可能分点说明每个工具的特点,然后总结差异表格。同时生成相关问题,比如如何迁移,优缺点,适用场景等。确保回答符合用户要求的中文,正确使用LaTeX格式,比如版本号用$...$包裹,比如$dnf5$。</think>### YumDNFDNF5的区别与特性对比 #### 1. **Yum** - **背景**:Yum(Yellowdog Updater Modified)是Red Hat系列Linux发行版(如CentOS、Fedora)的**传统包管理器**,基于RPM包格式,主要用于解决软件包依赖关系[^1]。 - **特性**: - 依赖解析使用Python实现,性能较低,尤其在复杂依赖场景下可能较慢。 - 若配置的软件仓库(repo)可用,Yum会直接中止操作[^3]。 - 命令语法简单,例如安装软件包:`yum install <package>`[^1]。 - **局限性**:内存占用高,依赖解析效率低,逐渐被DNF取代。 #### 2. **DNF** - **背景**:DNF(Dandified Yum)是Yum的**增强替代品**,从Fedora 22开始成为默认包管理器,CentOS 8及更高版本也转向DNF。 - **核心改进**: - **依赖解析**:使用C语言库`hawkey`,显著提升解析速度和内存效率。 - **健壮性**:若某个仓库可用,DNF会跳过并继续操作,而非直接终止。 - **兼容性**:完全兼容Yum命令,例如`dnf install <package>`与`yum install <package>`功能相同。 - **事务回滚**:支持更完善的事务回滚机制,安装失败时能更好地恢复系统状态。 - **新增功能**:支持模块化(Modularity),允许同一软件包的多版本共存。 #### 3. **DNF5** - **背景**:DNF5是DNF的**下一代重构版本**,目标是进一步优化性能与代码可维护性,目前处于逐步推广阶段(如Fedora 40计划默认启用)。 - **关键特性**: - **性能提升**:依赖解析和事务处理速度更快,内存占用更低。 - **简化输出**:终端输出更简洁,默认隐藏冗余信息(可通过`-v`启用详细模式)。 - **统一命令**:整合了`dnf`、`yum-config-manager`等工具的功能,命令集更统一。 - **API改进**:提供更稳定的编程接口,便于第三方工具集成。 --- ### 对比表格 | 特性 | Yum | DNF | DNF5 | |---------------------|------------------|-------------------|-------------------| | **依赖解析引擎** | Python | C(hawkey库) | 优化的C++实现 | | **内存占用** | 较高 | 较低 | 更低 | | **仓库故障处理** | 中止操作 | 跳过并继续[^3] | 同DNF | | **模块化支持** | 无 | 有 | 增强支持 | | **默认启用系统** | CentOS 7及以下 | CentOS 8/Fedora 22| Fedora 40+ | | **事务回滚能力** | 基础支持 | 完善支持 | 优化支持 | --- ### 使用场景建议 - **Yum**:仅需在CentOS 7等旧系统维护时使用[^2]。 - **DNF**:适用于CentOS 8+、Fedora等现代系统,平衡功能与稳定性。 - **DNF5**:追求最新特性或开发环境时可尝试,但生产环境建议等待全面稳定。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值