dnf包管理器常见用法

DNF包管理器简介

DNF包用法与yum高度相似,有一些不相同的常用命令,提供了不一样的功能.
参考: https://www.linuxcool.com/dnf


DNF配置文件

https://eulixos.com/docs/2.0/Administration/%E4%BD%BF%E7%94%A8DNF%E7%AE%A1%E7%90%86%E8%BD%AF%E4%BB%B6%E5%8C%85.html#%E9%85%8D%E7%BD%AE-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 image.png

[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

image.png

# 查询 repo id
dnf repolist

image.png

# 显示对应 id 的软件源配置
dnf config-manager --dump repo_id

image.png


添加、启用和禁用软件源

# 添加软件源
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

image.png

# 显示 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 包名

创建本地软件源仓库

要建立一个本地软件源仓库,请按照下列步骤操作:

  1. 安装 createrepo 软件包。
# 安装 createrepo 软件包
dnf install createrepo
  1. 将需要的rpm软件包复制到一个目录下,如/mnt/local_repo/

  2. 创建软件源,执行以下命令:

# 创建软件源
createrepo /mnt/local_repo
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值