在Linux中用于RPM包管理的‘DNF‘命令
DNF即Dandified YUM是用于基于RPM发行版的下一代包管理器。首先在Fedora 18中引入它,并且它已经在Fedora 22发行版中替代了YUM工具。DNF以改进YUM瓶颈为目标,即:性能、内存使用,依赖关系解析,速度以及大量其它原因。DNF使用RPM,libsolv和hawkey库进行包管理。虽然它没有在你能够yum,dnf和与yum一起使用它的CentOS和RHEL 7中预装。
DNF的安装
DNF没有在RHEL/CentOS7的默认仓库中。但Fedora 22发布时附带了官方实现的DNF。要在RHEL/CentOS系统上按照DNF,你需要首先安装和使能epel-release仓库。
yum install epel-release
或
yum install epel-release -y
如果这对你无关紧要,你可以预yum一起使用"-y"来自动安装每样东西,而不要用户的干预。下一步,使用yum命令从epel-release仓库安装DNF包。
yum install dnf
1、检查DNF版本
检查在你系统上安装的DNF版本。
[root@instance-z6rhwz8d ~]# dnf --version
4.0.9Installed: dnf-0:4.0.9.2-2.el7_9.noarch at Tue 19 Jul 2022 12:41:29 PM CSTBuilt : CentOS BuildSystem <http://bugs.centos.org> at Wed 07 Apr 2021 03:52:38 PM CSTInstalled: rpm-0:4.11.3-45.el7.x86_64 at Tue 26 Jan 2021 11:42:43 AM CSTBuilt : CentOS BuildSystem <http://bugs.centos.org> at Wed 30 Sep 2020 05:30:03 PM CST
2、列出使能的DNF仓库
dnf命令的"repolist"选项,将显示你系统下所有使能的仓库。
[root@instance-z6rhwz8d ~]# dnf repolist
Extra Packages for Enterprise Linux 7 - x86_64 78 MB/s | 17 MB 00:00
CentOS-7 - Base 58 MB/s | 10 MB 00:00
CentOS-7 - Updates 59 MB/s | 20 MB 00:00
CentOS-7 - Extras 11 MB/s | 331 kB 00:00
repo id repo name status
base CentOS-7 - Base 10,072
epel Extra Packages for Enterprise Linux 7 - x86_64 13,757
extras CentOS-7 - Extras 512
updates CentOS-7 - Updates 4,050
3、列出所有使能和禁用的DNF仓库
选项"repolist all"将打印在你系统下所有使能/禁用的仓库。
[root@instance-z6rhwz8d ~]# dnf repolist all
Last metadata expiration check: 0:00:46 ago on Tue 19 Jul 2022 09:02:35 PM CST.
repo id repo name status
C7.0.1406-base CentOS-7.0.1406 - Base disabled
...
C7.8.2003-updates CentOS-7.8.2003 - Updates disabled
base CentOS-7 - Base enabled: 10,072
base-debuginfo CentOS-7 - Debuginfo disabled
...
epel Extra Packages for Enterprise Linux 7 enabled: 13,757
...
updates CentOS-7 - Updates enabled: 4,050
updates-source CentOS-7 - Updates Sources disabled
4、使用列出所有可用和安装的包
命令"dnf list"将来自所有仓库的所有可用包和在你Linux系统上安装的包。
[root@instance-z6rhwz8d ~]# dnf list
Last metadata expiration check: 0:04:02 ago on Tue 19 Jul 2022 09:02:35 PM CST.
Installed Packages
GeoIP.x86_64 1.5.0-14.el7 @System
NetworkManager.x86_64 1:1.18.8-1.el7 @System
NetworkManager-libnm.x86_64 1:1.18.8-1.el7 @System
NetworkManager-team.x86_64 1:1.18.8-1.el7 @System
NetworkManager-tui.x86_64 1:1.18.8-1.el7
...
zziplib-utils.x86_64 0.13.62-12.el7 base
5、使用DNF列出所有安装的包
当"dnf list"命令显示来自所有仓库的所有可用的/安装的软件包。但,你使用"list installed"选择只列出安装的包。
[root@instance-z6rhwz8d ~]# dnf list installed
Installed Packages
GeoIP.x86_64 1.5.0-14.el7 @System
NetworkManager.x86_64 1:1.18.8-1.el7 @System
NetworkManager-libnm.x86_64 1:1.18.8-1.el7 @System
...
zlib.x86_64 1.2.7-18.el7 @System
6、使用DNF列出所有可用包
"list avallable"选项将列出来自所有使能的仓库可用于安装的所有包。
[root@instance-z6rhwz8d ~]# dnf list available
Last metadata expiration check: 16:41:17 ago on Tue 19 Jul 2022 09:02:35 PM CST.
Available Packages
0ad.x86_64 0.0.22-1.el7 epel
0ad-data.noarch 0.0.22-1.el7 epel
0install.x86_64 2.11-1.el7 epel
2048-cli.x86_64 0.9.1-1.el7 epel
2048-cli-nocurses.x86_64 0.9.1-1.el7 epel
2ping.noarch 3.2.1-2.el7 epel
389-admin.x86_64 1.1.46-4.el7 epel
...
7、使用DNF搜索包
如果你不知道你想要安装的包,在这种情况中,你可以预dnf命令一起使用'search'选项来搜索配置单词或字符串的包。
[root@instance-z6rhwz8d ~]# dnf search nano
Last metadata expiration check: 16:42:36 ago on Tue 19 Jul 2022 09:02:35 PM CST.
================================================================ Name Exactly Matched: nano =================================================================
nano.x86_64 : A small text editor
nano.x86_64 : A small text editor
=============================================================== Name & Summary Matched: nano ================================================================
nanomsg-doc.x86_64 : Documentation for nanomsg
nanomsg-devel.x86_64 : Development files for nanomsg
==================================================================== Name Matched: nano =====================================================================
nanomsg.x86_64 : Socket library that provides several common communication patterns
=================================================================== Summary Matched: nano ===================================================================
perl-Time-Clock.noarch : Twenty-four hour clock object with nanosecond precision
8、查看什么提供了一个文件/子包?
dnf选项"provides"查找提供特定文件/子包的包名。例如,如果你想要在你的系统上查找什么提供了"/bin/bash"。
[root@instance-z6rhwz8d ~]# dnf provides "/bin/bash"
Last metadata expiration check: 16:45:33 ago on Tue 19 Jul 2022 09:02:35 PM CST.
bash-4.2.46-35.el7_9.x86_64 : The GNU Bourne Again shell
Repo : @System
Matched from:
Provide : /bin/bashbash-4.2.46-34.el7.x86_64 : The GNU Bourne Again shell
Repo : base
Matched from:
Provide : /bin/bashbash-4.2.46-35.el7_9.x86_64 : The GNU Bourne Again shell
Repo : updates
Matched from:
Provide : /bin/bash
9、使用DNF获取一个包的详细情况
假设在系统上安装一个包前,你想知道它的信息,你使用"info"选项获取一个包的详细信息。
[root@instance-z6rhwz8d ~]# dnf info nano
Last metadata expiration check: 16:48:45 ago on Tue 19 Jul 2022 09:02:35 PM CST.
Installed Packages
Name : nano
Version : 2.3.1
Release : 10.el7
Arch : x86_64
Size : 1.6 M
Source : nano-2.3.1-10.el7.src.rpm
Repo : @System
Summary : A small text editor
URL : http://www.nano-editor.org
License : GPLv3+
Description : GNU nano is a small and friendly text editor.
10、用DNF安装一个包
要安装一个称为nano的包,只要运行以下命令,它将自动解析并且按照nano包所有i需要的依赖。
[root@instance-z6rhwz8d ~]# dnf install nano
Last metadata expiration check: 16:52:33 ago on Tue 19 Jul 2022 09:02:35 PM CST.
Dependencies resolved.
=============================================================================================================================================================Package Arch Version Repository Size
=============================================================================================================================================================
Installing:nano x86_64 2.3.1-10.el7 base 440 k
...Installed:nano-2.3.1-10.el7.x86_64Complete!
11、使用DNF更新一个包
你可以只更新一特定包并且保持在系统上所有东西不变。
[root@instance-z6rhwz8d ~]# dnf update systemd
Last metadata expiration check: 16:54:56 ago on Tue 19 Jul 2022 09:02:35 PM CST.
Dependencies resolved.
Nothing to do.
Complete!
12、使用DNF检查系统更新
检查被安装进系统的所有系统包的更新。
[root@instance-z6rhwz8d ~]# dnf check-update
Last metadata expiration check: 16:57:06 ago on Tue 19 Jul 2022 09:02:35 PM CST.NetworkManager.x86_64 1:1.18.8-2.el7_9 updates
NetworkManager-libnm.x86_64 1:1.18.8-2.el7_9 updates
NetworkManager-team.x86_64 1:1.18.8-2.el7_9 updates
NetworkManager-tui.x86_64 1:1.18.8-2.el7_9 updates
at.x86_64 3.1.13-25.el7_9 updates
13、使用DNF更新所有系统包
你可以用以下命令更新整个系统,包括所有安装的包。
[root@instance-z6rhwz8d ~]# dnf update
或
[root@instance-z6rhwz8d ~]# dnf upgrade
14、使用DNF移除/擦除一个包
要移除或者擦除任何不想要的包,你可以与dnf命令一起使用"remove"或"erase"选项来移除它。
[root@instance-z6rhwz8d ~]# dnf remove nano
Dependencies resolved.
==============================================================================================================Package Arch Version Repository Size
==============================================================================================================
Removing:nano x86_64 2.3.1-10.el7 @base 1.6 M
...
Removed:nano-2.3.1-10.el7.x86_64Complete!
15、使用DNF移除孤儿包
被安装来满足依赖关系的那些包,如果未被其它程序使用,它们是无用的。要移除那些孤儿包,执行以下命令。
[root@instance-z6rhwz8d ~]# dnf autoremove
Last metadata expiration check: 17:07:12 ago on Tue 19 Jul 2022 09:02:35 PM CST.
Dependencies resolved.
Nothing to do.
Complete!
16、使用DNF移除缓存的包
我们很多时候遇到了过时的头以及未完成的事务,在执行dnf时,这导致了错误。我们可以清除包含远程包信息的所有缓存的包和头。
[root@instance-z6rhwz8d ~]# dnf clean all
147 files removed
17、获取有关特定DNF命令的帮助
只要执行以下命令,你可以得到任何特定的DNF命令的帮助。
[root@instance-z6rhwz8d ~]# dnf help info
18、列出所有DNF命令和选项
要列出有关所有可用dnf命令和选项的帮助,只要输入。
[root@instance-z6rhwz8d ~]# dnf help
usage: dnf [options] COMMANDList of Main Commands:alias List or create command aliases
autoremove remove all unneeded packages that were originally installed as dependencies
check check for problems in the packagedb
check-update check for available package upgrades
clean remove cached data
deplist List package's dependencies and what packages provide them
distro-sync synchronize installed packages to the latest available versions
downgrade Downgrade a package
group display, or use, the groups information
help display a helpful usage message
history display, or use, the transaction history
info display details about a package or group of packages
install install a package or packages on your system
list list a package or groups of packages
makecache generate the metadata cache
mark mark or unmark installed packages as installed by user.
module Interact with Modules.
provides find what package provides the given value
reinstall reinstall a package
remove remove a package or packages from your system
repolist display the configured software repositories
repoquery search for packages matching keyword
repository-packages run commands on top of all packages in given repository
search search package details for the given string
shell run an interactive DNF shell
swap run an interactive dnf mod for remove and install one spec
updateinfo display advisories about packages
upgrade upgrade a package or packages on your system
upgrade-minimal upgrade, but only 'newest' package match which fixes a problem that affects your system
19、查看DNF历史
你可以调用dnf历史查看已经执行的dnf命令的列表。你用这种方式知道了带时间戳地安装/移除什么。
[root@instance-z6rhwz8d ~]# dnf history
ID | Command line | Date and time | Action(s) | Altered
-------------------------------------------------------------------------------4 | remove nano | 2022-07-20 14:06 | Removed | 1 <3 | update | 2022-07-20 14:00 | I, U | 121 >#2 | install nano | 2022-07-20 13:55 | Install | 11 | remove nano | 2022-07-20 13:55 | Removed | 1
20、列出所有包组
命令"dnf grouplist"将打印所有可用或安装地包,如果什么也没有提到,它将列出所有已知组。
[root@instance-z6rhwz8d ~]# dnf grouplist
Last metadata expiration check: 0:00:28 ago on Wed 20 Jul 2022 02:23:54 PM CST.
Available Environment Groups:Minimal InstallCompute NodeInfrastructure ServerFile and Print ServerCinnamon DesktopMATE DesktopBasic Web ServerVirtualization HostServer with GUIGNOME DesktopKDE Plasma WorkspacesDevelopment and Creative Workstation
Available Groups:CinnamonEducational SoftwareElectronic LabFedora PackagerGeneral Purpose DesktopHaskellLXQt DesktopMATEMilkymistTurboGears application frameworkXfceCompatibility LibrariesConsole Internet ToolsDevelopment ToolsGraphical Administration ToolsLegacy UNIX CompatibilityScientific SupportSecurity ToolsSmart Card SupportSystem Administration ToolsSystem Management
21、使用DNF安装一个包组
要按照一个捆绑在一起的包组为一个组包。
[root@instance-z6rhwz8d ~]# dnf groupinstall 'Educational Software'
Last metadata expiration check: 1:28:02 ago on Wed 20 Jul 2022 02:23:54 PM CST.
Dependencies resolved.
==============================================================================================================Package Arch Version Repository Size
==============================================================================================================
Installing Groups:Educational SoftwareTransaction Summary
==============================================================================================================Is this ok [y/N]: y
Complete!
22、更新一个组包
通过执行以下命令更新一个组包。
[root@instance-z6rhwz8d ~]# dnf groupupdate 'Educational Software'
Last metadata expiration check: 1:29:58 ago on Wed 20 Jul 2022 02:23:54 PM CST.
Dependencies resolved.
==============================================================================================================Package Arch Version Repository Size
==============================================================================================================
Installing Groups:Educational SoftwareTransaction Summary
==============================================================================================================Is this ok [y/N]: y
Complete!
23、移除一个组包
我们可以移除这个组包。
[root@instance-z6rhwz8d ~]# dnf groupremove 'Educational Software'
Dependencies resolved.
==============================================================================================================Package Arch Version Repository Size
==============================================================================================================
Removing Groups:Educational SoftwareTransaction Summary
==============================================================================================================Is this ok [y/N]: y
Complete!
24、从一个特定仓库安装一个包
DNF使得从一个repo(epel)安装任何特定包成为可能。
[root@instance-z6rhwz8d ~]# dnf --enablerepo=epel install phpmyadmin
25、同步安装的包到稳定发行版
命令"dnf distro-sync"将提供必要选项来同步所有安装的包到来自任何使能的仓库可用的最新稳定版本。如果没有选择包,同步所有安装的包。
[root@instance-z6rhwz8d ~]# dnf distro-sync
Last metadata expiration check: 1:49:18 ago on Wed 20 Jul 2022 02:23:54 PM CST.
Dependencies resolved.
Nothing to do.
Complete!
26、重新安装一个包
命令"dnf reinstall nano"将重新安装一个安装过的包。
[root@instance-z6rhwz8d ~]# dnf reinstall nano
27、降级一个包
如果可能,选项"downgrade"将降级指定名称的包到更低版本。
[root@instance-z6rhwz8d ~]# dnf downgrade acpid
Last metadata expiration check: 1:54:15 ago on Wed 20 Jul 2022 02:23:54 PM CST.
Package acpid of lowest version already installed, cannot downgrade it.
Error: No packages marked for downgrade.
在Linux中用于RPM包管理的‘DNF‘命令相关推荐
- linux-软件包管理及RPM包管理(rmp命令管理)
1.软件包分类: 源码包:脚本安装包 二进制包(RPM包,系统默认包) 源码包 优点: 开源,如果有足够的能力,可以修改源代码 可以自己选择所需 ...
- 分析linux系统的rpm -qa,全面讲解RedHat系Linux中的rpm包管理系统
在linux世界里流行两种包管理方式,分别是redhat系的rpm和debian系的deb.其中rpm的使用更为广泛,我打算接下来分多章详细介绍一下rpm的包管理机制. 包管理是操作系统用来维护各组件 ...
- 红帽Linux8:新一代rpm包管理器-dnf
一.简单介绍 rpm:快速安装.卸载.升级,减少编译安装的错误. yum:解决rpm安装时候软件包之间的依赖. dnf:功能和性能上升级了yum,yum和dnf命令上是可以完全互换.同时增加了模块和程 ...
- 在linux中安装rpm包
嘿嘿, 不多解释, 说怎么做吧. 终端中输入 sudo apt-get install alien, 然后输入 sudo alien -i xxx.rpm, 解决了.
- linux中卸载rpm包,linux卸载rpm包
Notes: DOM Range 通过DOM范围可以选择文档中的某个区域,而不需考虑节点的界限,例如文本高亮的处理就可以使用范围来实现. 1.Range的创建 使用document的createRan ...
- Linux 软件包管理器的目的是什么,Linux软件包的管理--RPM包管理器
在Linux中如何安装.升级.卸载软件,是我们日常运维中重要的组成部分.接下来一CentOS6系统为例,讲解如何使用 RPM 包管理器,yum包管理器以及源码的方式来管理我们的软件包. 一.相关的背景 ...
- 【Linux】15_软件管理RPM包管理
目录 RPM包 YUM工具的RPM包管理 RPM工具管理RPM包 RPM包 RPM(原Red Hat Package Manager,现在是一个递归缩写),由 Red Hat 公司提出,被众多 Lin ...
- 在裸linux(没有GCC,没有RPM包管理器,没有make命令,没有系统软件管理器如apt-get,zypper,yast等的情况下)安装部署软件的方法
在裸linux(没有GCC,没有RPM包管理器,没有make命令,没有系统软件管理器如apt-get,zypper,yast等的情况下) 安装部署rpm软件的方法之一 当在被极度裁剪的linux系统中 ...
- Linux之rpm包管理
rpm包管理 注意:内核不推荐升级,如果需要新版内核,可进行安装,linux可多版本内核共存,启动时进行内核选择即可,以免造成不稳定因素. /var/lib/rpm 不要破坏,几乎不可重建,重建后数据 ...
最新文章
- Transformer在CV领域有可能替代CNN吗?还有哪些应用前景?
- 如何使用Git提高研发团队工作效率?
- 还在担心工作被AI取代?不如掌握这门硬实力,抢占职场发展机遇
- java textfield类方法_java.awt.TextField类
- python能做什么项目-Python 的练手项目有哪些值得推荐?
- CNN(卷积神经网络)
- 【转】匈牙利命名法则
- python安装成功之后教程_python安装教程 Pycharm安装详细教程
- 完整详尽的解决MySql:Could not create connection to database server
- 冒险岛062mysql_冒险岛单机版062
- win10系统VirtualBox虚拟机安装
- oracle免安装和安装版区别,Oracle免安装客户端
- 洛谷 P1338 末日的传说
- 如何运用时间管理四象限法则去管理时间?
- BBS(仿博客园系统)项目03(主页搭建、个人站点搭建(侧边栏分类展示、标签展示、日期归档)、文章详情页相关功能实现)...
- 中学教学参考杂志中学教学参考编辑部中学教学参考杂志社2022年第18期目录
- CodeForces #549 Div.2 D. The Beatles
- 计算机课word排版课件,Word文档的排版ppt课件
- 第19讲 迭代电路与补码加减法
- Google世界第一机 T-Mobile G1全程评测