rpm软件包管理

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 系统管理者的欢迎。举例如下:

  1. 在 DNF 中没有 –skip-broken 命令,并且没有替代命令供选择。
  2. 在 DNF 中没有判断哪个包提供了指定依赖的 resolvedep 命令。
  3. 在 DNF 中没有用来列出某个软件依赖包的 deplist 命令。
  4. 当你在 DNF 中排除了某个软件库,那么该操作将会影响到你之后所有的操作,不像在 YUM 下那样,你的排除操作只会咋升级和安装软件时才起作用。

2. Linux带GUI和不带GUI装换

posted @   国杰响当当  阅读(20)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
点击右上角即可分享
微信分享提示