web-dev-qa-db-ja.com

rpmからのすべての依存関係を持つローカルリポジトリを作成します

インストール時にプルされる依存関係を持つベンダーからカスタムrpmが提供されています。このパッケージをクローズドネットワークシステムにインストールする必要があるため、依存関係を収集するためにインターネットにアクセスできません。ただし、インターネットにアクセスできる中間サーバーにはアクセスできますが、閉じたネットワークからのトラフィックは許可されません。

クローズドネットワークがこのパッケージをインストールするためにアクセスできるローカルネットワークリポジトリを作成することは可能ですか?私はすでにローカルディレクトリに以下を使用してリポジトリを作成しました:

createrepo .

また、以下を使用して依存関係のリストを取得しようとしました。

rpm -qpR *package*

依存関係リストからローカルリポジトリにrpmまたはその他のインストールデータをプルするにはどうすればよいですか?

1
scholarhedge

同じ要件がありましたが、これらの回答からこれを行うために必要な情報を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のキーで署名されているため、ソースマシンを離れてからパッケージが変更されていないことを確認します。これは通常、ほとんどの情報セキュリティチームにとって十分です。

1
Steve Rukuts

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のような管理製品で提供できますが、そうである必要はありません。)

yumdownloader vs repotrack

http://yum.baseurl.org/wiki/RepoCreate

1
John Mahowald