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)配置管理 的相关文章

  • Linux 上的 RTLD_LOCAL 和dynamic_cast

    我们有一个由应用程序中的一些共享库构成的插件 我们需要在应用程序运行时更新它 出于性能原因 我们在卸载旧插件之前加载并开始使用新插件 并且只有当所有线程都使用旧插件完成后 我们才卸载它 由于新插件和旧插件的库具有相同的符号 我们dlopen
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有
  • 在 Ubuntu 中找不到 X11/Xlib.h

    我试图在 Linux 上使用 open gl 编写一个相当简单的程序 但在编译时它说 编译拇指 egl 我对 GL 完全陌生 不知道出了什么问题 快速搜索使用 apt search Xlib h 打开 libx11 dev 包 但纯 Ope
  • 使用 posix_spawn 启动进程

    我正在使用以下代码在 Linux 中启动新进程 pid t processID char argV 192 168 1 40 char 0 int status 1 status posix spawn processID home use
  • 如何使用 echo 写入非 ASCII 字符?

    如何写非ASCII http en wikipedia org wiki ASCII使用 echo 的字符 是否有转义序列 例如 012或类似的东西 我想使用以下方法将 ASCII 字符附加到文件中 echo gt gt file 如果您关
  • 如何访问 mmaped /dev/mem 而不导致 Linux 内核崩溃?

    我有一个简单的程序 尝试访问用户空间中的物理内存 其中内核存储第一个结构页 在 64 位机器上 该地址是 内核虚拟地址 ffffea0000000000 物理地址 0000620000000000 我正在尝试通过用户空间中的 mmap 访问
  • 如何在gnuplot中将字符串转换为数字

    有没有办法将表示数字 以科学格式 的字符串转换为 gnuplot 中的数字 IE stringnumber 1 0e0 number myconvert stringnumber plot 1 1 number 我可能使用 shell 命令
  • 在 Docker 容器中以主机用户身份运行

    在我的团队中 我们在进行开发时使用 Docker 容器在本地运行我们的网站应用程序 假设我正在开发 Flask 应用程序app py具有依赖关系requirements txt 工作流程大致如下 I am robin and I am in
  • 如何重命名 .tar.gz 文件而不提取内容并在 UBUNTU 中创建新的 .tar.gz 文件?

    我有一个命令将创建一个新的 tar gz现有文件中的文件 sudo tar zcvf Existing tar gz New tar gz 该命令将创建一个新的New tar gz从现有的文件Existing tar gz file 谁能告
  • XAMPP Windows 上的 Php Cron 作业

    嗯 我是这个词的新手CRON 据我所知 这是一个Unix安排特定操作在定义的时间间隔后执行的概念 我需要运行一个php文件 每小时更新一次数据库 但我的困惑在于安排执行 我在用XAMPP用于 Windows 7 上的本地开发测试 我发现了什
  • 使用 ProcessBuilder 运行 shell 脚本

    我正在尝试使用 Java 和 ProcessBuilder 运行脚本 当我尝试运行时 我收到以下消息 error 2 没有这样的文件或目录 我不知道我做错了什么 但这是我的代码 ps 我尝试只执行不带参数的脚本 错误是相同的 String
  • Python将文件从Linux复制到WIndows

    我正在构建一个网站 该网站有一个表单 可以捕获用户数据并在用户数据上运行一些cgi cgi 的第一步是需要将文件从 Linux Web 服务器复制到 Windows 计算机 服务器将使用 Active Directory 角色帐户作为复制凭
  • 使用c在linux上分块读写

    我有一个 ASCII 文件 其中每一行都包含一个可变长度的记录 例如 Record 1 15 characters Record 2 200 characters Record 3 500 characters Record n X cha
  • 如何反汇编、修改然后重新组装 Linux 可执行文件?

    无论如何 这可以做到吗 我使用过 objdump 但它不会产生我所知道的任何汇编器都可以接受的汇编输出 我希望能够更改可执行文件中的指令 然后对其进行测试 我认为没有任何可靠的方法可以做到这一点 机器代码格式非常复杂 比汇编文件还要复杂 实
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • 用于时间线数据的类似 gnuplot 的程序

    我正在寻找一个类似 gnuplot用于在时间轴中绘制数据图表的程序 类似 gnuplot 在 Linux 上运行 命令行功能 GUI 对我帮助不大 可编写脚本的语法 输出为 jpg png svg 或 gif 输出应该是这样的 set5 s
  • 了解 Linux oom-killer 日志

    我的应用程序被 oom killer 杀死了 它是在实时 USB 上运行的 Ubuntu 11 10 无需交换 PC 具有 1 Gig 的 RAM 唯一运行的应用程序 除了所有内置的 Ubuntu 东西 是我的程序 flasherav 请注
  • Ctrl-p 和 Ctrl-n 在 Docker 下表现异常

    For the life of me I can t seem to figure out why ctrl p and ctrl n don t work like they re supposed to under the Docker
  • php_network_getaddresses: getaddrinfo 失败: 名称或服务未知 (0) 连接失败..!

    我正在使用 php 邮件程序功能 但出现以下错误 如何修复它 2016 01 22 06 15 48 SMTP 错误 无法连接到服务器 php network getaddresses getaddrinfo失败 名称或服务未知 0 连接失
  • 为什么 call_usermodehelper 大多数时候都会失败?

    从内核模块中 我尝试使用 call usermodehelper 函数来执行可执行文件 sha1 该可执行文件将文件作为参数并将文件的 SHA1 哈希和写入另一个文件 名为输出 可执行文件完美运行 int result 1 name hom

随机推荐

  • 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