我们有一个Sonatype Nexus回购,我们用Maven RPM插件发布RPM。 快照和发行版本可用。 这里的问题是版本之间的映射。
首先,我获得了Nexus中的快照列表:
yum --showduplicates --disablerepo=* --enablerepo=snapshot list myrpm Loaded plugins: downloadonly, fastestmirror, security Loading mirror speeds from cached hostfile Available Packages myrpm.noarch 0.10.6-SNAPSHOT20141128065137 snapshot myrpm.noarch 0.10.6-SNAPSHOT20141128135713 snapshot myrpm.noarch 0.10.6-SNAPSHOT20141128170402 snapshot myrpm.noarch 0.10.6-SNAPSHOT20141201085055 snapshot
我想获取特定的版本,例如0.10.6-SNAPSHOT20141201085055:
yumdownloader --disablerepo=* --enablerepo=snapshot myrpm-0.10.6-SNAPSHOT20141201085055 Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile wpsnapshot | 3.3 kB 00:00 myrpm-0.10.6-20141201.091715-23-rpm.rpm | 10 MB 00:11
我的问题是,版本“SNAPSHOT20141201085055”与“20141201.091715-23”之间的映射是如何完成的?
yum存储库具有描述存储库中可用的每个包的XML元数据。 在你的仓库中,你可能有如下的东西:
<package type="rpm"> <name>myrpm</name> <version epoch="0" rel="SNAPSHOT20141201085055" ver="0.10.6"/> <!-- other fields here --> <location href="myrpm-0.10.6-20141201.091715-23-rpm.rpm"/> </package>
您可以通过检查存储库的元数据来validation这一点。 为此,首先需要存储库的URL,您可以在/etc/yum.repos.d/的适当文件中find存储库。
一旦你有了基本的URL,你可以在URL的末尾添加“/repodata/primary.xml.gz”。 确保用你的架构replace$basearch 。 然后,你可以curl该url,并通过pipe道来查看它。
例如,在我的系统上,我有我的自定义存储库的软件与这样的基本URL:
baseurl=https://packagecloud.io/joe/mystuff/el/6/$basearch
所以,要查看我的x86_64系统的primary.xml.gz ,我会运行这个:
curl -L https://packagecloud.io/joe/mystuff/el/6/x86_64/repodata/primary.xml.gz | zless