openEuler 22.03-LTS 使用DNF管理软件包

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 创建本地软件源仓库

要建立一个本地软件源仓库,请按照下列步骤操作。

  1. 安装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 ~]#
  2. 将需要的软件包复制到一个目录下,如/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 ~]#
  3. 创建软件源,执行以下命令:

    # 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 升级

  1. 如果您需要升级单个软件包,在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 ~]#
  1. 类似的,如果您需要升级软件包组,在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


请使用浏览器的分享功能分享到微信等