ネットワーク接続のないサーバーにランダムRPMパッケージのリスト(通常約5〜10個のパッケージ)をインストールする必要があるシナリオがあります。一部のパッケージはEPELで提供されており、頻繁に同期する必要があるため、すべてのリポジトリを同期したくない場合があります。
以下を実行してRHEL / CentOS 7の問題を解決しました。
$ yum -y install epel-release createrepo
$ repotrack $PACKAGE_NAME
$ createrepo --database .
/etc/yum.repos.d
その後、USBドライブを使用してこのフォルダをサーバーに移動し、そこにストレージファイルを作成しますyum --disablerepo="*" --enablerepo="my-custom-repo" install $PACKAGE_NAME
。
dnf install
これをRHEL / CentOS 8に移動し、パッケージの半分で動作している間に隔離サーバーで残りの半分を実行すると、次のエラーが発生します。
モジュール型パッケージ「podman-1.6.4-2.module_el8.1.0+272+3e64ee36.x86_64」には、利用可能なモジュール型メタデータがないため、システムにインストールできません。
私はこれが新しいモジュラーシステムのためだと思い、私のリポジトリに必要なすべての情報はありません。両方のマニュアルをrepotrack
読んでみましたが、createrepo
どちらもモジュールについて言及していないようです。インターネットで検索すると、すでに持っている7のソリューションのみが提供されましたが、8、特にモジュールに属するパッケージについては何も見つかりませんでした。
それでは、モジュールであるRHEL / CentOS 8パッケージとすべての依存関係をディスクに抽出して別のサーバーに移動し、そこにインストールするにはどうすればよいですか?
ありがとうございます!
答え1
見てmodulemdツールプロジェクト。あなたは見つけることができますEPELのプリコンパイル済みバイナリ。
複数のモジュラーrpmがあるとします./my-custom-repo/Packages
。
python36-3.6.8-2のようなモジュラーrpm名。モジュール_el8.1.0+245+c39af44f.x86_64.rpm
ランニング:
cd my-custom-repo
# create traditional rpm repo
createrepo_c .
# generate modules meta info
repo2module -s stable -d . modules.yaml
# adjust modules meta info to traditional rpm repo
modifyrepo_c --mdtype=modules modules.yaml repodata/
これがすべて完了したら、repodataディレクトリにxxxx-modules.yaml.gzなどのファイル名を見つけることができます。
これでリポジトリが機能します。
答え2
yumはまだRHEL 8で動作します。また、DNFとyumのダウンロード専用オプションもあります。
--downloadonly rpmトランザクション(インストール/アップグレード/削除)を実行せずに確認済みのパッケージセットをダウンロードします。
ヤムのインストールhttpd --downloadonly
ファイルをダウンロードして目的の場所にコピーして実行します。
dnf localinstall packagename