在正式介绍dnf之前,阿明先给大家展示一下:
# ls -l /usr/bin/dnflrwxrwxrwx 1 root root 5 月10 日21:28 /usr/bin/dnf - dnf-3# ls -l /usr/bin/yumlrwxrwxrwx 1 root root 5 月10 日21:28 /usr/bin /yum - dnf-3 通过以上操作,你会发现在Rocky8中使用yum或dnf是一样的。它们本质上都是dnf工具,所以在上一章中,阿明使用yum命令时,他使用的是dnf命令。
10.2 dnf工具
Dnf工具最大的优点是可以连接互联网下载所需的RPM包,然后自动安装。如果要安装的RPM包有依赖关系,dnf工具会帮助我们按顺序安装所有相关的RPM包。现在阿明介绍一下常用的dnf命令。
10.2.1 列出所有可用的RPM包
使用yum list命令列出所有RPM包资源,如下所示:
# dnf list |head -20 最后一次元数据过期检查:1:45:34 之前,于2022 年11 月7 日星期一21:26:29 执行。安装的软件包NetworkManager.x86_64 1:1.32.10-4.el8 @anacondaNetworkManager-config-server.noarch 1:1.32.10-4.el8 @anacondaNetworkManager-libnm.x86_64 1:1.32.10-4.el8 @anacondaNetworkManager-team.x86_ 64 1:1。 32 .10 -4.el8 @anacondaNetworkManager-tui.x86_64 1:1.32.10-4.el8 @anacondaOpenIPMI-libs.x86_64 2.0.31-3.el8 @baseosacl.x86_64 2.2.53-1.el8.1 @anacondaadcli.x86_64 0.8 .2 -12.el8 @anacondaalsa-sof-firmware.noarch 1.8-1.el8 @anacondaannobin.x86_64 10.29-3.el8 @appstreamapr.x86_64 1.6.3-12.el8 @appstreamapr-devel.x86_64 1.6.3-12 .el8 @appstreamapr-util.x86_64 1.6.1-6.el8.1 @appstreamapr-util-bdb.x86_64 1.6.1-6.el8.1 @appstreamapr-util-devel.x86_64 1.6.1-6.el8。 1 @appstreamapr-util-openssl.x86_64 1.6.1-6.el8.1 @appstreamat.x86_64 3.1.20-11.el8 @anacondaattr.x86_64 2.4.48-3.el8 @anaconda 由于篇幅限制,仅阿明列出了18 RPM 软件包的信息。如上例所示,最左边是RPM包名,中间是版本信息,最右边是安装信息。如果安装了,最右边会显示@appstream或@anaconda。前面会有一个@符号,很容易区分。如果没有安装,会显示appStream、anaconda。如果你仔细观察,你会发现dnf list命令首先列出已安装的软件包,然后列出可用的软件包。
10.2.2 搜索RPM包
搜索RPM包的命令是dnf search【相关关键词】。示例命令如下:
# dnf search vim 最后一次元数据过期检查:1:49:06 之前,于2022 年11 月7 日星期一21:26:29 执行。==========================================================================================================姓名和个人资料匹配: vim==============================================================================================================awesome-vim-colorschemes.noarch : Neo/vim 配色方案集合,合并以便快速使用beakerlib-vim-syntax.noarch : 用于语法高亮显示BeakerLib 测试的文件VIM editorboxes-vim.noarch :boxesfluxbox-vim-syntax.noarch 的Vim 插件: vimgeany-plugins-vimode.x86_64 的Fluxbox 语法脚本: Geanyneovim.x86_64 的Vim 模式插件: Vim-fork 专注于可扩展性和敏捷性notmuch-vim。 x86_64 : notmuchpython-neovim-doc.noarch 的Vim 插件: python-neovimpython3-neovim.noarch 的文档: Neovimvim-X11.x86_64 的Python 客户端: X Window 系统的vi 编辑器的VIM 版本- GVimvim-airline。 noarch : vim 的精益平均状态/标签线,与airvim-ansible.noarch 一样轻巧vim-ansible.noarch : 用于语法突出显示ansible 常见文件类型的Vim 插件vim-common.x86_64 : 任何版本的VIM 编辑器所需的常见文件vim-devicons.noarch : 添加文件类型Vim 插件的图标vim-editorconfig.noarch : EditorConfig Vim Pluginvim-enhanced.x86_64 : VIM 编辑器的一个版本,包括最近的增强功能vim-filesystem.noarch : VIM 文件系统布局vim-fugitive-gitlab.noarch : GitLab 对vim-fugitive 插件的支持vim- go.x86_64 : Vimvim-gv.noarch 的Go 开发插件: Vimvim-jellybeans.noarch 中的Git 提交浏览器: Vimvim-minimal.x86_64 的彩色深色配色方案: VIM 编辑器的最小版本vim-powerline.noarch : Powerline VIM插件=================================================================================================================名称匹配:vim================================================================================================================vim-fugitive.noarch : 一个很棒的Git 包装器,应该是非法的vim-gitgutter.noarch : 在gutter 和stage/undoes hunks 和部分hunksvim-halibut.noarch : 大比目鱼手动工具的语法文件vim-nerdtree-git-plugin.noarch : 显示git status 的NERDTree 插件vim-pathogen.noarch : 管理你的运行时路径==============================================================================================================配置文件匹配:vim=======================================================================================================================kakoune.x86_64 : 深受Vimranger.noarch 启发的代码编辑器: 类似vim 的文件管理器除了这种搜索方法之外,阿明还经常使用grep 来过滤找到对应的RPM包如下:
# dnf list|grep vimvim-common.x86_64 2:8.0.1763-16.el8_5.13 @appstreamvim-enhanced.x86_64 2:8.0.1763-16.el8_5.13 @appstreamvim-filesystem.noarch 2:8.0.1763-16.el8 _5.13 @ appstreamvim-minimal.x86_64 2:8.0.1763-16.el8 @anacondavim-X11.x86_64 2:8.0.1763-19.el8_6.4 appstreamvim-common.x86_64 2:8.0.1763-19.el8_6.4 appstreamvim-en汉ced.x86_64 2:8.0。 1763-19.el8_6.4 appstreamvim-filesystem.noarch 2:8.0.1763-19.el8_6.4 appstreamvim-minimal.x86_64 2:8.0.1763-19.el8_6.4 baseos
10.2.3 安装RPM包
安装RPM包的命令是dnf install [-y] [RPM包名称]。如果不添加-y选项,则会与用户交互安装。命令示例如下:
最后一次元数据过期检查:1:51:22 之前,于2022 年11 月7 日星期一21:26:29 执行。依赖性已解决。===============================================================================================================================================================================================================================================软件包架构版本仓库大小=============================================================================================================================================================================================================================================安装: psmisc x86_64 23.1-5.el8 baseos 150k事务摘要=================================================================================================================================================================================================================================================安装1 软件包下载总量:150k 安装大小:483k 您确定吗? [y/N]: y下载软件包:psmisc-23.1-5.el8.x86_64.rpm 196 kB/s | 150 KB 00:00-------------------- -------------------------------------- ----------------------- --------------------------- ----------------------- --------------------------- ----------------------- --------------------------- ----------------------- -------------总计195 kB/s | 150 kB 00:00 运行事务检查事务检查成功。运行事务测试事务测试成功。运行事务准备: 1/1 安装: psmisc-23.1-5.el8.x86_64 1/1 运行脚本: psmisc-23.1-5.el8.x86_64 1/1 验证: psmisc-23.1-5.el8.x86_64 1/1 : psmisc-23.1-5.el8.x86_64安装完成!在这个过程中,它首先会列出需要安装的RPM包。如果有依赖,它也会列出所有依赖的包。然后询问用户是否需要安装,输入y安装,输入n不安装。
但阿明觉得这样太麻烦了,所以就直接加上-y选项,从而省略了询问用户是否安装的步骤。
10.2.4 卸载RPM包
卸载RPM包的命令是dnf remove [-y] [RPM包名称]。示例命令如下:
#dnf 删除psmisc 依赖性已解决。=============================================================================================================================================================软件包架构版本仓库大小======================================================================================================================================================================删除了: psmisc x86_64 23.1-5.el8 @baseos 483 k 事务摘要================================================================================================================================================================删除1 个软件包将释放空间:483k 您确定吗? [y/N]: y 成功运行事务检查事务检查。运行事务测试事务测试成功。运行事务准备: 1/1 删除: psmisc-23.1-5.el8.x86_64 1/1 运行脚本: psmisc-23.1-5.el8.x86_64 1/1 验证: psmisc-23.1-5.el8.x86_64 1/1删除: psmisc-23.1-5.el8.x86_64 已完成!卸载与安装相同。也可以直接添加-y选项,省略与用户交互的步骤。这里需要提醒阿明,卸载某个RPM包时,会连同它所依赖的包一起卸载,所以一定要检查清楚,不要也卸载其他重要的RPM包,以免影响正常商业。建议您在使用dnf remove命令卸载软件包时不要添加-y选项。
10.2.5 升级RPM包
升级RPM包的命令是dnf update [-y] [RPM包]。示例命令如下:
# dnf update bash 最后一次元数据过期检查:1:54:52 前,于2022 年11 月7 日星期一21:26:29 执行。依赖性已解决。=============================================================================================================================================================软件包架构版本仓库大小======================================================================================================================================================================升级: bash x86_64 4.4.20-4.el8_6 baseos 1.5 M事务摘要====================================================================================================================================================================升级1 软件包下载总量:1.5 M 您确定吗? [y/N]:y 下载包:bash-4.4.20-4.el8_6.x86_64.rpm 3.2 MB/s | 1.5 MB 00:00------------------------------------------------------------ ------------------------------------------------------------------------ ------------------------------------------------------------------------ -----总计3.1 MB/秒| 1.5 MB 00:00 运行事务检查事务检查成功。运行事务测试事务测试成功。运行事务准备: 1/1 升级: bash-4.4.20-4.el8_6.x86_64 1/2 运行脚本: bash-4.4.20-4.el8_6.x86_64 1/2 清理: bash-4.4.20-2 .el8.x86_64 2/2 运行脚本: bash-4.4.20-2.el8.x86_64 2/2 验证: bash-4.4.20-4.el8_6.x86_64 1/2 验证: bash-4.4.20-2。 el8.x86_64 2/2已升级至: bash-4.4.20-4.el8_6.x86_64完成!上一篇文章介绍了如何使用dnf工具搜索、安装、卸载和升级RPM包。如果掌握了这些技巧,基本上就可以解决日常工作中遇到的与RPM包相关的问题了。当然,dnf工具还有许多其他有用的命令。阿明就不一一列举了。如果有兴趣,可以使用man命令查看帮助信息。另外阿明还会教大家一些dnf工具的小应用。
10.2.6 搜索命令是从哪个RPM包安装的
10.2.7 更改dnf仓库为国内镜像站
上章提到,dnf从网络获取rpm包,那么它从哪里下载rpm包呢?可以通过查看配置文件/etc/yum.repos.d/Rocky-BaseOS.repo获取地址:
# cat /etc/yum.repos.d/Rocky-BaseOS.repo# Rocky-BaseOS.repo## 镜像列表系统使用客户端的连接IP 地址和每个镜像的更新状态来选择当前处于地理位置的镜像地理上#靠近客户。您应该将其用于Rocky 更新,除非您#手动选择其他镜像。## 如果镜像列表不适合您,您可以尝试注释掉#baseurl 行。[baseos]name=Rocky Linux $releasever - BaseOSmirrorlist=https://mirrors.rockylinux.org/mirrorlist?arch=$basearchrepo=BaseOS-$releasever#baseurl=http://dl.rockylinux.org/$contentdir/$releasever/BaseOS/$basearch/os/gpgcheck=1enabled=1gpgkey=file:///等/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial 这里的mirrors.rockylinux.org是下载rpm的地址。网站在国外,访问速度比较慢。我们可以改变它。对于国内镜像站点,例如阿里云,具体方法如下。
(1)将下载地址更改为上海交通大学的镜像地址
sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.sjtug.sjtu.edu.cn/rocky|g ' \ -i.bak /etc/yum.repos.d/Rocky-*.repo(2) 刷新repos 生成缓存,如下所示:
# dnf clean all # dnf makecache 然后就可以使用dnf命令来安装你需要的软件包了。例如我们可以安装一个tftp RPM包,如下:
# dnf 安装y tftp
10.2.8 下载RPM包
您可以使用dnf download命令直接下载rpm包。它将下载rpm 包到当前目录。当然,如果不指定任何选项,则只会下载指定的rpm包,不会下载依赖包。如果想要将rpm包与依赖包一起下载,还需要指定--resolve选项。命令如下:
标签:
用户评论
哈哈,这个dnf工具我之前也听说过,但一直没敢尝试。你能详细介绍一下吗?怕用不好影响到游戏平衡。
有18位网友表示赞同!
这个dnf工具确实挺实用的,我用了之后感觉角色提升了不少。不过,用之前要小心点,别被官方发现了。
有11位网友表示赞同!
我朋友说这个dnf工具很好用,但他自己不敢用,怕被封号。你真的会用吗?
有16位网友表示赞同!
刚刚看了你的帖子,这个dnf工具听起来很有用,但我担心它会不会破坏游戏的公平性。
有7位网友表示赞同!
我试过那个dnf工具了,效果真的很明显,现在我的角色在游戏里横着走!就是怕官方打击力度大。
有10位网友表示赞同!
这个dnf工具到底是不是真的?我一直想试试,但又担心有风险。你有没有什么好的建议?
有8位网友表示赞同!
用了那个dnf工具之后,我的装备提升了好几级,不过我觉得心里有点不安。不知道是不是做错了什么。
有16位网友表示赞同!
听说这个dnf工具可以快速升级,但我实在不敢相信。真的有这么神奇吗?
有9位网友表示赞同!
我之前用过一个类似的工具,结果被官方查到了,账号被封了。这个dnf工具真的安全吗?
有9位网友表示赞同!
这个dnf工具我听说了好几次,但一直没找到使用方法。你能详细介绍一下吗?
有18位网友表示赞同!
用了dnf工具之后,我的游戏体验确实好了很多,但我也在担心会不会被官方盯上。
有17位网友表示赞同!
我试过那个dnf工具了,效果还不错,就是感觉有点对不起其他玩家。毕竟大家都希望公平竞争。
有13位网友表示赞同!
这个dnf工具听起来很厉害,但我还是不敢用。我怕一旦被发现,账号就完了。
有11位网友表示赞同!
我朋友推荐我试试这个dnf工具,他说效果很好。但我还在犹豫,真的安全吗?
有16位网友表示赞同!
用了dnf工具之后,我的角色等级提升得很快,但我也在反思,这样真的好吗?
有14位网友表示赞同!
这个dnf工具的效果到底怎么样?有没有人能分享一下真实的使用体验?
有7位网友表示赞同!
我一直想试试dnf工具,但担心会影响到游戏的乐趣。有没有人能给我一些建议?
有19位网友表示赞同!
听说这个dnf工具可以快速刷副本,但我实在不敢相信。真的有这么神奇吗?
有16位网友表示赞同!
用了dnf工具之后,我的游戏体验有了很大提升,但我也在担心它会不会影响游戏的其他玩家。
有5位网友表示赞同!