NWが貧弱だったり、プロキシ等々の影響により、dnf/yum で rpm ファイルのダウンロードが何度やってもタイムアウトしちゃったり、そもそも外部NWに接続出来ない時などの備忘録です
ざっくり手順:
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
などを試しましょう
依存性を考慮して 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
(略)