createrepoを使用すると、rpmを複数のディレクトリに配置できますか?

createrepoを使用すると、rpmを複数のディレクトリに配置できますか?

そのコマンドを使用するときは、createrepoRPM(デフォルトディレクトリにある)を複数のディレクトリ(階層的に考える)に配置し、yumにデフォルトディレクトリのディレクトリのすべてのRPMを再帰的に見つけることができますか?

例:

createrepo /srv/my/repo 
/srv/my/repo/vendor1/package1/first.rpm
/srv/my/repo/vendor1/package2/first.rpm

/srv/my/repo/vendor2/package1/third.rpm

私がこの質問をする理由は、RPMの1つをディレクトリにドロップしてacreaterepo --updateとaを実行してもyum clean allまだ認識されていないからです。これで、階層構造ではなくフラットファイル構造にする必要があるかどうか疑問に思います。

ベストアンサー1

私の経験上、いいえ、createrepoディレクトリツリーを再帰的に移動することはできません。したがって、ストレージのディレクトリ構造を平坦化する必要があります。私は通常、リポジトリビルドスクリプトでこのタイプのループ構成を使用します。

destdir="/path/to/my/yum-repos/Fedora/14"
for arch in i386 x86_64 noarch; do
  printf "\n\n==== creating repo: %-50s [%-s]\n" $destdir $arch
  pushd ${destdir}/${arch} >/dev/null 2>&1
  createrepo -dp .
  popd >/dev/null 2>&1
done

おすすめ記事