
本当に奇妙な問題があります。プライベート yum リポジトリをセットアップしましたが、1 つの rpm を除いて rpm は正常に提供されています。
たとえば、すべての rpm をビルドしてカスタム リポジトリ ディレクトリにコピーしたとします。
postgresql-myStuff11-11.7-2.el8.x86_64.rpm
postgresql-myStuff11-libs-11.7-2.el8.x86_64.rpm
postgresql-myStuff11-devel.7-2.el8.x86_64.rpm
postgresql-myStuff11-docs-11.7-2.el8.x86_64.rpm
...
それらはすべてそこにあります。yum キャッシュをクリアし、yum リポジトリを再構築したりcreaterepo --update
、フォルダー全体を削除して再作成したりしました。しかし、何をしても、実行時にメイン パッケージ(または myStuff11 など)repodata
が見つかりません。yum search myStuff
メイン パッケージを除く、その他すべてのみが返されます。
Searching Packages:
==========================================================================================
Name Matched: myStuff11
==========================================================================================
postgresql-myStuff11-libs.x86_64 : The shared libraries required for any PostgreSQL clients
Repo : @System
Matched from:
Provide : postgresql-myStuff11-libs = 11.7-2.el8
...
Name:
最初は、スペックファイル内で定義済みの変数を使用しているためかと思いましたが、文字列に変更した後もまったく同じままでした...
質問:
yum
パッケージを見るにはどうすればいいですかpostgresql-myStuff11-11.7-2.el8.x86_64.rpm
?
答え1
何らかの理由で、createrepo
データベース ( -d
) フラグを使用する必要がありました。これを機能させてパッケージを表示できるようにするために私が行ったことは次のとおりです。
- YUM リポジトリ フォルダーに移動します。例:
cd /opt/myrepo
rm -rf repodata
、きれいに拭く- リポジトリを再作成しますが、データベースは です
createrepo -v -d .
( は.
です/opt/myrepo
)
その後、リモート マシンで実行して、yum update --refresh
新しい変更を取得できます。
フラグがないと-d
、ビルドしたパッケージをすべて一覧表示できませんでした。理由はわかりません。環境は RHEL 8 システムだったので、これは に固有のバグである可能性があります (そうでない可能性もあります) createrepo
。
createrepo --version
Version: 0.17.7 (Features: DeltaRPM LegacyWeakdeps )