DNF是基于RPM的下一代软件包管理器,于Fedora 18中首次引入,并在Fedora 22版本中取代了yum命令。本文将介绍如何使用DNF进行软件包管理。
1 常用的dnf命令
1.下载软件包
使用dnf下载软件包,输入以下命令:
dnf download package_name
如果需要同时下载未安装的依赖,加上--resolve,命令如下:
dnf download --resolve package_name
2.安装软件包
dnf install <package>
3.列出已安装软件包
使用以下命令查询通过dnf
命令安装的软件包:
dnf list installed
4.列出所有可用的dnf软件仓库
使用以下命令打印可用的dnf软件仓库:
dnf repolist
5.列出所有启用和不启用的软件仓库
使用以下命令列出启用和不启用的软件仓库:
dnf repolist all
6.查找文件由哪个软件包提供
使用以下命令查看哪个软件包提供了指定的文件,比如:
dnf provides /bin/bash
7.查看软件包详细信息
使用以下命令查看某个软件包的详细信息,比如:
dnf info package_name
8.删除/卸载软件
删除或卸载软件,比如软件名是nano,命令如下:
dnf remove nano
9.获取指定的dnf命令帮助
如果需要获取dnf某个指定动作的使用帮助,比如clean,可以执行以下命令获取相关信息:
dnf help clean
10.检查 DNF 版本:
dnf --version
以上是DNF命令的一些基本使用方法,RHEL和CentOS 8默认采用dnf工具管理软件包,而旧的发行版默认采用yum管理软件。DNF的目标是改善YUM的缺陷,在性能、内存使用、解析依赖关系、速度和许多其他方面都有提升。
2 换源,设置dnf / yum镜像
CentOS 8 默认是会读取 centos.org 的 mirrorlist 的,所以一般来说是不需要配置镜像的。如果你的网络访问 mirrorlist 有问题,才需要另外配置。相关镜像配置,请参考各镜像站的相关帮助。
以下是一些常用的镜像源:
- 阿里云:http://mirrors.aliyun.com/
- 清华大学:https://mirrors.tuna.tsinghua.edu.cn/
- 中国科技大学:http://mirrors.ustc.edu.cn/
- 华为云:https://mirrors.huaweicloud.com/
阿里云镜像
以下是在阿里云上更改 CentOS 8 镜像源的方法:
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-8.repo
sed -i -e '/mirrors.cloud.aliyuncs.com/d' -e '/mirrors.aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
需要注意的是,这里下载的 CentOS-Base.repo
文件中附带了 AppStream
等其他源地址,而 CentOS 8 原版是分拆为多个文件分别管理的。阿里云还新增了 PowerTools
、centosplus
等仓储地址,并将本地 GPG key 路径改为了网络地址 https://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-Official
。
你也可以自行修改,以保持原有的 repo 文件结构:
# `sed` 的 `-i.bak` 参数会自动备份所替换的文件,可放心使用。
# 出现问题可通过 `rename -- .bak '' *.bak` 进行批量还原
sudo sed -i.bak \
-e 's|^mirrorlist=|#mirrorlist=|' \
-e 's|^#baseurl=|baseurl=|' \
-e 's|http://mirror.centos.org|https://mirrors.aliyun.com|' \
/etc/yum.repos.d/CentOS-*.repo