セキュリティ上の理由から、GentOS 6システムを使用しています。インターネットに接続されたことがない可能性があり、接続されている場合は、長期間更新されていません。
すべての.rpmパッケージをドライブに配置して、インターネットに問い合わせることなくオフラインでインストールできるようにしたいと考えています。ただし、テストで実行している問題VMは、ローカルパスが指定されている場合でも、yum
がハングし、オンラインリポジトリから更新しようとすることです。
また、_yum-utils
_/yumdownloader
を使用して、パッケージとそのパッケージのすべての依存関係を簡単に取得する方法はありますか?現時点では、まだいくつかの依存関係がありません(たとえば、gcc-c ++ rpmをプルすると、cpp
とgcc
が取得されますが、_cloog-ppl
_、mpfr
またはppl
は取得されません)。
私はすでに このような解決策 を試しましたが、依存関係ツリーがすでにあるか、またはyum
が最新であることを想定できません。
Dockerイメージの新規インストール時に、初めてインターネットを無効にしてyumを実行しようとすると、Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again
が表示されます
インストールされたリリースと最新の安定版の間の互換性が心配な場合は、/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
を使用します。それらを更新しても大丈夫です。
編集:いいえ、これほど簡単なものはありません。まだ新しいスタックでこのエラーが発生します: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を実行することができました。