为什么要用DNF替换Yum
由于Yum中许多长期存在的问题仍未得到解决,因此Yum包管理器已被DNF包管理器取代。这些问题包括性能差、内存占用过多、依赖解析速度变慢等。
####DNF
的安装
代码语言:javascript复制
DNF
在默认存储库中不可用RHEL
/CentOS 7
.然而,Fedora 22 附带了正式实施的 DNF。安装
DNF
在RHEL/CentOS
系统,你需要先安装并启用epel-release
存储库。
# yum install epel-release
OR
# yum install epel-release -y
代码语言:javascript复制使用yum命令安装
DNF
包epel-release
存储库。
# yum install dnf
1. 检查DNF
版本
检查系统上安装的DNF
版本。
# dnf --version
2. 列出启用的DNF
存储库
代码语言:javascript复制选项
repolist
使用 dnf 命令,将显示系统下所有启用的存储库。
# dnf repolist
3. 列出所有启用和禁用的DNF
存储库
代码语言:javascript复制
repolist all
将打印你系统下所有启用 / 禁用的存储库。
# dnf repolist all
4. 使用DNF
列出所有可用和已安装的包
代码语言:javascript复制
dnf list
将列出 Linux 系统上所有存储库和已安装软件包中的所有可用软件包。
# dnf list
5. 使用DNF
列出所有已安装的包
虽然 dnf list
命令显示所有存储库中的所有可用 / 已安装包。但是,你可以选择使用选项 “仅列出已安装的软件包”list installed
“ 如下所示。
# dnf list installed
6. 使用DNF
列出所有可用的包
代码语言:javascript复制
list available
选项,将列出可从所有启用的存储库安装的所有软件包。
# dnf list available
7. 使用DNF
搜索包
代码语言:javascript复制你不知道要安装的软件包,在这种情况下,你可以使用
search
带有 dnf 命令的选项来搜索与单词或字符串匹配的包(比如 nano)。
# dnf search nano
8. 看看什么提供了文件 or 子包?
代码语言:javascript复制dnf 选项
provides
找到提供特定文件子包的包的名称。例如,如果你想查找在系统中提供/bin/bash
# dnf provides /bin/bash
9. 使用DNF
获取包的详细信息
代码语言:javascript复制假设你想在系统上安装一个包之前知道它的信息,你可以使用
info
切换以获取有关包(例如 nano)的详细信息,如下所示。
# dnf info nano
10. 使用DNF
安装包
代码语言:javascript复制安装一个名为
nano
,只需运行以下命令,它将自动解析并安装包所需的所有依赖项nano
.
# dnf install nano
11. 使用DNF
更新包
代码语言:javascript复制你只能更新一个特定的包(比如
systemd
) 并保持系统上的所有内容不变。
# dnf update systemd
12. 使用DNF
检查系统更新
代码语言:javascript复制检查安装到系统中的所有系统软件包的更新。
# dnf check-update
13. 使用DNF
更新所有系统包
代码语言:javascript复制你可以使用以下命令更新整个系统,包括所有已安装的软件包。
# dnf update
OR
# dnf upgrade
14. 使用DNF
删除包
代码语言:javascript复制删除或删除任何不需要的包(例如
nano
),你可以使用remove
或者erase
使用 dnf 命令切换以将其删除。
# dnf remove nano
OR
# dnf erase nano
15. 使用DNF删除孤立包
代码语言:javascript复制如果没有被其他应用程序使用,那些为了满足依赖性而安装的包可能是无用的。要删除这些孤立包,请执行以下命令。
# dnf autoremove
16. 使用DNF删除缓存
代码语言:javascript复制很多时候我们会遇到过时的标头和未完成的事务,这会导致在执行 dnf 时出错。我们可以简单地通过执行来清除所有缓存的包和包含远程包信息的头文件。
# dnf clean all
17. 获取特定DNF
命令的帮助
代码语言:javascript复制你可以获得任何特定 dnf 命令的帮助(例如
clean
) 只需执行以下命令即可。
# dnf help clean
18. 列出所有DNF
命令和选项
代码语言:javascript复制要列出所有可用 dnf 命令和选项的帮助,只需键入。
# dnf help
19. 查看DNF
的历史
代码语言:javascript复制你可以调用 dnf history 查看已执行的 dnf 命令列表。
# dnf history
20. 列出所有组包
代码语言:javascript复制
dnf grouplist
将打印所有可用或已安装的包,如果没有提及,它将列出所有已知组。
# dnf grouplist
21. 使用DNF
安装组包
代码语言:javascript复制安装一组捆绑在一起的包作为组包(比如
Educational Software
)
# dnf groupinstall 'Educational Software'
22. 更新组包
代码语言:javascript复制让我们更新一个组包(比如
Educational Software
) 通过执行以下命令。
# dnf groupupdate 'Educational Software'
23. 删除组包
代码语言:javascript复制我们可以删除组包(比如
Educational Software
) 作为。
# dnf groupremove 'Educational Software'
24. 从特定存储库安装包
代码语言:javascript复制
DNF
可以安装任何特定的包(比如phpmyadmin
) 来自 (epel
) 镜像,
# dnf --enablerepo=epel install phpmyadmin
25. 将已安装的包同步到稳定版本
代码语言:javascript复制
dnf distro-sync
将提供必要的选项来将所有已安装的软件包同步到任何启用的存储库中可用的最新稳定版本。如果未选择任何软件包,则同步所有已安装的软件包。
# dnf distro-sync
26. 重新安装一个包
代码语言:javascript复制
dnf reinstall nano
将重新安装一个已经安装的包(比如nano
)。
# dnf reinstall nano
27. 降级软件包
downgrade
选项会将指定的包(例如 acpid)降级到较低版本。
# dnf downgrade acpid
样本输出
代码语言:javascript复制Using metadata from Wed May 20 12:44:59 2015
No match for available package: acpid-2.0.19-5.el7.x86_64
Error: Nothing to do.
相关文章
linux中RPM命令的20个实际示例
linux中20个yum包管理命令