文章目录
- 15.1 搜索软件包
- 15.2 列出软件包清单
- 15.3 显示RPM包信息
- 15.4 安装RPM包
- 15.5 下载软件包
- 15.6 删除软件包
DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查询软件包信息,从指定软件库获取软件包,自动处理依赖关系以安装或卸载软件包,以及更新系统到最新可用版本。
说明:
- DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供的API。
- 使用DNF需要管理员权限,本章所有命令需要在管理员权限下执行。
使用dnf能够让您方便的进行查询、安装、删除软件包等操作。
15.1 搜索软件包
您可以使用rpm包名称、缩写或者描述搜索需要的RPM包,使用命令如下:
# dnf search term
示例如下:
[root@superman-21 ~]# dnf search lrzsz
================================================ Name Exactly Matched: lrzsz ================================================
lrzsz.x86_64 : Free x/y/zmodem implementation
lrzsz.src : Free x/y/zmodem implementation
=============================================== Name & Summary Matched: lrzsz ===============================================
lrzsz-debuginfo.x86_64 : Debug information for package lrzsz
lrzsz-debugsource.x86_64 : Debug sources for package lrzsz
[root@superman-21 ~]#
15.2 列出软件包清单
要列出系统中所有已安装的以及可用的RPM包信息,使用命令如下:
# dnf list all
例如示例命令如下:
[root@superman-21 ~]# dnf list all
OS 42 kB/s | 3.8 kB 00:00
everything 45 kB/s | 3.8 kB 00:00
EPOL 37 kB/s | 3.0 kB 00:00
debuginfo 44 kB/s | 3.8 kB 00:00
source 45 kB/s | 3.8 kB 00:00
update 40 kB/s | 3.5 kB 00:00
update 6.3 MB/s | 28 MB 00:04
Installed Packages
CUnit.x86_64 2.1.3-22.oe2203 @anaconda
ModemManager-glib.x86_64 1.14.8-1.oe2203 @anaconda
.
.
.
要列出系统中特定的RPM包信息,使用命令如下:
# dnf list glob_expression...
例如示例命令如下:
[root@superman-21 ~]# dnf list {httpd,lrzsz}
OS 41 kB/s | 3.8 kB 00:00
everything 45 kB/s | 3.8 kB 00:00
EPOL 37 kB/s | 3.0 kB 00:00
debuginfo 45 kB/s | 3.8 kB 00:00
source 40 kB/s | 3.8 kB 00:00
update 41 kB/s | 3.5 kB 00:00
Available Packages
httpd.src 2.4.51-5.oe2203 source
httpd.x86_64 2.4.51-9.oe2203 update
lrzsz.src 0.12.20-46.oe2203 source
lrzsz.x86_64 0.12.20-46.oe2203 OS
lrzsz.x86_64 0.12.20-46.oe2203 everything
[root@superman-21 ~]#
15.3 显示RPM包信息
要显示一个或者多个RPM包信息,使用命令如下:
# dnf info package_name...
例如示例命令如下:
[root@superman-21 ~]# dnf info httpd
Last metadata expiration check: 0:00:45 ago on 2022年12月08日 星期四 20时23分54秒.
Available Packages
Name : httpd
Version : 2.4.51
Release : 5.oe2203
Architecture : src
Size : 7.4 M
Source : None
Repository : source
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server.
Name : httpd
Version : 2.4.51
Release : 9.oe2203
Architecture : x86_64
Size : 1.3 M
Source : httpd-2.4.51-9.oe2203.src.rpm
Repository : update
Summary : Apache HTTP Server
URL : https://httpd.apache.org/
License : ASL 2.0
Description : Apache HTTP Server is a powerful and flexible HTTP/1.1 compliant web server.
[root@superman-21 ~]#
15.4 安装RPM包
要安装一个软件包及其所有未安装的依赖,请在root权限下执行如下命令:
# dnf install package_name
您也可以通过添加软件包名字同时安装多个软件包。配置文件/etc/dnf/dnf.conf添加参数strict=False,运行dnf命令参数添加–setopt=strict=0。请在root权限下执行如下命令:
# dnf install package_name package_name... --setopt=strict=0
例如示例命令如下:
[root@superman-21 ~]# dnf install httpd
Last metadata expiration check: 0:02:15 ago on 2022年12月08日 星期四 20时23分54秒.
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Installing:
httpd x86_64 2.4.51-9.oe2203 update 1.3 M
Installing dependencies:
apr x86_64 1.7.0-4.oe2203 OS 110 k
apr-util x86_64 1.6.1-12.oe2203 OS 110 k
httpd-filesystem noarch 2.4.51-9.oe2203 update 11 k
httpd-tools x86_64 2.4.51-9.oe2203 update 71 k
mariadb-connector-c x86_64 3.1.13-2.oe2203 update 179 k
mod_http2 x86_64 1.15.25-1.oe2203 OS 126 k
Transaction Summary
=============================================================================================================================
Install 7 Packages
Total download size: 1.9 M
Installed size: 6.2 M
Is this ok [y/N]: y
Downloading Packages:
(1/7): apr-util-1.6.1-12.oe2203.x86_64.rpm 520 kB/s | 110 kB 00:00
(2/7): mod_http2-1.15.25-1.oe2203.x86_64.rpm 571 kB/s | 126 kB 00:00
(3/7): apr-1.7.0-4.oe2203.x86_64.rpm 485 kB/s | 110 kB 00:00
.
.
.
Verifying : httpd-filesystem-2.4.51-9.oe2203.noarch 5/7
Verifying : httpd-tools-2.4.51-9.oe2203.x86_64 6/7
Verifying : mariadb-connector-c-3.1.13-2.oe2203.x86_64 7/7
Installed:
apr-1.7.0-4.oe2203.x86_64 apr-util-1.6.1-12.oe2203.x86_64 httpd-2.4.51-9.oe2203.x86_64
httpd-filesystem-2.4.51-9.oe2203.noarch httpd-tools-2.4.51-9.oe2203.x86_64 mariadb-connector-c-3.1.13-2.oe2203.x86_64
mod_http2-1.15.25-1.oe2203.x86_64
Complete!
[root@superman-21 ~]#
说明:
- 安装RPM包过程中,若出现安装失败,可参考安装时出现软件包冲突、文件冲突或缺少软件包导致安装失败。
- 请勿安装install-scipts软件包,该包仅用于imageTailor工具裁剪ISO时使用,若在openEuler系统上安装该软件包会导致系统无法启动。
15.5 下载软件包
使用dnf下载软件包,请在root权限下输入如下命令:
# dnf download package_name
例如示例命令如下:
[root@superman-21 ~]# dnf download lrzsz
Last metadata expiration check: 0:02:45 ago on 2022年12月08日 星期四 20时26分18秒.
lrzsz-0.12.20-46.oe2203.x86_64.rpm 396 kB/s | 83 kB 00:00
[root@superman-21 ~]#
[root@superman-21 ~]# ls
anaconda-ks.cfg lrzsz-0.12.20-46.oe2203.x86_64.rpm
[root@superman-21 ~]#
如果需要同时下载未安装的依赖,则加上–resolve,使用命令如下:
# dnf download --resolve package_name
示例如下:
[root@superman-21 ~]# dnf download --resolve httpd
Last metadata expiration check: 0:05:25 ago on 2022年12月08日 星期四 20时26分18秒.
[SKIPPED] httpd-2.4.51-9.oe2203.x86_64.rpm: Already downloaded
(2/7): httpd-filesystem-2.4.51-9.oe2203.noarch.rpm 107 kB/s | 11 kB 00:00
(3/7): httpd-tools-2.4.51-9.oe2203.x86_64.rpm 406 kB/s | 71 kB 00:00
(4/7): mod_http2-1.15.25-1.oe2203.x86_64.rpm 552 kB/s | 126 kB 00:00
(5/7): apr-1.7.0-4.oe2203.x86_64.rpm 716 kB/s | 110 kB 00:00
(6/7): apr-util-1.6.1-12.oe2203.x86_64.rpm 1.2 MB/s | 110 kB 00:00
(7/7): mariadb-connector-c-3.1.13-2.oe2203.x86_64.rpm 1.9 MB/s | 179 kB 00:00
[root@superman-21 ~]#
15.6 删除软件包
要卸载软件包以及相关的依赖软件包,请在root权限下执行如下命令:
# dnf remove package_name...
例如示例命令如下:
[root@superman-21 ~]# dnf remove lrzsz
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Removing:
lrzsz x86_64 0.12.20-46.oe2203 @OS 201 k
Transaction Summary
=============================================================================================================================
Remove 1 Package
Freed space: 201 k
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Erasing : lrzsz-0.12.20-46.oe2203.x86_64 1/1
Running scriptlet: lrzsz-0.12.20-46.oe2203.x86_64 1/1
Verifying : lrzsz-0.12.20-46.oe2203.x86_64 1/1
Removed:
lrzsz-0.12.20-46.oe2203.x86_64
Complete!
[root@superman-21 ~]#