製品のすべてのRPMをダウンロードする


8

私は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'を使用してリポジトリを再構築してみました。エラーの別のセットを与えた。

現在どのようなオプションがあるかわからない...


"6.1" CentOS はありません。RHEL 6.1がカットされた時点で最新のCentOS 6であり、おそらくそれ以降多くの更新が行われています。
フォンブランド、2013年

回答:


1

これを頻繁に行う必要がある場合は、時間をかけてSpacewalkを設定することをお勧めします。リポジトリの作成を自動化し、適切なパッケージ(または必要に応じてすべてのパッケージ)を入力します。他のすべてのことは言うまでもありません...


0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

ターゲットマシンと同じバージョンのリポジトリからダウンロードするようにyumに指示する必要があります(6.1)

また、ダウンロードを実行するマシン(6.3)に、ターゲットマシン(6.1)で欠落している依存関係の一部がまだインストールされていないことを確認する必要があります。


そのシステムにインストールするため必要なパッケージを取得するため、これは必ずしも機能しません。これは、(おそらく古い)ネットワークに接続されていないマシンで必要なセットとはまったく異なるセットになる可能性があります。
フォンブランド、2013年

0

「クリーン」なマシンを入手できない場合は、yum providesまたはで欠落している部品を手動で検索する必要があります

すでにリポジトリにあるrpmを調べて、依存関係をクエリする必要があります rpm -qp --requires RPM。そのリストがまだリポジトリの一部ではない新しいものになったら、それを追加する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.