dnf包管理器常见用法
DNF包管理器简介
DNF
包用法与yum
高度相似,有一些不相同的常用命令,提供了不一样的功能.
参考: https://www.linuxcool.com/dnf
DNF配置文件
DNF 的主要配置文件是 /etc/dnf/dnf.conf
,该文件包含两部分:
- “
main
”部分保存着 DNF 的全局设置。 - “
repository
”部分保存着软件源的设置,可以有一个或多个“repository
”。
另外,在/etc/yum.repos.d
目录中保存着一个或多个 repo 源相关文件,它们也可以定义不同的“repository
”。
所以 RHEL8
软件源的配置一般有两种方式:
- 一种是直接配置
/etc/dnf/dnf.conf
文件中的“repository
”部分, - 另外一种是在
/etc/yum.repos.d
目录下增加.repo
文件。
配置main部分
/etc/dnf/dnf.conf
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
表 1 main 参数说明
参数 | 说明 |
---|---|
cachedir | 缓存目录,该目录用于存储 RPM 包和数据库文件。 |
keepcache | 可选值是 1 和 0,表示是否要缓存已安装成功的那些 RPM 包及头文件,默认值为 0,即不缓存。 |
debuglevel | 设置 dnf 生成的 debug 信息。取值范围:[0-10],数值越大会输出越详细的 debug 信息。默认值为 2,设置为 0 表示不输出 debug 信息。 |
clean_requirements_on_remove | 删除在 dnf remove 期间不再使用的依赖项,如果软件包是通过 DNF 安装的,而不是通过显式用户请求安装的,则只能通过 clean_requirements_on_remove 删除软件包,即它是作为依赖项引入的。 默认值为 True。 |
best | 升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装。默认值为 True。 |
obsoletes | 可选值 1 和 0,设置是否允许更新陈旧的 RPM 包。默认值为 1,表示允许更新。 |
gpgcheck | 可选值 1 和 0,设置是否进行 gpg 校验。默认值为 1,表示需要进行校验。 |
plugins | 可选值 1 和 0,表示启用或禁用 dnf 插件。默认值为 1,表示启用 dnf 插件。 |
installonly_limit | 设置可以同时安装“installonlypkgs”指令列出包的数量。默认值为 3,不建议降低此值。 |
配置 repository 部分
repository
部分允许您定义定制化的 RHEL8
软件源仓库,各个仓库的名称不能相同,否则会引起冲突。配置 repository
部分有两种方式:
- 一种是直接配置
/etc/dnf/dnf.conf
文件中的“repository
”部分, - 另外一种是在
/etc/yum.repos.d
目录下增加.repo
文件。
[repository]
name=repository_name
baseurl=repository_url
选项说明: repository
参数说明
参数 | 说明 |
---|---|
name = repository_name | 软件仓库(repository )描述的字符串。 |
baseurl = repository_url | 软件仓库(repository )的地址。 - 使用 http 协议的网络位置:例如 http://path/to/repo - 使用 ftp 协议的网络位置:例如 ftp://path/to/repo - 本地位置:例如 file:///path/to/local/repo |
DNF包管理器常见用法
DNF参数: | 释义 |
---|---|
repolist | 显示系统中可用的 DNF 软件库 |
list | 列出用户系统上的所有来自软件库的可用软件包和所有已经安装在系统上的软件包 |
search <包名> | 搜索软件库中的软件包 |
provides <路径> | 查找某一文件的提供者 |
info <包名> | 查看软件包详情 |
install <包名> | 安装软件包 |
update <包名> | 升级指定软件包 |
check-update | 检查系统软件包的更新 |
update | 升级所有系统软件包 |
remove <包名> | 删除软件包 |
autoremove | 删除无用孤立的软件包 |
clean all | 删除缓存的无用软件包 |
help | 查看所有的dnf命令及其用途 |
help <命令名> | 获取有关某条命令的使用帮助 |
history | 查看dnf命令的执行历史 |
grouplist | 查看所有的软件包组 |
groupinstall <软件包组名称> | 安装一个软件包组 |
groupupdate <软件包组名称> | 升级一个软件包组中的软件包 |
groupremove <软件包组名称> | 删除一个软件包组 |
distro-sync | 更新软件包到最新的稳定发行版 |
reinstall <包名> | 重新安装特定软件包 |
downgrade <包名> | 回滚某个特定软件的版本 |
–version | 查看 DNF 包管理器版本 |
显示当前配置
# 要显示当前的配置信息:
dnf config-manager --dump
# 查询 repo id
dnf repolist
# 显示对应 id 的软件源配置
dnf config-manager --dump repo_id
添加、启用和禁用软件源
# 添加软件源
dnf config-manager --add-repo repository_url
# 启用软件源
dnf config-manager --set-enable repo_id
# 禁用软件源
dnf config-manager --set-disable repo_id
搜索查看软件包
# 搜索软件包
dnf search term
# 列出软件包清单
dnf list all
# 列出指定软件包
dnf list lsof
# 显示 RPM 包信息
dnf info package_name
下载软件包
# 下载软件包
dnf download package_name
## --resolve 同时下载未安装的依赖
dnf download --resolve package_name
从指定软件仓安装指定软件
# 用处:该命令用于从特定的软件包库安装特定的软件
## (本例中我们将使用命令从软件包库 epel 中安装 phpmyadmin 软件包)
dnf –enablerepo=epel install phpmyadmin
更新软件包
# 检查更新
dnf check-update
# 升级软件包
dnf update package_name
# 升级所有软件包
dnf update -y
更新所有软件包到最新的稳定发行版
# 通过所有可用的软件源将已经安装的所有软件包更新到最新的稳定发行版
dnf distro-sync
升级系统版本常用命令
# 安装 dnf-plugin-system-upgrade 系统升级插件
## 该插件可用于从 RHEL 8 到 RHEL 9 等更高版本的系统升级
dnf install dnf-plugin-system-upgrade
# 此命令也是刷新 DNF 软件包缓存并升级系统上的所有软件包
dnf --refresh upgrade
dnf upgrade --refresh
# 升级完成后自动重启
dnf system-upgrade reboot
回滚某个特定软件的版本dnf downgrade
社区
有反应
说这个命令并不生效
# 降低特定软件包的版本
dnf downgrade 包名
创建本地软件源仓库
要建立一个本地软件源仓库
,请按照下列步骤操作:
- 安装 createrepo 软件包。
# 安装 createrepo 软件包
dnf install createrepo
-
将需要的
rpm
软件包复制到一个目录下,如/mnt/local_repo/
。 -
创建软件源,执行以下命令:
# 创建软件源
createrepo /mnt/local_repo