配置 DNF
修改配置文件
DNF 的主要配置文件是 /etc/dnf/dnf.conf,该文件中 “main” 部分保存着 DNF 的全局设置;用户可以在该文件中通过添加一个或者多个 “repository” 部分的方式来设置需要安装的软件源位置。
另外,在 /etc/yum.repos.d 目录中保存着一个或多个 repo 源相关文件,它们定义了不同的 “repository”。
软件源的配置一般有两种方式,一种是直接配置 /etc/dnf/dnf.conf 文件,另外一种是在 /etc/yum.repos.d 目录下增加 .repo 文件。
修改 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,不建议降低此值。 |
修改 repository 部分
repository 部分允许您定义定制化的软件源仓库,各个仓库的名称不能相同,否则会引起冲突。下面是[repository]部分的一个最小配置示例:
[repository]
name=repository_name
baseurl=repository_url
选项说明:
表 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 |
显示当前配置
要显示当前的配置信息:
dnf config-manager --dump
要显示相应软件源的配置,首先查询 repo id:
dnf repolist
然后执行如下命令,显示对应id的软件源配置,其中 repository 为查询得到的 repo id:
dnf config-manager --dump repository
您也可以使用一个全局正则表达式,来显示所有匹配部分的配置:
dnf config-manager --dump glob_expression
创建本地软件源仓库
要建立一个本地软件源仓库,请按照下列步骤操作。
安装 ceaterepo 软件包。在 root 权限下执行如下命令:
dnf install createrepo
将需要的软件包复制到一个目录下,如 /mnt/local_repo/。
创建软件源,执行以下命令:
createrepo --database /mnt/local_repo
添加、启用和禁用软件源
本节将介绍如何通过 “dnf config-manager” 命令添加、启用和禁用软件源仓库。
添加软件源
要定义一个新的软件源仓库,您可以在 /etc/dnf/dnf.conf 文件中添加 “repository” 部分,或者在 /etc/yum.repos.d/ 目录下添加 “.repo” 文件进行说明。建议您通过添加 “.repo” 的方式,每个软件源都有自己对应的 “.repo” 文件,以下介绍该方式的操作方法。
要在您的系统中添加一个这样的源,请在 root 权限下执行如下命令,执行完成之后会在 /etc/yum.repos.d/ 目录下生成对应的 repo文件。其中 repository_url 为 repo 源地址,详情请参见“使用DNF管理软件包 > 配置 DNF ”章节中的 “repository 参数说明”。
dnf config-manager --add-repo repository_url
启用软件源
要启用软件源,请在 root 权限下执行如下命令,其中 repository 为新增 .repo 文件中的 repo id(可通过 dnf repolist 查询):
dnf config-manager --set-enable repository
您也可以使用一个全局正则表达式,来启用所有匹配的软件源。其中 glob_expression 为对应的正则表达式,用于同时匹配多个 repo id:
dnf config-manager --set-enable glob_expression
禁用软件源
要禁用软件源,请在 root 权限下执行如下命令:
dnf config-manager --set-disable repository
同样的,您也可以使用一个全局正则表达式来禁用所有匹配的软件源:
dnf config-manager --set-disable glob_expression