dnf命令示例
DNF是yum的下一代版本,它是Fedora 22自从Fedora 22以来的默认包管理器。
它旨在成为RPM的基于RPM的系统中的yum,如Rhel,CentOS。
与yum相比,DNF具有一些显着的优势,例如对多个存储库的支持,包组支持,更快的依赖性解决速度并消耗较少的内存,在Python 2和Python 3中运行,符合yum和许多兼容性。
dnf命令示例
截至Fedora 22,YUM已被DNF替换,因此如果我们在Fedora上,我们无需安装它。
DNF用法与Yum非常相似。
此处提供的所有命令都以带有root用户的CentOS 7 Minimal Server Edition测试。
1.获得帮助
要列出所有Main命令,请运行Plugin命令和选项:
# dnf help
要获得特定命令的帮助,例如"安装",请运行:
# dnf help install
要了解当前安装的DNF版本,请运行:
# dnf --version
2.管理包
本节介绍安装,更新,列表,搜索,下载,重新安装和删除包。
获取软件包信息
要获取任何已安装或者未安装的包的详细信息,请运行:
# dnf info vim
安装包
要安装新包,例如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 Nov 10 14:47:22 2016 Installed Packages yum.noarch 3.4.3-150.el7.centos @System Available Packages yum.noarch 3.4.3-154.el7.centos.1 update
此命令将显示当前安装的版本和来自存储库的可用更新。
在上面的输出中,@System指定已安装的版本,更新指定存储库中的可用更新。
要更新多个包:
# 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-oppanced-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
要安装包组,例如"开发工具",运行:
# 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 http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/
要查看新添加的存储库,我们会做:
# dnf repolist created by dnf config-manager from http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/115 kB/s | 3.5 MB 00:31 Using metadata from Sat Nov 10 14:47:22 2016 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 http://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 http://springdale.math.ias.edu/data/puias/unsupported/7/x86_64/ baseurl=http://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包。
禁用存储库
要禁用存储库,例如EPEL,我们使用:
# dnf config-manager --set-disabled epel
我们还可以将启用和禁用选项组合在一起。
# dnf --enablerepo=epel --disablerepo=updates
上面的命令将启用epel存储库并禁用更新存储库。
5.找到它提供的东西
DNF允许我们找到哪个包提供特定命令或者文件。
如果我们不记得完全完全提供我们想要使用的特定命令,DNF可以。
找到哪个软件包提供特定命令
我想念旧的"ifconfig"命令。
此命令已不推荐使用,而不是最近的版本。
要查找哪个包提供此宝石,请运行:
# dnf provides */ifconfig
示例输出:
Using metadata from Thu Nov 8 15:52:17 2016 net-tools-2.0-0.22.20131004git.el7.x86_64 : Basic networking tools Repo : base
啊,是的! Net-Tools包提供此命令。
因此,我们可以安装此软件包以使用ifconfig命令。
找到哪个包提供文件
让我们想找到软件包提供的软件包/LS文件。
为此,运行:
# dnf provides */bin/ls Using metadata from Thu Jun 30 12:51:16 2015 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
正如我们在上面的输出中看到的那样,Coreutils包提供/bin/ls文件。
6.使用DNF历史
使用"dnf历史记录"命令,我们可以查看使用dnf命令执行的所有操作。
# dnf history Using metadata from Sat Nov 10 14:47:22 2016 ID | Command line | Date a | Action | Altere ------------------------------------------------------------------------------ 2 | update bash | 2016-02-10 14:55 | Update | 1 1 | install vim | 2016-02-10 14:51 | E, I | 33 EE
如上所述,有两个交易。
我安装了名为"Vim"的包,并更新了包"bash"。
最新的事务将显示在顶部。
要查看特定事务的详细信息,请使用下面的ID。
# dnf history list 2
我们还可以查看以下特定事务的完整详细信息。
# dnf history info 2 Using metadata from Sat Nov 10 14:47:22 2016 Transaction ID : 2 Begin time : Sat Nov 10 14:55:38 2016 Begin rpmdb : 360:fa7bea798a10e850b2bf800182b377443b481652 End time : 14:55:39 2016 (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 http://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
这些只是足以在Fedora,Rhel和CentOS上获得DNF的基本用法。
有关更多详细信息,请参阅man页面。
$man dnf