私は2台のCentOSマシンを持っています。1台は6.3ボックス([〜#〜] a [〜#〜])で、もう1台はCentOS6.1です。 ([〜#〜] b [〜#〜])
6.3ボックスはインターネット接続あり、6.1ボックスはインターネット接続なしです。
ボックスAの製品のすべての依存関係をダウンロードし、それらをボックス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()(64ビット)が必要です
必要なことを達成する方法はありますか?
[〜#〜] update [〜#〜]
@rkosegi(-releasever = version)によって提案されたオプションを使い始めるまでに、同じバージョンのCentOS 6.1([〜 #〜] c [〜#〜])
ボックスCで上記のコマンドを試し、リポジトリをボックスBにコピーしました。それでも失敗しました。理由:両方のボックスは6.1ですが、それらは同一ではありません(name -rは異なる文字列を返します)。
依存関係がすでにインストールされている場合、Yumは依存関係をダウンロードしません。そのため、私のリポジトリにはいくつかの依存関係(OpenJDKを含む)が含まれていませんでした。そのため、ボックスBにインストールしようとすると、失敗します。
かなりイライラする!!!
しかし、コマンド 'repotrack' here が見つかりました。
cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .
Yumよりもはるかに多くのファイルを取得しました。うまくいけばうまくいくでしょう。
インストールしてみたら更新します。
[〜#〜] update [〜#〜]
コマンドレポトラックは私には機能しませんでした。 '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」を使用してリポジトリを再構築してみました。それは別の一連のエラーを与えました。
現時点でどのようなオプションがあるのかわかりません...
これを頻繁に行う必要がある場合は、時間をかけて設定することをお勧めします Spacewalk 。リポジトリの作成と適切なパッケージ(または、必要に応じてすべてのパッケージ)の入力を自動化します。それがする他のすべては言うまでもありません...
yum --downloadonly --downloaddir=~/downloadrepo -y install product
ターゲットマシンと同じバージョンのリポジトリからダウンロードするようにyumに指示する必要があります(6.1)
また、ダウンロードを実行するマシン(6.3)が、ターゲットマシン(6.1)にない依存関係の一部をまだインストールしていないことを確認する必要があります。
「クリーンな」マシンを入手できない場合は、yum provides
を使用して不足しているパーツを手動で検索するか、
すでにリポジトリにあるrpmを調べて、それらの依存関係を照会する必要があります:rpm -qp --requires RPM
。そのリストがまだリポジトリに含まれていない新しいものを見つけた場合は、それを追加する必要があります。