私は2台のCentOSマシン、1台の6.3ボックス(A)、およびもう1台のCentOS 6.1 を持っています。(B)
6.3ボックスはインターネット接続あり、6.1ボックスはインターネット接続なし。
Box Aにある製品のすべての依存関係をダウンロードしてから、それらのn Box Bをコピーして、製品をインストールしたい。
私が試した
yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .
次に、レポジトリを除くすべてのレポジトリを無効にし(--disablerepoを使用)、同じマシンに製品をインストールしました(ボックスA)。エラーはありません。
yum install *product*
このリポジトリをボックスBにコピーし、同じコマンドでインストールしようとすると、インストールが開始されますが、以下のような多くのエラーが発生します。
エラー:依存関係がありません:パッケージphp-ldap-5.1.6-27.el5_5.3.x86_64(インストール済み)にはlibldap-2.3.so.0()(64bit)が必要です
私が必要なことを達成する方法はありますか?
更新
@rkosegi(-- releasever = version)によって提案されたオプションを使用して作業を開始するまでに、同じバージョンのCentOS 6.1(C)の新しいボックスが提供されました
上記のコマンドをボックスCで試して、それをボックスBにコピーしました。それでも失敗しました。理由:両方のボックスは6.1ですが、同じではありません(uname -rは異なる文字列を返します)。
Yumは依存関係が既にインストールされている場合、依存関係をダウンロードしません。そのため、私のリポジトリには一部の依存関係(OpenJDKを含む)が含まれていませんでした。したがって、ボックスBにインストールしようとすると失敗します。
かなりイライラします!!!
しかし、ここでコマンド ' repotrack ' を見つけました。
cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .
yumを使用した場合よりも多くのファイルを取得しました。うまくいけばうまくいくでしょう。
インストールしてみたらアップデートします。
更新
コマンドrepotrackが機能しませんでした。「repotrack」で作成されたリポジトリからインストールしようとすると、次のエラーが発生しました。
Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
Requires: perl = 4:5.10.1-127.el6
Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
Requires: audit-libs = 2.2-2.el6
Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
audit-libs = 2.1.3-3.el6
これら2つのファイルをフォルダーから削除し、 'createrepo'を使用してリポジトリを再構築してみました。エラーの別のセットを与えた。
現在どのようなオプションがあるかわからない...