14 openEuler DNF(YUM)配置管理

2023-11-05


DNF是一款Linux软件包管理工具,用于管理RPM软件包。DNF可以查询软件包信息,从指定软件库获取软件包,自动处理依赖关系以安装或卸载软件包,以及更新系统到最新可用版本。

image-20221207200634543说明:

  • DNF与YUM完全兼容,提供了YUM兼容的命令行以及为扩展和插件提供的API。
  • 使用DNF需要管理员权限,本节所有命令需要在管理员权限下执行。

14.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文件。

14.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参数说明

参数 说明
cachedir 缓存目录,该目录用于存储RPM包和数据库文件。
keepcache 可选值是1和0,表示是否要缓存已安装成功的那些RPM包及头文件,默认值为0,即不缓存。
debuglevel 设置dnf生成的debug信息。取值范围:[0-10],数值越大会输出越详细的debug信息。默认值为2,设置为0表示不输出debug信息。
clean_requirements_on_remove 删除在dnf remove期间不再使用的依赖项,如果软件包是通过DNF安装的,而不是通过显式用户请求安装的,则只能通过clean_requirements_on_remove删除软件包,即它是作为依赖项引入的。 默认值为True。
best 升级包时,总是尝试安装其最高版本,如果最高版本无法安装,则提示无法安装的原因并停止安装。默认值为True。
obsoletes 可选值1和0,设置是否允许更新陈旧的RPM包。默认值为1,表示允许更新。
gpgcheck 可选值1和0,设置是否进行gpg校验。默认值为1,表示需要进行校验。
plugins 可选值1和0,表示启用或禁用dnf插件。默认值为1,表示启用dnf插件。
installonly_limit 设置可以同时安装“installonlypkgs”指令列出包的数量。默认值为3,不建议降低此值。

14.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
    

    img 说明:
    openEuler提供在线的镜像源,地址:https://repo.openeuler.org/。以 openEuler 22.03的x86_64版本为例,baseurl可配置为https://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/。

    选项说明:

    表 2 repository参数说明

    参数 说明
    name=repository_name 软件仓库(repository )描述的字符串。
    baseurl=repository_url 软件仓库(repository )的地址。使用http协议的网络位置:例如 http://path/to/repo使用ftp协议的网络位置:例如 ftp://path/to/repo本地位置:例如 file:///path/to/local/repo
  • 配置/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
    

    img 说明:

    • enabled为是否启用该软件源仓库,可选值为1和0。默认值为1,表示启用该软件源仓库。
    • gpgkey为验证签名用的公钥。

14.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 ~]# 
    

14.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) <defaultkey@localobs>"
     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 ~]# 
    

14.3 添加、启用和禁用软件源

本节将介绍如何通过“dnf config-manager”命令添加、启用和禁用软件源仓库。

14.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 ~]# 

14.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 ~]# 

14.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 ~]# 

image-20230214213849074

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

14 openEuler DNF(YUM)配置管理 的相关文章

  • vmsplice() 和 TCP

    在原来的vmsplice 执行 有人建议 http lwn net Articles 181169 如果您的用户态缓冲区是管道中可容纳的最大页面数的 2 倍 则缓冲区后半部分成功的 vmsplice 将保证内核使用缓冲区的前半部分完成 但事
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • tcpdump 是否受 iptables 过滤影响?

    如果我的开发机器有iptables规则到FORWARD一些数据包 这些数据包是否被 tcpdump 捕获 我有这个问题 因为我知道存在其他链称为INPUT如果数据包路由到 它会过滤发往应用程序的数据包FORWARD链 它会到达吗tcpdum
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 如何阻止ubuntu在使用apt安装或更新软件包时弹出“Daemons using outdatedlibraries”? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我最近新安装了 Ubuntu 22 04 LTS 我发现每次使用 apt 安装或更新软件包时 它都会询问我有关Which servic
  • 从 ttyUSB0 写入和读取,无法得到响应

    我对 Linux tty 不太有经验 我的环境是带有丰富 USB 串行的 Raspbian 什么有效 stty F dev ttyUSB0 38400 cu l dev ttyUSB0 s 38400 cu to dev ttyUSB0作品
  • GMail 421 4.7.0 稍后重试,关闭连接

    我试图找出为什么它无法使用 GMail 从我的服务器发送邮件 为此 我使用 SwiftMailer 但我可以将问题包含在以下独立代码中
  • 使用非规范地址检索内存数据会导致 SIGSEGV 而不是 SIGBUS

    我无法使用以下汇编代码产生 总线错误 这里我使用的内存地址不是合法的 规范地址 那么 我怎样才能触发该错误呢 我在带有 NASM 2 14 02 的 Ubuntu 20 04 LTS 下运行这段代码 但它会导致负载出现 SIGSEGV 分段
  • 添加文件时运行 shell 命令

    我的 Linux 机器上有一个名为 images 的文件夹 该文件夹连接到一个网站 该网站的管理员可以向该网站添加图片 但是 当添加图片时 我想要一个命令来运行调整目录中所有图片的大小 简而言之 我想知道当新文件添加到特定位置时如何使服务器
  • 如何获取 (Linux) 机器的 IP 地址?

    这个问题和之前问的几乎一样如何获取本地计算机的IP地址 https stackoverflow com questions 122208 get the ip address of local computer 问题 但是我需要找到一个的I
  • .net-core:ILDASM / ILASM 的等效项

    net core 是否有相当于 ILDASM ILASM 的功能 具体来说 我正在寻找在 Linux 上运行的东西 因此为什么是 net core ildasm 和 ilasm 工具都是使用此存储库中的 CoreCLR 构建的 https
  • Bash - 在与当前终端分开的另一个终端中启动命令的新实例

    我有一个简单的 bash 脚本 test sh 设置如下 bin bash args if args 0 check capture then watch n 1 ls lag home user capture0 watch n 1 ls
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • C修改printf()输出到文件

    有没有办法修改printf为了将字符串输出到文件而不是控制台 我尝试在互联网上查找一些内容 发现了类似的电话dup dup2 and fflush这可能与此有关 EDIT 也许我不清楚 问题是这是C考试问题 问题如下 解释一个通常将字符串输
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 我什么时候应该编写 Linux 内核模块?

    有些人出于某种原因想要将 Linux 中的代码从用户空间移动到内核空间 很多时候 原因似乎是代码应该具有特别高的优先级 或者只是 内核空间更快 这对我来说似乎很奇怪 我什么时候应该考虑编写内核模块 有一套标准吗 我怎样才能激励将代码保存在
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设

随机推荐

  • More Effective C++

    链接 https pan baidu com s 1oIns7Z7CWD6zAz17IFImWw 提取码 4stq Scott Meyers大师Effective三部曲 Effective C More Effective C Effect
  • C/C++编程笔记:C++中的指针与引用,又在什么时候使用?

    C和C 支持与大多数其他编程语言不同的指针 其他语言包括C Java Python Ruby Perl和PHP 从表面上看 引用和指针非常相似 都用于使一个变量提供对另一变量的访问 两者都提供了许多相同的功能 因此通常不清楚这些不同机制之间
  • 8086/8088的寻址方式

    根据操作数所在位置将寻址方式分为 立即寻址 寄存器寻址 存储器寻址 I O端口寻址 立即寻址 操作数位于指令区 代码段 如 Mov dx 2100H Mov AX A 源操作数不能超过目的操作数的表数范围 必须符合数据类型相匹配的原则 立即
  • 多数CEO预计受疫情影响未来半年收入将下降;上海国际酒店投资加盟展将延期

    全球抗击新冠疫情 关于COVID 19商业影响的新YPO行政总裁全球调查发布 由130个国家超过29000位首席执行官组成的全球领导力社区YPO进行了一项全会员调查 以了解COVID 19的商业影响 了解首席执行官由于这一新的商业现实而采取
  • CSDN博客修改不了头像的最新解决方法

    自己的博客不能改头像 清理缓存 换IE浏览器 都不行 以前有类似经历 可以在手机APP上修改头像 然后自动同步了 下载 CSDN APP 左上角 个人中心 点击 头像 修改就好了 我修改后没立即出来 延迟可能
  • C + + 使用小括号/大括号直接赋值,又叫列表初始化。简介

    C 使用小括号 大括号直接赋值 又叫列表初始化 简介 C 可以使用 小括号 大括号 直接赋值 并且 兼容了 C风格 的等号 赋值 C 使用小括号 大括号直接赋值 又叫列表初始化 简介 C 中 我们可以使用小括号直接赋值的方式 将多个值赋给一
  • Vue中使用动画

    在Vue中使用动画效果 1 使用transition标签包裹需要动画显示的内容 1 1 默认名的方式
  • java并发编程笔记(五)--共享模型之无锁

    1 无锁解决线程安全问题 就是使用CAS 利用乐观锁的不断确认 来保证线程安全 乐观锁时原子系列类的方法 使用的时候需要创建原子系列对象 创建原子整数对象 AtomicInteger balance new AtomicInteger 举个
  • 《重构 改善既有代码的设计 1》重构原则

    前言 重构 既有代码的设计 一本经典神书 两年前入手 一年前看了一半 感觉一般般 今天起 再次拜读 希望会有不一样的收获 startTime 2020 12 16 23 22 endTime 2020 12 16 23 59 startPa
  • 猜你喜欢-----推荐系统原理介绍

    写在正文之前 最近在做推荐系统 在项目组内做了一个分享 今天有些时间 就将逻辑梳理一遍 将ppt内容用文字沉淀下来 便于接下来对推荐系统的进一步研究 推荐系统确实是极度复杂 要走的路还很长 A First Glance 为什么需要推荐系统
  • Error:Cannot build artifact xxx:war exploded‘ because it is included into a circular dependency

    IDEA 项目报错 Error Cannot build artifact xxx war exploded because it is included into a circular dependency 解决 ctrl alt shi
  • unity android 在后台运行_Unity学习—资源管理概览

    本文介绍了 Unity 常用四种默认路径 以及 AssetDataBase Resources AssetBundle 和目前最新的 Addressable 四种资源管理方式 文中所有 API 均以版本 2019 3 为准 本文原地址 Un
  • 使用vue-json-viewer实现高亮展示、折叠和复制json数据

    最近项目上有个需求 就是在前端显示json格式的数据 并且提供展开和收起的按钮 先看一下最终完成的效果吧 在这里我使用了vue json viewer这个组件来实现这个效果 这个组件主要能实现高亮 json折叠和copy功能 能满足项目需求
  • Windows下的Memcache安装

    很多phper不知道如何在Windows下搭建Memcache的开发调试环境 最近个人也在研究Memcache 记录下自己安装搭建的过程 其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西
  • 【Matlab】数据插值

    数据插值 插值与拟合的区别 实现方法 插值要求曲线穿过样本点 而拟合不需要穿过样本点 只要求总体误差最小 结果形式 插值是分段逼近样本点 没有同一的逼近函数 函数拟合则用一个函数去逼近 有完整的表达式 侧重点 插值可以用于估计区间内某些点对
  • java实现webdav服务_访问WebDAV服务

    输入用户名和密码即可登录入服务器 使用类似ftp的命令就可以操作服务器上的文件 使用h命令可列出所有的命令 dav gt hAvailable commands ls cd pwd put get mget mput edit less m
  • LD 浅析 转

    原文地址 http www cnblogs com cjjnjust articles 1617086 html LD 浅析 转 本文乃转载 原作者的E mail是zhanglei sict ac cn 完成于2005 11 5 2005
  • Java之继承与多态

    目录 一 继承 1 为什么需要继承 2 继承概念 3 继承的语法 4 父类成员访问 1 子类中访问父类的成员变量 2 子类中访问父类的成员方法 5 super关键字 6 子类构造方法 7 super和this 8 再谈初始化 9 prote
  • 互联网的两大组成及其特点

    1 互联网由两大部分组成 边缘部分及其核心部分 2 边缘部分 主要由连接在互联网上的主机组成 这部分是直接与用户相连的 在边缘部分主要的活动是两个主机之间的通信 其通信方式可以分为两类 1 客户 服务器方式 就是客户机向服务器请求服务器 客
  • 14 openEuler DNF(YUM)配置管理

    文章目录 14 1 DNF配置文件 14 1 1 配置main部分 14 1 2 配置repository部分 14 1 3 显示当前配置 14 2 创建本地软件源仓库 14 3 添加 启用和禁用软件源 14 3 1 添加软件源 14 3