我有一个作为虚拟机运行的 RHEL 操作系统,我的团队想要更新两个特定的 RPMS(代理/程序已安装,但版本已过时,因此我们想要更新)。
我在使用 yum 下载 RPM 时遇到问题(指向MyRepo.repo
目录中文件中的 jfrog 工件/etc/yum.repos.d
),我不断收到404 - Error not found errors
因此,我决定仅使用curl 并将RPM 手动下载到虚拟机。只有 (2) 个 RPM,一个名称类似my-prog-app-8.0.rpm
,另一个位于我创建的目录my-prog-libs-8.0.rpm
中。/root/rpms
现在,我唯一的问题是当我运行类似以下内容时:
yum update my-prog-app
or yum update my-prog-libs
,它每次都会失败,并出现以下错误:
failure: repodata/repomd.xml from MyRepo: [Errno 256] No more mirrors to try.
file:///root/rpms/repodata/repomd.xml: [Errno 14] curl#37 - "Couldn't open file /root/rpms/repodata/repomd.xml"
我不确定这个/repodata
目录或repomd.xml
它要查找的文件到底是什么。当我尝试使用 yum 通过指向MyRepo.repo
之前文件中的神器来下载 RPM 时,我确实看到了同样的错误。我想我现在会安全了,因为我本地有 RPM,它们在/etc/yum.repos.d
目录中定义为:
# cat /etc/yum.repos.d/MyRepo.repo
[MyRepo]
name=My Local Repo
baseurl=file:///root/rpms
enabled=1
gpgcheck=0
谁能告诉我我在这里可能做错了什么?这不可能是我的连接/防火墙问题,因为 RPM 已经安装/下载/位于该操作系统本地(位于/root/rpms
),对吧?
这是什么/repodata/repod.xml
?我怎样才能更新这(2)rpms?或者我打赌最好用它们进行全新安装或其他什么?
答案1
这是任何存储库都应该拥有的/repodata/repod.xml
主存储库元数据文件。yum
目前尚不清楚为什么您不直接通过rpm
或来安装更新下载的 RPM yum
,而是创建了一个存储库定义/etc/yum.repos.d/MyRepo.repo
。
为了使您的存储库正常工作,您必须使用createrepo /root/rpms
.这将在扫描.rpm
目录中的文件后创建存储库元数据。
然后您的本地存储库将可供使用yum
。
答案2
明白了这一点。需要指向/repodata/repomd.xml/
文件所在的baseurl。