我正在尝试使用 Centos 8 下载软件包源dnf download --source
。为什么它对某些软件包有效,但对其他软件包却失败?有解决方法吗?
您可以在 docker 容器中测试它docker run -it centos:8
:
$ dnf install dnf-plugins-core
$ dnf download --source acl
acl-2.2.53-1.el8.src.rpm
$ dnf download --source audit-libs
No package audit-3.0-0.13.20190507gitf58ec40.el8.src available.
Exiting due to strict setting.
Error: No package audit-3.0-0.13.20190507gitf58ec40.el8.src available.
使用相同的结果yumdownloader --source
:
$ yum install yum-utils
$ yumdownloader --source acl
acl-2.2.53-1.el8.src.rpm
$ yumdownloader --source audit-libs
Last metadata expiration check: 0:00:16 ago on Fri May 8 18:38:13 2020.
No package audit-3.0-0.13.20190507gitf58ec40.el8.src available.
Exiting due to strict setting.
Error: No package audit-3.0-0.13.20190507gitf58ec40.el8.src available.
答案1
的源 RPMaudit-3.0-0.13.20190507gitf58ec40
不在存储库中。您可以在以下位置查看当前源 RPM:http://vault.centos.org/centos/8/BaseOS/Source/SPackages/,最新版本有audit-3.0-0.10.20180831git0047a6c
。
据报道,CentOS 8.1 存在源 RPM 未推送的问题https://lists.centos.org/pipermail/centos-devel/2020-April/036764.html。截至上周,这仍然是一个问题,据报道https://lists.centos.org/pipermail/centos-devel/2020-April/036809.html
您的源 RPM 位于https://koji.mbox.centos.org/koji/buildinfo?buildID=6229但由于某种原因你无法从那个 koji 下载 src.rpm(也在电子邮件列表中报告)。
如果您知道源 rpm 的工作原理,您可以在以下位置查看所有内容https://git.centos.org/rpms/audit/tree/af954e3e9ca986da31a5cbd9bb34af3a5bb3440a。如果需要,您可以克隆存储库并使用 git 获取所有文件。我通过查看得到了这一点https://git.centos.org/rpms/audit/releases。
答案2
我找到了一些解决方法。
1. 您可以使用 指定包的完整版本dnf download --source
。它仍然不适用于每个包,但对某些包有效。
$ dnf download --source acl-2.2.53-1.el8.src
2. 您可以从以下位置找到源rpmhttp://vault.centos.org/8.1.1911/BaseOS/Source/SPackages/ (或类似的 URL)。
例如,我可以acl-2.2.53-1.el8.src.rpm
从以下位置下载:
http://vault.centos.org/8.1.1911/BaseOS/Source/SPackages/acl-2.2.53-1.el8.src.rpm