仮想マシンとして実行されているRHEL OSがあり、私たちのチームは2つの特定のRPMSを更新しようとしています(エージェント/プログラムがインストールされていますが、バージョンが古くて更新したい)。
MyRepo.repo
yum(ディレクトリ内のファイルのjfrogアーティファクトを指す/etc/yum.repos.d
)を使用してRPMをダウンロードするのに問題があります。404 - Error not found errors
だから私はカールを使って手動でRPMを仮想マシンにダウンロードすることにしました。同じ名前のRPMが2つあり、my-prog-app-8.0.rpm
1つは私が作成したディレクトリにあります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を使用してRPMをダウンロードしようとすると、MyRepo.repo
同じエラーが表示されます。ローカルに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はすでにそのOSにインストール/ダウンロード/ローカルであるため、接続/ファイアウォールに問題はありません/root/rpms
。そうですか?
これは何ですか/repodata/repod.xml
?この(2)rpmをどのように更新できますか?それとも、新しくインストールする方が良いと思いますか?
答え1
これは、すべてのリポジトリに存在する必要があるデフォルトのリポジトリ/repodata/repod.xml
メタデータファイルです。yum
rpm
ダウンロードしたRPMを介して直接アップデートをインストールせずに、代わりにyum
リポジトリ定義を作成する理由はわかりません/etc/yum.repos.d/MyRepo.repo
。
リポジトリが正しく機能するには、を使用する必要がありますcreaterepo /root/rpms
。これにより、.rpm
ディレクトリ内のファイルをスキャンした後にストレージメタデータが作成されます。
その後、ローカルストレージを使用できますyum
。
答え2
わかりました。/repodata/repomd.xml/
ファイルがあるbaseurlを指す必要があります。