環境

yumコマンドでパッケージ管理されるRedhat系OS。(CentOS, AlmaLinux, Rocky Linux, Amazon Linuxなど)

yumdownloader コマンド

yumコマンドでインストールされるrpmパッケージをダウンロードだけしたい場合はyumdownloaderコマンドを使用する。

$ yumdownloader vim
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.yz.yamagata-u.ac.jp
 * updates: ftp.yz.yamagata-u.ac.jp
warning: /tmp/bar/vim-enhanced-7.4.629-8.el7_9.aarch64.rpm: Header V3 RSA/SHA256 Signature, key ID 305d49d6: NOKEY               ] 163 kB/s | 344 kB  00:00:04 ETA
Public key for vim-enhanced-7.4.629-8.el7_9.aarch64.rpm is not installed
vim-enhanced-7.4.629-8.el7_9.aarch64.rpm

$ ls
vim-enhanced-7.4.629-8.el7_9.aarch64.rpm

依存するパッケージも再帰的にダウンロードしたい場合

依存するパッケージもすべて取得したければ--resolveオプションを付ける。

$ yumdownloader --resolve vim
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.yz.yamagata-u.ac.jp
 * updates: ftp.yz.yamagata-u.ac.jp
--> Running transaction check
()
32/33): perl-podlators-2.5.1-3.el7.noarch.rpm                                                                                              | 112 kB  00:00:02
(33/33): perl-5.16.3-299.el7_9.aarch64.rpm

$ ls
gpm-libs-1.20.7-6.el7.aarch64.rpm        perl-PathTools-3.40-5.el7.aarch64.rpm            perl-constant-1.27-2.el7.noarch.rpm
groff-base-1.22.2-8.el7.aarch64.rpm      perl-Pod-Escapes-1.04-299.el7_9.noarch.rpm       perl-libs-5.16.3-299.el7_9.aarch64.rpm
perl-5.16.3-299.el7_9.aarch64.rpm        perl-Pod-Perldoc-3.20-4.el7.noarch.rpm           perl-macros-5.16.3-299.el7_9.aarch64.rpm
perl-Carp-1.26-244.el7.noarch.rpm        perl-Pod-Simple-3.28-4.el7.noarch.rpm            perl-parent-0.225-244.el7.noarch.rpm
perl-Encode-2.51-7.el7.aarch64.rpm       perl-Pod-Usage-1.63-3.el7.noarch.rpm             perl-podlators-2.5.1-3.el7.noarch.rpm
perl-Exporter-5.68-3.el7.noarch.rpm      perl-Scalar-List-Utils-1.27-248.el7.aarch64.rpm  perl-threads-1.87-4.el7.aarch64.rpm
perl-File-Path-2.09-2.el7.noarch.rpm     perl-Socket-2.010-5.el7.aarch64.rpm              perl-threads-shared-1.43-6.el7.aarch64.rpm
perl-File-Temp-0.23.01-3.el7.noarch.rpm  perl-Storable-2.45-3.el7.aarch64.rpm             vim-common-7.4.629-8.el7_9.aarch64.rpm
perl-Filter-1.49-3.el7.aarch64.rpm       perl-Text-ParseWords-3.29-4.el7.noarch.rpm       vim-enhanced-7.4.629-8.el7_9.aarch64.rpm
perl-Getopt-Long-2.40-3.el7.noarch.rpm   perl-Time-HiRes-1.9725-3.el7.aarch64.rpm         vim-filesystem-7.4.629-8.el7_9.aarch64.rpm
perl-HTTP-Tiny-0.033-3.el7.noarch.rpm    perl-Time-Local-1.2300-2.el7.noarch.rpm          which-2.20-7.el7.aarch64.rpm

ダウンロードディレクトリを指定する

yumdownloaderコマンドを実行するとデフォルトではカレントディレクトリにダウンロードされる。
ダウンロードフォルダを指定したければ--destdirオプションを付ける。

$ yumdownloader --destdir /tmp/vim-package vim
Loaded plugins: fastestmirror, ovl
Loading mirror speeds from cached hostfile
 * base: ftp.yz.yamagata-u.ac.jp
 * extras: ftp.yz.yamagata-u.ac.jp
 * updates: ftp.yz.yamagata-u.ac.jp
warning: /tmp/vim-package/vim-enhanced-7.4.629-8.el7_9.aarch64.rpm: Header V3 RSA/SHA256 Signature, key ID 305d49d6: NOKEY       ] 644 kB/s | 647 kB  00:00:00 ETA
Public key for vim-enhanced-7.4.629-8.el7_9.aarch64.rpm is not installed
vim-enhanced-7.4.629-8.el7_9.aarch64.rpm                                                                                                    | 995 kB  00:00:00

$ ls /tmp/vim-package/
vim-enhanced-7.4.629-8.el7_9.aarch64.rpm