"yum install $PACKAGE"を使用できるネットワーク接続を持つサーバーがあります。必要なすべてのRPMファイルを$ DIRECTORYにダウンロードできる
ように、いくつかのyumコマンドが必要です。 $ DIRECTORYには、ネットワーク接続なしで他の多くのサーバーにこれらのRPMをインストールする手順を説明するyum cache-rpms $PACKAGE $DIRECTORY
ファイル()も含まれています。ネットワークを使用する代わりに。Install.sh
Install.sh
yum install $PACKAGE
$DIRECTORY
可能ですか?
私はyumとRPMを使用できる一般的なソリューションを探しています。特に CENTOS 6.7 サーバーセットにあります。
答え1
以下は、ダウンロードおよびインストールパッケージとして「httpd」を使用した具体的な例です。この手順は CentOS6 および CentOS7 でテストされました。
必要なものをインストールしてダウンロードしたRPMのためのスペースを作ります。
# yum install yum-plugin-downloadonly yum-utils createrepo
# mkdir /var/tmp/httpd
# mkdir /var/tmp/httpd-installroot
RPMをダウンロードしてください。これは以下を使用します。ここにルートスキルをインストールすることをお勧めします空のルートディレクトリには何もインストールされていないため、すべての依存関係を強制的に完全にダウンロードします。 Yumはその中にいくつかのメタデータを生成しますが、私たちはそれをすべて捨てます。 CentOS7の場合、releasever
値は「7」です。
# yum install --downloadonly --installroot=/var/tmp/httpd-installroot --releasever=6 --downloaddir=/var/tmp/httpd httpd
はい、そうです。以前は小さなバージョン。リポジトリ全体のダウンロードサイズを確認しました!
新しいRPMヒープをYUMリポジトリに変換し、不要になったものをクリーンアップするために必要なメタデータを作成します。
# createrepo --database /var/tmp/httpd
# rm -rf /var/tmp/httpd-installroot
ダウンロードディレクトリをリポジトリとして設定します。 CentOS7の場合、gpgkey名は「6」ではなく「7」と指定されます。
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
欠落している依存関係を確認するには、次の手順を実行します。
# repoclosure --repoid=offline-httpd
libssl.so.10(libssl.so.10)(64bit)
CentOS7では、このレポートに(ライブラリプロバイダ)ディレクトリに明示的に存在する情報が欠落している理由を特定できませんでしたhttpd-tools
。openssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
しかし、何か欠けていることが明白であれば、戻ってきてyum install --downloadonly
上記と同じ方法を使用して追加する良い機会になることができます。
オフラインの場合、または/var/tmp/httpd
ストレージディレクトリを別のサーバーにコピーしてから、そのサーバーにストレージを設定します。
# vi /etc/yum.repos.d/offline-httpd.repo
[offline-httpd]
name=CentOS-$releasever - httpd
baseurl=file:///var/tmp/httpd
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
# yum --disablerepo=\* --enablerepo=offline-httpd install httpd
依存が消えないように!
答え2
あまりにも必要なので、自動的に@Steve Bondsと答えました。PKG
両方のシステムにインストールするパッケージとして定義する必要があります(免責事項:CentOS 7の場合。CentOS 6の場合と--releasever
場所CentOS-7
を変更します。
オンラインマシン
PKG=... # NAME OF THE PACKAGE TO INSTALL ON OFFLINE MACHINE
yum install --downloadonly --installroot=/tmp/$PKG-installroot --releasever=7 --downloaddir=/tmp/$PKG $PKG
createrepo --database /tmp/$PKG
rm -rf /tmp/$PKG-installroot
rsync -arv /tmp/$PKG/ [IP of the machine]:/tmp/$PKG
オフラインマシンから:
PKG=... # NAME OF THE PACKAGE
echo "[offline-$PKG]
name=CentOS-\$releasever - $PKG
baseurl=file:///tmp/$PKG/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7" > /etc/yum.repos.d/offline-$PKG.repo
# install package offline:
yum --disablerepo=\* --enablerepo=offline-$PKG install --nogpgcheck $PKG
答え3
yumdownloader
パッケージに何が含まれているかお問い合わせいただいたようですyum-utils
。これに関するいくつかの質問と回答がすでにあります。すでにインストールされていても、すべての依存関係をダウンロードするにはyumdownloaderを使用する必要がありますか?またはYumを使用してパッケージURLを見つける方法は?
yumdownloader
パッケージはダウンロードされますが、ファイルは生成されません。Install.sh
順序はyum自体によって決定されるため、
yum install ./*rpm
ダウンロードしたパッケージを含むフォルダを介してターゲットコンピュータにパッケージをインストールできます(基本インストールと同様に上記のセクションを参照)。リンクrepotrack
)