本教程为那些想知道如何使用 DNF 包管理器的人解释了所有基本命令。 你可能已经知道,DNF 是 YUM 的下一代版本,它一直是默认的包管理器 Fedora 22. 它旨在替代基于 RPM 的系统中的 YUM,例如 RHEL、CentOS。 与 YUM 相比,DNF 具有一些显着的优势,例如支持多个存储库、包组支持、更快的依赖解析速度和消耗更少的内存、可在 Python 2 和 Python 3 中运行、可靠的 API 文档、与 YUM 的兼容性等等。
- 开始使用吃豆人
初学者的 DNF 命令示例
作为 Fedora 22、yum已经换成DNF了,上的话就不用安装了 Fedora. 在 CentOS 7 和 RHEL 7 上,您可以按照下面给出的教程中的说明安装它。
- 如何在 CentOS 7 上安装 DNF
DNF 的用法与 YUM 非常相似。 此处提供的所有命令均在 CentOS 7 最小服务器版本上测试 根 用户。
1. 获得帮助
要列出所有主要命令、插件命令和选项,请运行:
# dnf help
要获得有关特定命令的帮助,对于 example “安装”,运行:
# dnf help install
要了解当前安装的 DNF 版本,请运行:
# dnf --version
2. 管理包
本节介绍安装、更新、列出、搜索、下载、重新安装和删除软件包。
获取包裹信息
要获取任何已安装或未安装包的详细信息,请运行:
# dnf info vim
安装包
要安装新软件包,对于 example vim, 跑:
# dnf install vim
我们还可以安装多个包,如下所示。
# dnf install vim nano emacs
您需要输入“y”才能继续安装。 如果您不想每次都这样做,您可以在自动确认的命令中包含选项“y”。
# dnf install vim nano emacs -y
这不会等待用户确认。 相反,它只会自动安装所有软件包。
列出包
列出所有可用和已安装的软件包:
# dnf list
要仅列出所有已安装的软件包,我们使用:
# dnf list installed
仅列出可用的软件包:
# dnf list available
更新包
要检查所有可用更新,请执行以下操作:
# dnf check-update
或者,
# dnf list updates
更新单个包(例如。 bash), 跑:
# dnf update bash
要查看已安装软件包是否有任何更新,请运行:
# dnf list yum.noarch Using metadata from Sat Feb 10 14:47:22 2018 Installed Packages yum.noarch 3.4.3-150.el7.centos @System Available Packages yum.noarch 3.4.3-154.el7.centos.1 update
此命令将显示当前安装的版本和存储库中的可用更新。 在上面的输出中, @系统 指定安装的版本和 更新 指定存储库中的可用更新。
要更新多个包:
# dnf update package1 package2
通过“y”选项进行自动确认。
# dnf update package1 package2 -y
要更新/升级所有软件包,请运行:
# dnf update
# dnf upgrade
要将已安装的软件包同步到最新的可用版本:
# dnf distro-sync
搜索包
要从存储库中搜索包,请运行:
# dnf search vim
这个命令将列出所有匹配单词“vim”的包。
下载包
有时您可能想下载一个包,但不想现在安装它。 如果是这样,请运行:
# dnf download vim
此命令将下载 vim-enhanced-xx.xx.x.rpm 包,但不会安装它。
要安装下载的软件包,请运行:
# dnf install vim-enhanced-7.4.160-2.el7.x86_64.rpm
所有其他必需的依赖项都将从存储库中下载和安装。
降级包
要降级您之前更新的软件包,请运行:
# dnf downgrade bash
重新安装软件包
对已安装的软件包有任何问题吗? 不用担心! 您可以随时重新安装它。
要重新安装软件包,请使用:
# dnf reinstall vim
删除包
要从系统中删除一个包(例如 vim),运行:
# dnf remove vim
您还可以使用如下所示的“擦除”选项。
# dnf erase vim
3. 包组
包组是服务于共同目的的包的集合,例如“开发工具”或“Web 服务器”。 安装包组时,将下载并安装所有依赖包。 安装组将为您节省大量时间。
安装软件包组
要列出所有可用的包组,请运行:
# dnf grouplist
要安装软件包组,对于 example “开发工具”,运行:
# dnf groupinstall 'Development Tools'
此命令将安装设置开发环境所需的所有软件包。
更新软件包组
要更新软件包组,请运行:
# dnf groupupdate 'Development Tools'
删除软件包组
要删除软件包组,请运行:
# dnf groupremove 'Development Tools'
4. 使用存储库
列出已安装的存储库
默认情况下,所有存储库都将添加到 CentOS/RHEL 的 /etc/yum.repos.d/ 目录下。 您可以使用命令列出已安装的存储库:
# dnf repolist
上面的命令将只显示启用的存储库。 要显示所有存储库(启用和禁用),请运行:
# dnf repolist all
添加存储库
您可以通过在 /etc/yum.repos.d/ 目录下手动创建 package.repo 文件来添加存储库。 然而,DNF 让它变得更加容易。
要添加新存储库,请运行:
# dnf config-manager --add-repo repository_url
例子:
# dnf config-manager --add-repo https://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/
要查看新添加的存储库,我们执行以下操作:
# dnf repolist created by dnf config-manager from https://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ 115 kB/s | 3.5 MB 00:31 Using metadata from Sat Feb 10 14:47:22 2018 repo id repo name status base CentOS-7 - Base 9,591 epel Extra Packages for Enterprise Linux 7 - x86_64 12,278 extras CentOS-7 - Extras 388 springdale.math.ias.edu_data_puias_unsupported_7_x86_64_ created by dnf config-manager from https://springdale.math.ias.edu/data/puias/unsupporte 2,760 updates CentOS-7 - Updates
仅查看 .repo 文件:
# cat /etc/yum.repos.d/springdale.math.ias.edu_data_puias_unsupported_7_x86_64_.repo [springdale.math.ias.edu_data_puias_unsupported_7_x86_64_] name=created by dnf config-manager from https://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ baseurl=https://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ enabled=1
启用存储库
要启用存储库,请使用:
# dnf config-manager --set-enabled <repo-id>
例子:
# dnf config-manager --set-enabled epel
我们可以通过运行以下命令进行验证,以仅查看启用的存储库。
# dnf repolist
此外,我们可以将启用和安装选项组合在一起,如下所示。
# dnf config-manager --set-enabled epel install zsh
上述命令启用 EPEL 存储库并安装 zsh 包。
禁用存储库
要禁用存储库,对于 example EPEL,我们使用:
# dnf config-manager --set-disabled epel
我们还可以将启用和禁用选项组合在一起,如下所示。
# dnf --enablerepo=epel --disablerepo=updates
上述命令将启用 EPEL 存储库并禁用更新存储库。
5. 寻找能提供某些东西的东西
DNF 允许您查找哪个包提供了特定的命令或文件。 如果您不记得确切的软件包提供了您想要使用的特定命令,DNF 可以帮助您。
查找提供特定命令的包
我想念旧的“ifconfig”命令。 此命令已弃用,并且在最新版本中不可用。 要查找提供此 gem 的包,请运行:
# dnf provides */ifconfig
样本输出:
Using metadata from Thu Feb 8 15:52:17 2018 net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools Repo : base
啊,是的! 网络工具 包提供了这个命令。 所以你可以安装这个包来使用 ifconfig 命令。
查找哪个包提供文件
让我们你想找到什么包提供 /bin/ls 文件。 为此,请运行:
# dnf provides */bin/ls Using metadata from Thu Jun 30 12:51:16 2016 coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : @System coreutils-8.22-18.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts Repo : base
正如您在上面的输出中看到的, 核心工具 包提供 /bin/ls 文件。
- 如何在 Linux 中找到提供特定文件的包
6. 使用 DNF 历史
使用“dnf history”命令,我们可以查看我们使用 DNF 命令执行的所有操作。
# dnf history Using metadata from Sat Feb 10 14:47:22 2018 ID | Command line | Date a | Action | Altere ------------------------------------------------------------------------------- 2 | update bash | 2018-02-10 14:55 | Update | 1 1 | install vim | 2018-02-10 14:51 | E, I | 33 EE
正如您在上面的输出中看到的,有两笔交易。 我安装了一个名为“vim”的包并更新了包“bash”。最新的交易将出现在顶部。
要查看特定交易的详细信息,请使用其 ID,如下所示。
# dnf history list 2
我们还可以查看特定交易的完整详细信息,如下所示。
# dnf history info 2 Using metadata from Sat Feb 10 14:47:22 2018 Transaction ID : 2 Begin time : Sat Feb 10 14:55:38 2018 Begin rpmdb : 360:fa7bea798a10e850b2bf800182b377443b481652 End time : 14:55:39 2018 (1 seconds) End rpmdb : 360:dc9f6bb33b00fe1d74dd205586c0ff8c4674f8f7 User : root <root> Return-Code : Success Command Line : update bash Transaction performed with: Installed dnf-0.6.4-2.sdl7.noarch (unknown) Installed rpm-4.11.3-21.el7.x86_64 (unknown) Packages Altered: Upgraded bash-4.2.46-21.el7_3.x86_64 (unknown) Upgrade 4.2.46-29.el7_4.x86_64 @updates
如您所见,ID 为 2 的事务用于更新名为“bash”。我们可以随时使用命令撤消此事务:
# dnf history undo 2
要重做之前的“撤消”事务,只需运行:
# dnf history redo 2
7. 构建 DNF 元数据缓存
DNF 元数据缓存将在我们安装、更新软件包时自动创建。 所以我们不需要手动构建它。 但是,DNF 有一个内置命令来构建缓存,以使未来的交易更快。
要创建元数据缓存,请运行:
# dnf makecache Extra Packages for Enterprise Linux 7 - x86_64 155 kB/s | 15 MB 01:35 created by dnf config-manager from https://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ 136 kB/s | 3.5 MB 00:26 CentOS-7 - Base 195 kB/s | 9.5 MB 00:49 CentOS-7 - Updates 240 kB/s | 7.9 MB 00:33 CentOS-7 - Extras 84 kB/s | 820 kB 00:09 Metadata cache created.
8. 清理
要删除不需要/孤立的包,请运行:
# dnf autoremove
要删除所有缓存的包,请运行:
# dnf clean all
您可能希望单独清理元数据、dbcache、包、插件等,而不是完全清理缓存。
要删除从存储库元数据生成的缓存文件:
# dnf clean dbcache
这会强制 DNF 在下次运行时重新生成缓存文件。
要删除本地 cookie 文件,说明何时为每个 repo 下载了元数据和镜像列表,请运行:
# dnf clean expire-cache
DNF 将在下次使用每个 repo 时重新验证缓存。
要删除存储库元数据:
# dnf clean metadata
使用此选项将使 DNF 在下次运行时下载所有元数据。
要从系统中删除所有缓存的包:
# dnf clean packages
以下命令告诉所有启用的插件消除其缓存数据。
# dnf clean plugins
这些足以让您了解 DNF 的基本用法 Fedora、RHEL 和 CentOS。 有关更多详细信息,请参阅手册页。
$ man dnf
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!