如何从 Fedora 上的 DNF 缓存目录名称中删除十六进制后缀?

如何从 Fedora 上的 DNF 缓存目录名称中删除十六进制后缀?

DNF 使用如下标记的缓存目录:

/var/cache/dnf/fedora-d174f3c3f2691dd5
/var/cache/dnf/updates-d28e3be95240972f

如何配置DNF不添加唯一标识符?

使用 YUM,我将所包含的包目录符号链接到本地​​服务器上的某个位置。在我的几次安装中执行此操作意味着我只需要下载一次更新的软件包,然后在所有安装中安装它。

我可以对 DNF 包目录进行符号链接,但每隔几个月,DNF 就会创建一个新的唯一 ID,这意味着我需要再次用符号链接替换所有包目录。

答案1

由于dnf是用 python 编写的,因此您可以查看源代码以找到此唯一标识符的用途。在/usr/lib/python2.7/site-packages/dnf/repo.pyclassRepo方法中,cachedir()您可以看到 id 被计算为用于检索存储库的 url 的 sha256 哈希值:

digest = hashlib.sha256(url.encode('utf8')).hexdigest()[:16]

如果您/etc/yum.repos.d/fedora.repo有一个典型的配置,例如

metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch

那么当发布版本发生变化时,哈希值也会发生变化$releasever,例如从 fedora 22 到 23,这种情况并不常见。这允许 dnf 保留特定于某个版本的缓存,因此您可能不希望为缓存保留相同的名称。

相关内容