オフラインで依存性を考慮して rpm を dnf (yum) でインストールする

NWが貧弱だったり、プロキシ等々の影響により、dnf/yum で rpm ファイルのダウンロードが何度やってもタイムアウトしちゃったり、そもそも外部NWに接続出来ない時などの備忘録です

ざっくり手順:

dnf の場合

dnf download を使えるようにする(参考:Changes in DNF CLI compared to YUM — dnf latest documentation

[bubka@強いサーバ]$ sudo dnf -y install dnf-plugins-core

Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                374 kB/s | 154 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                                        814 kB/s | 7.2 MB     00:09
Dependencies resolved.
======================================================================================================================================================
 Package                                        Architecture                 Version                               Repository                    Size
======================================================================================================================================================
Installing:
 dnf-plugins-core                               noarch                       4.0.12-3.el8                          BaseOS                        64 k
Installing dependencies:
 python3-dateutil                               noarch                       1:2.6.1-6.el8                         BaseOS                       251 k
(略)

依存性を考慮して rpm ファイルをダウンロード

[bubka@強いサーバ]$ dnf download --resolve --alldeps java-1.8.0-openjdk-devel

CentOS-8 - AppStream                                                                                                  2.3 MB/s | 5.8 MB     00:02
CentOS-8 - Base                                                                                                       2.3 MB/s | 2.2 MB     00:00
CentOS-8 - Extras                                                                                                      12 kB/s | 6.7 kB     00:00
Extra Packages for Enterprise Linux Modular 8 - x86_64                                                                470 kB/s | 154 kB     00:00
Extra Packages for Enterprise Linux 8 - x86_64                                                                        7.0 MB/s | 7.2 MB     00:01
(1/220): atk-2.28.1-1.el8.x86_64.rpm                                                                                  1.8 MB/s | 272 kB     00:00
(2/220): copy-jdk-configs-3.7-1.el8.noarch.rpm                                                                        1.7 MB/s |  27 kB     00:00
(3/220): elfutils-debuginfod-client-0.178-7.el8.x86_64.rpm                                                            1.4 MB/s |  62 kB     00:00
(略)

全ての rpm ファイルをアーカイブするなりしたあと、ファイル転送やメディアを使って弱いサーバに持って行く

最後に弱いサーバで rpm をインストール

[user01@弱っちいサーバ]$ sudo dnf -y install *.rpm

Last metadata expiration check: 0:06:55 ago on Wed Jul  8 17:21:14 2020.
Package acl-2.2.53-1.el8.x86_64 is already installed.
Package audit-libs-3.0-0.17.20191104git1c2f876.el8.x86_64 is already installed.
Package basesystem-11-5.el8.noarch is already installed.
Package bash-4.4.19-10.el8.x86_64 is already installed.
(略)
Package zlib-1.2.11-13.el8.x86_64 is already installed.
Dependencies resolved.
======================================================================================================================================================
 Package                                    Architecture          Version                                           Repository                   Size
======================================================================================================================================================
Installing:
 alsa-lib                                   x86_64                1.2.1.2-3.el8                                     @commandline                441 k
 atk                                        x86_64                2.28.1-1.el8                                      @commandline                272 k
 avahi-libs                                 x86_64                0.7-19.el8                                        @commandline                 62 k
 brotli                                     x86_64                1.0.6-1.el8                                       @commandline                323 k
(略)
  tzdata-java-2020a-1.el8.noarch                                                xkeyboard-config-2.28-1.el8.noarch
  xorg-x11-font-utils-1:7.5-40.el8.x86_64                                       xorg-x11-fonts-Type1-7.5-19.el8.noarch

Skipped:
  coreutils-8.30-7.el8_2.1.x86_64                                             libcurl-7.61.1-12.el8.x86_64

Complete!

弱いサーバのインストール済みパッケージの状態によっては conflict するかもですが、、、

Error:
 Problem 1: problem with installed package coreutils-single-8.30-7.el8_2.1.x86_64
  - package coreutils-8.30-7.el8_2.1.x86_64 conflicts with coreutils-single provided by coreutils-single-8.30-7.el8_2.1.x86_64
  - conflicting requests
 Problem 2: problem with installed package libcurl-minimal-7.61.1-12.el8.x86_64
  - package libcurl-minimal-7.61.1-12.el8.x86_64 conflicts with libcurl provided by libcurl-7.61.1-12.el8.x86_64
  - conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)

そんな時は dnf のメッセージを頼りに

 sudo dnf -y install --skip-broken *.rpm

などを試しましょう

yum の場合

依存性を考慮して rpm ファイルをダウンロード

[bubka@強いサーバ]$ repotrack java-1.8.0-openjdk-devel

Downloading GConf2-3.2.6-8.el7.x86_64.rpm
Downloading acl-2.2.51-15.el7.x86_64.rpm
Downloading alsa-lib-1.1.8-1.el7.x86_64.rpm
(略)

全ての rpm ファイルをアーカイブするなりしたあと、ファイル転送やメディアを使って弱いサーバに持って行ったら、、、

[user01@弱っちいサーバ]$ sudo yum -y install *.rpm

Loaded plugins: fastestmirror, ovl
Examining GConf2-3.2.6-8.el7.x86_64.rpm: GConf2-3.2.6-8.el7.x86_64
Marking GConf2-3.2.6-8.el7.x86_64.rpm to be installed
(略)

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-07-08 (水) 17:38:52