web-dev-qa-db-ja.com

エアギャップ(オフライン)CentOS 6システムへのyumパッケージのインストール

セキュリティ上の理由から、GentOS 6システムを使用しています。インターネットに接続されたことがない可能性があり、接続されている場合は、長期間更新されていません。

すべての.rpmパッケージをドライブに配置して、インターネットに問い合わせることなくオフラインでインストールできるようにしたいと考えています。ただし、テストで実行している問題VMは、ローカルパスが指定されている場合でも、yumがハングし、オンラインリポジトリから更新しようとすることです。

また、_yum-utils_/yumdownloaderを使用して、パッケージとそのパッケージのすべての依存関係を簡単に取得する方法はありますか?現時点では、まだいくつかの依存関係がありません(たとえば、gcc-c ++ rpmをプルすると、cppgccが取得されますが、_cloog-ppl_、mpfrまたはpplは取得されません)。

私はすでに このような解決策 を試しましたが、依存関係ツリーがすでにあるか、またはyumが最新であることを想定できません。

Dockerイメージの新規インストール時に、初めてインターネットを無効にしてyumを実行しようとすると、Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try againが表示されます

4
DeusXMachina

インストールされたリリースと最新の安定版の間の互換性が心配な場合は、/etc/redhat-releaseでcentosのバージョンを確認し、 http://vault.centos.org/ のパッケージを使用することをお勧めします。ただし、セキュリティ更新やバグ修正は含まれないことに注意してください。

パッケージをダウンロードするには-公式のredhat指示を使用します: https://access.redhat.com/solutions/10154

yum install yum-plugin-downloadonly
yum install --downloadonly --downloaddir=<directory> <package>

または

yum install yum-utils
yumdownloader --resolve

この回答の手法を使用して、rpmをダウンロードするvmでのyum履歴の複製を確認することもできます。 https://unix.stackexchange.com/a/83115

最も簡単な方法であり、長期間にわたって機能します。

yum-debug-dump => gives file.
yum-debug-restore <file-from-debug-dump>

... get/set selections dpkgコマンドのAIUIとほぼ同じように機能します。また、履歴を再生している場合は、以下を使用できます。

yum history addon-info last saved_tx => gives file
yum load-tx <file-from-addon-info>

...自分で解析する必要はありません。

編集:

ディレクトリからすべてのrpmをインストールするには、cdをそこにインストールし、インストールする場合はrpm -ivh *.rpmを使用します。ダウンロードしたファイルがすでに存在するファイルよりも新しい場合はrpm -Uvh *.rpmを使用します。それらを更新しても大丈夫です。

2
Andrew

編集:いいえ、これほど簡単なものはありません。まだ新しいスタックでこのエラーが発生します:Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

自分自身を構成するのに十分な時間だけyumにインターネットへのアクセスを許可すると、次のように動作します。

最初に、次の呼び出しですべての依存パッケージをプルダウンすることができました

yum install -y --downloadonly --downloaddir=$pkgdir <package>

そして

yum reinstall -y --downloadonly --downloaddir=$pkgdir <package>

すでにインストールされているパッケージを強制的に.rpmおよび依存関係。次に、パッケージのtarballを入手したら、それを新しいシステムに置きました。

まず、sed -i 's/enabled=1/enabled=0/' '/etc/yum/pluginconf.d/fastestmirror.conf' fastmirrorプラグインを無効にします。

次に、パッケージを含むディレクトリにcdして、注意深く呼び出すことで、必要なすべてのパッケージをインストールすることができました。

yum install --disablerepo=\* packag*

依存関係で必要な順序で。それはちょっと似ていた

yum install --disablerepo=\* epel*
yum install --disablerepo=\* ius*
yum install --disablerepo=\* libstd*
yum install --disablerepo=\* mpfr*
yum install --disablerepo=\* cpp*
yum install --disablerepo=\* libgcc*
yum install --disablerepo=\* libgomp*
yum install --disablerepo=\* libg*
yum install --disablerepo=\* ppl*
yum install --disablerepo=\* cloog*
yum install --disablerepo=\* gcc*
yum install --disablerepo=\* atlas*
yum install --disablerepo=\* python*

そして出来上がり!完全にエアギャップされたシステムでpython3.5を実行することができました。

1
DeusXMachina