1. DNF(新一代的RPM软件包管理器)
常用命令
DNF 并未默认安装在 RHEL 或 CentOS 7系统中,但是 Fedora 22 已经默认使用 DNF ,dnf的软件库配置和yum源码一致,也在/etc/yum.repos.d/中配置。
查看版本:
[root@localhost ~]# dnf --version
查看所有的 DNF 命令及其用途:
[root@localhost ~]# dnf help
查看系统中可用的 DNF 软件库:
[root@localhost ~]# dnf repolist
repo id repo name
appstream Rocky Linux 9 - AppStream
baseos Rocky Linux 9 - BaseOS
extras Rocky Linux 9 - Extras
查看系统中可用和不可用的所有的 DNF 软件库:
[root@localhost ~]# dnf repolist all
列出所有 RPM 包:
[root@localhost ~]# dnf list
列出所有安装了的 RPM 包:
[root@localhost ~]# dnf list installed
列出所有可供安装的 RPM 包:
[root@localhost ~]# dnf list available
搜索软件库中的 RPM 包:
[root@localhost ~]# dnf search vim
查找某一文件的提供者:
[root@localhost ~]# dnf provides netstat
Last metadata expiration check: 1:25:30 ago on Fri Dec 13 10:24:29 2024.
net-tools-2.0-0.64.20160912git.el9.x86_64 : Basic networking tools
Repo : baseos
Matched from:
Filename : /usr/bin/netstat
查看软件包详情:
[root@localhost ~]# dnf info wget
安装软件包:
[root@localhost ~]# dnf -y install wget
下载但是不安装:
[root@localhost ~]# dnf install -y --downloadonly --downloaddir=/tmp <package-name>
#下载下来拷贝到离线服务器上使用如下命令安装
[root@localhost ~]# dnf localinstall -y ./*.rpm
升级软件包:
[root@localhost ~]# dnf update openssh
检查系统软件包的更新:
用处:该命令用于检查系统中所有软件包的更新
[root@localhost ~]# dnf check-update
升级所有系统软件包:
[root@localhost ~]# dnf update 或 # dnf upgrade
删除软件包:
[root@localhost ~]# dnf remove nano 或 # dnf erase nano
删除无用孤立的软件包:
[root@localhost ~]# dnf autoremove
删除缓存的无用软件包:
[root@localhost ~]# dnf clean all
获取有关某条命令的使用帮助:
用处:该命令用于获取有关某条命令的使用帮助(包括可用于该命令的参数和该命令的用途说明)(本例中我们将使用命令获取有关命令”clean”的使用帮助)
[root@localhost ~]# dnf help clean
查看 DNF 命令的执行历史:
[root@localhost ~]# dnf history
查看所有的软件包组:
[root@localhost ~]# dnf grouplist
安装一个软件包组
用处:该命令用于安装一个软件包组(本例中,我们将用命令安装”Educational Software”这个软件包组)
[root@localhost ~]# dnf groupinstall 'Server with GUI'
升级一个软件包组中的软件包
用处:该命令用于升级一个软件包组中的软件包(本例中,我们将用命令升级”Educational Software”这个软件包组中的软件)
[root@localhost ~]# dnf groupupdate 'Server with GUI'
删除一个软件包组:
[root@localhost ~]# dnf groupremove 'Server with GUI'
从特定的软件包库安装特定的软件:
用处:该命令用于从特定的软件包库安装特定的软件(本例中我们将使用命令从软件包库 epel 中安装 phpmyadmin 软件包)
[root@localhost ~]# dnf –enablerepo=epel install phpmyadmin
更新软件包到最新的稳定发行版:
用处:该命令可以通过所有可用的软件源将已经安装的所有软件包更新到最新的稳定发行版
[root@localhost ~]# dnf distro-sync
重新安装特定软件包:
用处:该命令用于重新安装特定软件包(本例中,我们将使用命令重新安装”nano”这个软件包)
[root@localhost ~]# dnf reinstall nano
回滚某个特定软件的版本:
用处:该命令用于降低特定软件包的版本(如果可能的话)(本例中,我们将使用命令降低”acpid”这个软件包的版本)
[root@localhost ~]# dnf downgrade acpid
总结
DNF 包管理器作为 YUM 包管理器的升级替代品,它能自动完成更多的操作。但在我看来,正因如此,所以 DNF 包管理器不会太受那些经验老道的 Linux 系统管理者的欢迎。举例如下:
- 在 DNF 中没有 –skip-broken 命令,并且没有替代命令供选择。
- 在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令。
- 在 DNF 中没有用来列出某个软件依赖包的 deplist 命令。
- 当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会咋升级和安装软件时才起作用。