DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查询软件包信息,从指定软件库获取软件包,自动处理依赖关系以安装或卸载软件包,以及更新系统到最新可用版本。
说明:
DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供的API。
使用DNF需要管理员权限,本章所有命令需要在管理员权限下执行。
1 配置DNF
1.1 DNF配置文件
DNF 的主要配置文件是 /etc/dnf/dnf.conf,该文件包含两部分:
“main”部分保存着DNF的全局设置。
“repository”部分保存着软件源的设置,可以有一个或多个“repository”。
另外,在/etc/yum.repos.d 目录中保存着一个或多个repo源相关文件,它们也可以定义不同的“repository”。
所以openEuler软件源的配置一般有两种方式,一种是直接配置/etc/dnf/dnf.conf文件中的“repository”部分,另外一种是在/etc/yum.repos.d目录下增加.repo文件。
1.1.1 配置main部分
/etc/dnf/dnf.conf 文件包含的“main”部分,配置示例如下:
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=True
skip_if_unavailable=False
常用选项说明:
表 1 main参数说明
1.1.2 配置repository部分
repository部分允许您定义定制化的openEuler软件源仓库,各个仓库的名称不能相同,否则会引起冲突。配置repository部分有两种方式,一种是直接配置/etc/dnf/dnf.conf文件中的“repository”部分,另外一种是配置/etc/yum.repos.d目录下的.repo文件。
-
直接配置/etc/dnf/dnf.conf文件中的“repository”部分
下面是[repository]部分的一个最小配置示例:
[repository]
name=repository_name
baseurl=repository_url
说明:openEuler提供在线的镜像源,地址:https://repo.openeuler.org/。以 openEuler 22.03的x86_64版本为例,baseurl可配置为https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/。选项说明:
表 2 repository参数说明
-
配置/etc/yum.repos.d目录下的.repo文件
openEuler提供了多种repo源供用户在线使用,各repo源含义可参考系统安装。使用root权限添加openEuler repo源,示例如下:
# vi /etc/yum.repos.d/openEuler.repo[OS]
name=openEuler-$releasever - OS
baseurl=https://repo.openeuler.org/openEuler-22.03/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=https://repo.openeuler.org/openEuler-22.03/OS/$basearch/RPM-GPG-KEY-openEuler
说明: enabled为是否启用该软件源仓库,可选值为1和0。默认值为1,表示启用该软件源仓库。
gpgkey为验证签名用的公钥。
1.1.3 显示当前配置
-
要显示当前的配置信息:
# dnf config-manager --dump例如示例命令如下
[root@superman-21 ~]# dnf config-manager --dump
=========================================================== main ============================================================
[main]
allow_vendor_change = 1
assumeno = 0
assumeyes = 0
autocheck_running_kernel = 1
bandwidth = 0
best = 1
bugtracker_url = https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=dnf
cachedir = /var/cache/dnf
cacheonly = 0
.
.
.
system_cachedir = /var/cache/dnf
throttle = 0
timeout = 30
transformdb = 1
tsflags =
upgrade_group_objects_upgrade = 1
user_agent = libdnf (openEuler 22.03; generic; Linux.x86_64)
username =
varsdir = /etc/yum/vars, /etc/dnf/vars
zchunk = 1
[root@superman-21 ~]# -
要显示相应软件源的配置,首先查询repo id:
# dnf repolist例如示例命令如下:
[root@superman-21 ~]# dnf repolist
repo id repo name
EPOL EPOL
OS OS
debuginfo debuginfo
everything everything
source source
update update
[root@superman-21 ~]#然后执行如下命令,显示对应id的软件源配置,其中 repository 为查询得到的repo id:
# dnf config-manager --dump repository例如示例命令如下:
[root@superman-21 ~]# dnf config-manager --dump OS
=================================== repo: OS ===================================
[OS]
bandwidth = 0
baseurl = http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/
cachedir = /var/cache/dnf
cost = 1000
countme = 0
deltarpm = 1
deltarpm_percentage = 75
enabled = 1
enabled_metadata =
enablegroups = 1
exclude =
excludepkgs =
fastestmirror = 0
gpgcheck = 1
gpgkey = http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
includepkgs =
ip_resolve = whatever
max_parallel_downloads = 3
mediaid =
metadata_expire = 172800
minrate = 1000
module_hotfixes = 0
name = OS
password =
priority = 99
protected_packages = dnf, dnf, sudo, systemd, systemd-udev, yum, dnf, sudo, systemd, systemd-udev, yum
proxy =
proxy_auth_method = any
proxy_sslcacert =
proxy_sslclientcert =
proxy_sslclientkey =
proxy_sslverify = 1
repo_gpgcheck = 0
retries = 10
skip_if_unavailable = 0
sslcacert =
sslclientcert =
sslclientkey =
sslverify = 1
sslverifystatus = 0
throttle = 0
timeout = 30
type =
user_agent = libdnf (openEuler 22.03; generic; Linux.x86_64)
username =
[root@superman-21 ~]# -
您也可以使用一个全局正则表达式,来显示所有匹配部分的配置:
# dnf config-manager --dump glob_expression例如示例命令如下:
[root@superman-21 ~]# dnf config-manager --dump | grep retries
retries = 10
[root@superman-21 ~]#
1.2 创建本地软件源仓库
要建立一个本地软件源仓库,请按照下列步骤操作。
-
安装createrepo软件包。在root权限下执行如下命令:
# dnf install createrepo例如示例命令如下:
[root@superman-21 ~]# dnf install createrepo
OS 42 kB/s | 3.8 kB 00:00
everything 43 kB/s | 3.8 kB 00:00
EPOL 31 kB/s | 3.0 kB 00:00
debuginfo 43 kB/s | 3.8 kB 00:00
source 43 kB/s | 3.8 kB 00:00
update 41 kB/s | 3.5 kB 00:00
update 5.4 MB/s | 28 MB 00:05
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
createrepo_c x86_64 0.17.6-1.oe2203 OS 137 k
Installing dependencies:
drpm x86_64 0.5.0-2.oe2203 update 60 k
Transaction Summary
================================================================================
Install 2 Packages
Total download size: 197 k
Installed size: 535 k
Is this ok [y/N]: y
Downloading Packages:
(1/2): drpm-0.5.0-2.oe2203.x86_64.rpm 320 kB/s | 60 kB 00:00
(2/2): createrepo_c-0.17.6-1.oe2203.x86_64.rpm 621 kB/s | 137 kB 00:00
--------------------------------------------------------------------------------
Total 879 kB/s | 197 kB 00:00
retrieving repo key for OS unencrypted from http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
OS 22 kB/s | 2.1 kB 00:00
Importing GPG key 0xB25E7F66:
Userid : "private OBS (key without passphrase)"
Fingerprint: 12EA 74AC 9DF4 8D46 C69C A0BE D557 065E B25E 7F66
From : http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler
Is this ok [y/N]: y
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : drpm-0.5.0-2.oe2203.x86_64 1/2
Installing : createrepo_c-0.17.6-1.oe2203.x86_64 2/2
Running scriptlet: createrepo_c-0.17.6-1.oe2203.x86_64 2/2
Verifying : createrepo_c-0.17.6-1.oe2203.x86_64 1/2
Verifying : drpm-0.5.0-2.oe2203.x86_64 2/2
Installed:
createrepo_c-0.17.6-1.oe2203.x86_64 drpm-0.5.0-2.oe2203.x86_64
Complete!
[root@superman-21 ~]# -
将需要的软件包复制到一个目录下,如/local_repo 。
[root@superman-21 ~]# cp /mnt/Packages/per* /local_repo/
[root@superman-21 ~]#
[root@superman-21 ~]# ls /local_repo/
perf-5.10.0-60.18.0.50.oe2203.x86_64.rpm
perftest-4.5-1.oe2203.x86_64.rpm
perl-5.34.0-3.oe2203.x86_64.rpm
perl-Algorithm-Diff-1.201-1.oe2203.noarch.rpm
perl-Archive-Tar-2.40-1.oe2203.noarch.rpm
perl-autodie-2.34-2.oe2203.noarch.rpm
perl-B-Debug-1.26-5.oe2203.noarch.rpm
perl-bignum-0.63-1.oe2203.noarch.rpm
perl-Bit-Vector-7.4-15.oe2203.x86_64.rpm
perl-Carp-1.50-418.oe2203.noarch.rpm
.
.
.
perl-XML-Parser-2.46-1.oe2203.x86_64.rpm
perl-XML-Parser-help-2.46-1.oe2203.noarch.rpm
perl-XML-SAX-1.02-1.oe2203.noarch.rpm
perl-XML-SAX-Base-1.09-7.oe2203.noarch.rpm
perl-XML-Simple-2.25-4.oe2203.noarch.rpm
perl-XML-Writer-0.900-1.oe2203.noarch.rpm
perl-XML-Writer-help-0.900-1.oe2203.noarch.rpm
perl-XML-XPath-1.44-1.oe2203.noarch.rpm
perl-YAML-LibYAML-0.82-2.oe2203.x86_64.rpm
[root@superman-21 ~]# -
创建软件源,执行以下命令:
# createrepo /local_repo例如示例命令如下:
[root@superman-21 ~]# createrepo /local_repo
Directory walk started
Directory walk done - 168 packages
Temporary output repo path: /local_repo/.repodata/
Preparing sqlite DBs
Pool started (with 5 workers)
Pool finished
[root@superman-21 ~]#
[root@superman-21 ~]# ls /local_repo/
perf-5.10.0-60.18.0.50.oe2203.x86_64.rpm
perftest-4.5-1.oe2203.x86_64.rpm
perl-5.34.0-3.oe2203.x86_64.rpm
.
.
.
perl-XML-Parser-2.46-1.oe2203.x86_64.rpm
perl-XML-Parser-help-2.46-1.oe2203.noarch.rpm
perl-XML-SAX-1.02-1.oe2203.noarch.rpm
perl-XML-SAX-Base-1.09-7.oe2203.noarch.rpm
perl-XML-Simple-2.25-4.oe2203.noarch.rpm
perl-XML-Writer-0.900-1.oe2203.noarch.rpm
perl-XML-Writer-help-0.900-1.oe2203.noarch.rpm
perl-XML-XPath-1.44-1.oe2203.noarch.rpm
perl-YAML-LibYAML-0.82-2.oe2203.x86_64.rpm
repodata
[root@superman-21 ~]#
1.3 添加、启用和禁用软件源
本节将介绍如何通过“dnf config-manager”命令添加、启用和禁用软件源仓库。
1.3.1 添加软件源
要定义一个新的软件源仓库,您可以在 /etc/dnf/dnf.conf 文件中添加“repository”部分,或者在/etc/yum.repos.d/目录下添加“.repo”文件进行说明。建议您通过添加“.repo”的方式,每个软件源都有自己对应的“.repo”文件,以下介绍该方式的操作方法。
要在您的系统中添加一个这样的源,请在root权限下执行如下命令,执行完成之后会在/etc/yum.repos.d/目录下生成对应的repo文件。其中 repository_url 为repo源地址,详情请参见表2。
# dnf config-manager --add-repo repository_url
例如示例命令如下:
[root@superman-21 ~]# dnf config-manager --add-repo /local_repo
添加仓库自:file:///local_repo
[root@superman-21 ~]#
1.3.2 禁用软件源
要禁用软件源,请在root权限下执行如下命令:
# dnf config-manager --set-disable repository
例如示例命令如下:
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
[root@superman-21 ~]# dnf config-manager --set-disable update
[root@superman-21 ~]#
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
同样的,您也可以使用一个全局正则表达式来禁用所有匹配的软件源:
# dnf config-manager --set-disable glob_expression
例如示例命令如下:
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
[root@superman-21 ~]# dnf config-manager --set-disable {source,update}
[root@superman-21 ~]#
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
1.3.3 启用软件源
要启用软件源,请在root权限下执行如下命令,其中 repository 为新增.repo文件中的repo id(可通过dnf repolist查询):
# dnf config-manager --set-enable repository
例如示例命令如下:
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
[root@superman-21 ~]# dnf config-manager --set-enable update
[root@superman-21 ~]#
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
您也可以使用一个全局正则表达式,来启用所有匹配的软件源。其中 glob_expression 为对应的正则表达式,用于同时匹配多个repo id:
# dnf config-manager --set-enable glob_expression
例如示例命令如下:
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=0
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
[root@superman-21 ~]# dnf config-manager --set-enable {source,update}
[root@superman-21 ~]#
[root@superman-21 ~]# cat /etc/yum.repos.d/openEuler.repo
#generic-repos is licensed under the Mulan PSL v2.
#You can use this software according to the terms and conditions of the Mulan PSL v2.
#You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
#THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
#IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
#PURPOSE.
#See the Mulan PSL v2 for more details.
[OS]
name=OS
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[everything]
name=everything
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler
[EPOL]
name=EPOL
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[debuginfo]
name=debuginfo
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler
[source]
name=source
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler
[update]
name=update
baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler
[root@superman-21 ~]#
2 管理软件包
使用dnf能够让您方便的进行查询、安装、删除软件包等操作。
2.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 ~]#
2.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 ~]#
2.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 ~]#
2.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系统上安装该软件包会导致系统无法启动。
2.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 ~]#
2.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 ~]#
3 管理软件包组
软件包集合是服务于一个共同的目的一组软件包,例如系统工具集等。使用dnf可以对软件包组进行安装/删除等操作,使相关操作更高效。
3.1 列出软件包组清单
使用summary参数,可以列出系统中所有已安装软件包组、可用的组,可用的环境组的数量,命令如下:
# dnf groups summary
例如示例命令如下:
[root@superman-21 ~]# dnf groups summary
Last metadata expiration check: 0:07:23 ago on 2022年12月08日 星期四 20时26分18秒.
Installed Groups: 2
Available Groups: 7
[root@superman-21 ~]#
要列出所有软件包组和它们的组ID ,命令如下:
# dnf group list
使用示例如下:
[root@superman-21 ~]# dnf groups summary
Last metadata expiration check: 0:07:23 ago on 2022年12月08日 星期四 20时26分18秒.
Installed Groups: 2
Available Groups: 7
[root@superman-21 ~]#
[root@superman-21 ~]#
[root@superman-21 ~]# dnf group list
Last metadata expiration check: 0:07:59 ago on 2022年12月08日 星期四 20时26分18秒.
Available Environment Groups:
最小安装
虚拟化主机
Installed Environment Groups:
服务器
Installed Groups:
容器管理
无图形终端系统管理工具
Available Groups:
开发工具
传统 UNIX 兼容性
网络服务器
科学记数法支持
安全性工具
系统工具
智能卡支持
[root@superman-21 ~]#
3.2 显示软件包组信息
要列出包含在一个软件包组中必须安装的包和可选包,使用命令如下:
# dnf group info glob_expression...
例如显示Development Tools信息,示例如下:
[root@superman-21 ~]# dnf group info "Development Tools"
Last metadata expiration check: 0:09:11 ago on 2022年12月08日 星期四 20时26分18秒.
Group: 开发工具
Description: 基本开发环境。
Mandatory Packages:
autoconf
automake
binutils
bison
flex
gcc
gcc-c++
gdb
gettext
glibc-devel
libtool
make
openEuler-rpm-config
patch
pkgconf
rpm
rpm-build
Default Packages:
asciidoc
byacc
ctags
diffstat
elfutils
gcc-gfortran
git
intltool
ltrace
patchutils
perl-Fedora-VSP
perl-generators
pesign
source-highlight
subversion
systemtap
valgrind
valgrind-devel
Optional Packages:
babel
chrpath
cmake
expect
gcc-objc
gcc-objc++
mercurial
mod_dav_svn
rpmdevtools
rpmlint
systemtap-sdt-devel
systemtap-server
[root@superman-21 ~]#
3.3 安装软件包组
每一个软件包组都有自己的名称以及相应的ID(groupid),您可以使用软件包组名称或它的ID进行安装。
要安装一个软件包组,请在root权限下执行如下命令:
# dnf group install group_name
# dnf group install groupid
例如安装Development Tools相应的软件包组,命令如下:
[root@superman-21 ~]# dnf group install "Development Tools"
Last metadata expiration check: 0:10:21 ago on 2022年12月08日 星期四 20时26分18秒.
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Upgrading:
cpp x86_64 10.3.1-11.oe2203 update 8.9 M
elfutils x86_64 0.185-13.oe2203 update 598 k
gcc x86_64 10.3.1-11.oe2203 update 29 M
glibc x86_64 2.34-79.oe2203 update 3.0 M
glibc-common x86_64 2.34-79.oe2203 update 3.6 M
glibc-devel x86_64 2.34-79.oe2203 .
.
.
noarch 7.5-24.oe2203 OS 15 M
Installing weak dependencies:
elfutils-extra x86_64 0.185-13.oe2203 update 227 k
gcc-gdb-plugin x86_64 10.3.1-11.oe2203 update 101 k
Installing Groups:
Development Tools
Transaction Summary
=============================================================================================================================
Install 82 Packages
Upgrade 13 Packages
Total download size: 136 M
Is this ok [y/N]: y
.
.
.
urw-base35-z003-fonts-20200910-1.oe2203.noarch utf8proc-2.6.1-3.oe2203.x86_64
valgrind-1:3.16.0-3.oe2203.x86_64 valgrind-devel-1:3.16.0-3.oe2203.x86_64
xorg-x11-font-utils-1:7.5-43.oe2203.x86_64 xorg-x11-fonts-7.5-24.oe2203.noarch
Complete!
[root@superman-21 ~]#
[root@superman-21 ~]# dnf group install development
Last metadata expiration check: 0:15:19 ago on 2022年12月08日 星期四 20时26分18秒.
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Installing group/module packages:
asciidoc noarch 9.0.4-1.oe2203 OS 246 k
autoconf noarch 2.71-2.oe2203 OS 663 k
automake noarch 1.16.5-3.oe2203 OS 460 k
byacc x86_64 2.0.20210808-1.oe2203 OS 62 k
ctags x86_64 5.8-28.oe2203 OS 121 k
diffstat x86_64 1.63-1.oe2203 OS 36 k
gcc-c++ x86_64 10.3.1-11.oe2203 .
.
.
OS 63 k
xorg-x11-font-utils x86_64 1:7.5-43.oe2203 OS 85 k
xorg-x11-fonts noarch 7.5-24.oe2203 OS 15 M
Installing weak dependencies:
gcc-gdb-plugin x86_64 10.3.1-11.oe2203 update 101 k
Installing Groups:
Development Tools
Transaction Summary
=============================================================================================================================
Install 70 Packages
Total download size: 79 M
Installed size: 259 M
Is this ok [y/N]: y
Downloading Packages:
(1/70): adobe-mappings-cmap-20190730-3.oe2203.noarch.rpm 102 kB/s | 15 kB 00:00
(2/70): apr-1.7.0-4.oe2203.x86_64.rpm 779 kB/s | 110 kB 00:00
(3/70): apr-util-1.6.1-12.oe2203.x86_64.rpm 830 kB/s | 110 kB 00:00
(4/70): adobe-mappings-pdf-20190401-2.oe2203.noarch.rpm 1.5 MB/s | 755 kB 00:00
.
.
.
rpm-build-4.17.0-14.oe2203.x86_64 source-highlight-3.1.9-2.oe2203.x86_64
subversion-1.14.1-2.oe2203.x86_64 urw-base35-fonts-20200910-1.oe2203.noarch
urw-base35-standard-symbols-ps-fonts-20200910-1.oe2203.noarch utf8proc-2.6.1-3.oe2203.x86_64
valgrind-1:3.16.0-3.oe2203.x86_64 valgrind-devel-1:3.16.0-3.oe2203.x86_64
xorg-x11-font-utils-1:7.5-43.oe2203.x86_64 xorg-x11-fonts-7.5-24.oe2203.noarch
Complete!
[root@superman-21 ~]#
3.4 删除软件包组
要卸载软件包组,您可以使用软件包组名称或它的ID,在root权限下执行如下命令:
# dnf group remove group_name
# dnf group remove groupid
例如删除Development Tools相应的软件包组,命令如下:
[root@superman-21 ~]# dnf group remove "Development Tools"
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Removing:
asciidoc noarch 9.0.4-1.oe2203 @OS 958 k
autoconf noarch 2.71-2.oe2203 @OS 3.1 M
automake noarch 1.16.5-3.oe2203 @OS 1.4 M
byacc x86_64 2.0.20210808-1.oe2203 @OS 132 k
ctags x86_64 5.8-28.oe2203 @OS 316 k
.
.
.
xorg-x11-font-utils x86_64 1:7.5-43.oe2203 @OS 355 k
xorg-x11-fonts noarch 7.5-24.oe2203 @OS 16 M
Removing Groups:
Development Tools
Transaction Summary
=============================================================================================================================
Remove 70 Packages
Freed space: 259 M
Is this ok [y/N]: y
.
.
.
rpm-build-4.17.0-14.oe2203.x86_64 source-highlight-3.1.9-2.oe2203.x86_64
subversion-1.14.1-2.oe2203.x86_64 urw-base35-fonts-20200910-1.oe2203.noarch
urw-base35-standard-symbols-ps-fonts-20200910-1.oe2203.noarch utf8proc-2.6.1-3.oe2203.x86_64
valgrind-1:3.16.0-3.oe2203.x86_64 valgrind-devel-1:3.16.0-3.oe2203.x86_64
xorg-x11-font-utils-1:7.5-43.oe2203.x86_64 xorg-x11-fonts-7.5-24.oe2203.noarch
Complete!
[root@superman-21 ~]#
[root@superman-21 ~]# dnf group remove development
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Removing:
asciidoc noarch 9.0.4-1.oe2203 @OS 958 k
autoconf noarch 2.71-2.oe2203 @OS 3.1 M
automake noarch 1.16.5-3.oe2203 @OS 1.4 M
byacc x86_64 2.0.20210808-1.oe2203 @OS 132 k
ctags x86_64 5.8-28.oe2203 @OS 316 k
.
.
.
x86_64 2.6.1-3.oe2203 @OS 339 k
xorg-x11-font-utils x86_64 1:7.5-43.oe2203 @OS 355 k
xorg-x11-fonts noarch 7.5-24.oe2203 @OS 16 M
Removing Groups:
Development Tools
Transaction Summary
=============================================================================================================================
Remove 70 Packages
Freed space: 259 M
Is this ok [y/N]: y
Running transaction check
.
.
.
Verifying : valgrind-1:3.16.0-3.oe2203.x86_64 67/70
Verifying : valgrind-devel-1:3.16.0-3.oe2203.x86_64 68/70
Verifying : xorg-x11-font-utils-1:7.5-43.oe2203.x86_64 69/70
Verifying : xorg-x11-fonts-7.5-24.oe2203.noarch 70/70
Removed:
adobe-mappings-cmap-20190730-3.oe2203.noarch adobe-mappings-cmap-lang-20190730-3.oe2203.noarch
adobe-mappings-pdf-20190401-2.oe2203.noarch apr-1.7.0-4.oe2203.x86_64
apr-util-1.6.1-12.oe2203.x86_64 asciidoc-9.0.4-1.oe2203.noarch
autoconf-2.71-2.oe2203.noarch automake-1.16.5-3.oe2203.noarch
boost-regex-1.78.0-11.oe2203.x86_64 byacc-2.0.20210808-1.oe2203.x86_64
.
.
.
rpm-build-4.17.0-14.oe2203.x86_64 source-highlight-3.1.9-2.oe2203.x86_64
subversion-1.14.1-2.oe2203.x86_64 urw-base35-fonts-20200910-1.oe2203.noarch
urw-base35-standard-symbols-ps-fonts-20200910-1.oe2203.noarch utf8proc-2.6.1-3.oe2203.x86_64
valgrind-1:3.16.0-3.oe2203.x86_64 valgrind-devel-1:3.16.0-3.oe2203.x86_64
xorg-x11-font-utils-1:7.5-43.oe2203.x86_64 xorg-x11-fonts-7.5-24.oe2203.noarch
Complete!
[root@superman-21 ~]#
4 检查并更新
dnf可以检查您的系统中是否有软件包需要更新。您可以通过dnf列出需要更新的软件包,并可以选择一次性全部更新或者只对指定包进行更新。
4.1 检查更新
如果您需要显示当前系统可用的更新,使用命令如下:
# dnf check-update
使用实例如下:
[root@superman-21 ~]# dnf check-update
Last metadata expiration check: 2:09:07 ago on 2022年12月08日 星期四 20时26分18秒.
NetworkManager.x86_64 1:1.32.12-12.oe2203 update
NetworkManager-config-server.noarch 1:1.32.12-12.oe2203 update
NetworkManager-libnm.x86_64 1:1.32.12-12.oe2203 update
acl.x86_64 2.3.1-2.oe2203 update
atk.x86_64 2.36.0-2.oe2203 update
atk-devel.x86_64 2.36.0-2.oe2203 update
augeas.x86_64 1.13.0-3.oe2203 update
authselect.x86_64 1.2.4-6.oe2203 update
bash.x86_64 5.1.8-6.oe2203 update
bc.x86_64 1.07.1-11.oe2203 update
bind-libs.x86_64 32:9.16.23-11.oe2203 update
bind-license.noarch 32:9.16.23-11.oe2203 update
bind-utils.x86_64 32:9.16.23-11.oe2203 update
.
.
.
grub2-tools.x86_64 1:2.06-3.oe2203 @anaconda
grub2-tools-minimal.x86_64 1:2.06-10.oe2203 update
grub2-tools.x86_64 1:2.06-3.oe2203 @anaconda
grub2-tools-minimal.x86_64 1:2.06-12.oe2203 update
grub2-tools.x86_64 1:2.06-3.oe2203 @anaconda
grub2-tools-minimal.x86_64 1:2.06-13.oe2203 update
grub2-tools.x86_64 1:2.06-3.oe2203 @anaconda
grub2-tools-minimal.x86_64 1:2.06-15.oe2203 update
grub2-tools.x86_64 1:2.06-3.oe2203 @anaconda
[root@superman-21 ~]#
4.2 升级
如果您需要升级单个软件包,在root权限下执行如下命令:
# dnf update package_name
例如升级rpm包,示例如下:
[root@superman-21 ~]# dnf update dnf-data-4.10.0-3.oe2203.noarch
Last metadata expiration check: 3:01:47 ago on 2022年12月08日 星期四 20时26分18秒.
Dependencies resolved.
Nothing to do.
Complete!
[root@superman-21 ~]#
类似的,如果您需要升级软件包组,在root权限下执行如下命令:
# dnf group update group_name
例如示例命令如下:
[root@superman-21 ~]# dnf group update development
Last metadata expiration check: 2:59:30 ago on 2022年12月08日 星期四 20时26分18秒.
No match for group package "mod_dav_svn"
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Upgrading Groups:
Development Tools
Transaction Summary
=============================================================================================================================
Is this ok [y/N]: y
Complete!
[root@superman-21 ~]#
4.3 更新所有的包和它们的依赖
要更新所有的包和它们的依赖,在root权限下执行如下命令:
# dnf update
例如示例命令如下:
[root@superman-21 ~]# dnf update
Last metadata expiration check: 3:02:21 ago on 2022年12月08日 星期四 20时26分18秒.
Dependencies resolved.
=============================================================================================================================
Package Architecture Version Repository Size
=============================================================================================================================
Upgrading:
NetworkManager x86_64 1:1.32.12-12.oe2203 update 2.2 M
NetworkManager-config-server noarch 1:1.32.12-12.oe2203 update 12 k
NetworkManager-libnm x86_64 1:1.32.12-12.oe2203 update 1.6 M
acl x86_64 2.3.1-2.oe2203 update 51 k
atk x86_64 2.36.0-2.oe2203 update 262 k
atk-devel x86_64 2.36.0-2.oe2203 update 196 k
augeas x86_64 1.13.0-3.oe2203 update 376 k
authselect x86_64 1.2.4-6.oe2203 update 189 k
bash x86_64 5.1.8-6.oe2203 update 1.2 M
bc x86_64 1.07.1-11.oe2203 update 89 k
bind-libs x86_64 32:9.16.23-11.oe2203 update 1.2 M
bind-license noarch 32:9.16.23-11.oe2203 update 18 k
.
.
.
zlib x86_64 1.2.11-22.oe2203 update 88 k
zlib-devel x86_64 1.2.11-22.oe2203 update 90 k
Installing group/module packages:
kernel x86_64 5.10.0-60.68.0.93.oe2203 update 55 M
Installing dependencies:
duktape x86_64 2.6.0-1.oe2203 update 143 k
grub2-tools-efi x86_64 1:2.06-15.oe2203 update 463 k
Transaction Summary
=============================================================================================================================
Install 3 Packages
Upgrade 243 Packages
Total download size: 214 M
Is this ok [y/N]: y
.
.
.
zlib-1.2.11-22.oe2203.x86_64
zlib-devel-1.2.11-22.oe2203.x86_64
Installed:
duktape-2.6.0-1.oe2203.x86_64 grub2-tools-efi-1:2.06-15.oe2203.x86_64 kernel-5.10.0-60.68.0.93.oe2203.x86_64
Complete!
[root@superman-21 ~]#
有什么吐槽或反馈意见,直接告诉我!
温馨提示:如出现二维码失效也可直接添加微信号:ysc13803862469。


