インストール時にプルされる依存関係を持つベンダーからカスタムrpmが提供されています。このパッケージをクローズドネットワークシステムにインストールする必要があるため、依存関係を収集するためにインターネットにアクセスできません。ただし、インターネットにアクセスできる中間サーバーにはアクセスできますが、閉じたネットワークからのトラフィックは許可されません。
クローズドネットワークがこのパッケージをインストールするためにアクセスできるローカルネットワークリポジトリを作成することは可能ですか?私はすでにローカルディレクトリに以下を使用してリポジトリを作成しました:
createrepo .
また、以下を使用して依存関係のリストを取得しようとしました。
rpm -qpR *package*
依存関係リストからローカルリポジトリにrpmまたはその他のインストールデータをプルするにはどうすればよいですか?
同じ要件がありましたが、これらの回答からこれを行うために必要な情報を100%取得できませんでした。これが誰かに役立つことを願っています。
これらのコマンドは、インターネットに接続されているソースマシンで実行する必要があります。
yum install -y createrepo
# Add a local temporary directory
mkdir packages
# Download whatever packages you need to the temporary directory
yum install --downloadonly --downloaddir=packages Perl
# Now, create the repository. If you need to add more packages, be sure to execute this
# command again before you bundle it up
createrepo packages
# Compress the packages directory:
tar -zcf packages.tgz packages
次に、これをインターネットに接続されていない宛先マシンに転送し、アーカイブを解凍します。
tar -zxf packages.tgz -C /opt/
作成/etc/yum.repos.d/local.repo
そしてこれらの内容を追加します:
[local]
name=Local Repository
baseurl=file:///opt/packages
enabled=1
gpgcheck=1
protect=1
パッケージバンドルを更新する場合は、最初にキャッシュをクリーンアップする必要があります。そうしないと、新しいパッケージが見つかりません。
yum clean all
これで、インターネットに接続せずに目的のパッケージをインストールできます。
yum --disablerepo='*' --enablerepo=local install Perl
gpgcheck
パラメーターは非常に重要です。つまり、Red Hatのキーで署名されているため、ソースマシンを離れてからパッケージが変更されていないことを確認します。これは通常、ほとんどの情報セキュリティチームにとって十分です。
yum install yum-utils
いくつかの便利なパッケージ管理ユーティリティを入手します。 repotrack package
はすべての依存関係をダウンロードします。これをディレクトリに置き、createrepo /srv/my/repo
を実行します。これは、ファイルURIを使用してクローズドシステムの/etc/yum.repos.d/に追加できるリポジトリです。
[myrepo]
name = This is my repo
baseurl = file:///srv/my/repo/
とにかく更新のためのシステムも必要です。インターネットに接続されたシステムに更新をダウンロードし、同じ方法でリポジトリに配置します。 (更新はSatelliteのような管理製品で提供できますが、そうである必要はありません。)