CentOSでパッケージ化されたソフトウェアをインストールするのには、yumコマンドを利用します。
yumコマンドは指定したパッケージのrpmファイルや、そのrpmが必要としているために同時にインストールされる依存パッケージまで、
すべてネットワーク経由でダウンロードし、自動的にインストールしてくれます。
yumを使ってあるパッケージの動作に必要なrpmファイルを全て入手したい、という場合があります。
yumにパッケージの依存性をすべて解析させ、必要だと判ったrpmファイルを(インターネットに接続できない)別のマシンに持っていて、
そこでインストールする場合などです。
しかし、yumはダウンロードしたパッケージのrpmファイルをインストール後は削除してしまいます。
また、yumを実行したマシンには実際にはインストールしたくないという場合もあります。
yumのプラグインであるyum-plugin-downloadonlyを使えば、
実際にパッケージのインストールは行わずにrpmファイルをダウンロードだけすることができます。
まず、以下のように、yum-plugin-downloadonlyをインストールします。
# yum install yum-plugin-downloadonly
yum-plugin-downloadonlyプラグインのインストール後、以下のようにyum installに、--downloadonlyオプションを追加します。
同時に追加している--downloaddir=オプションは、ダウンロードしたrpmファイルをどこのディレクトリに置くかを指定します。
以下に--downloadonly --downloaddirの2つのオプションを使用してyum-plugin-downloadonlyプラグインを使ってみた出力です。
ダウンロードするパッケージはhttpdを指定しています。
同時に関連パッケージもダウンロードされます。
[root@centos6 ~]# yum install --downloadonly --downloaddir=/tmp/rpms httpd Loaded plugins: downloadonly, fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: ftp.iij.ad.jp Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package httpd.x86_64 0:2.2.15-28.el6.centos will be installed --> Processing Dependency: httpd-tools = 2.2.15-28.el6.centos for package: httpd-2.2.15-28.el6.centos.x86_64 --> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-28.el6.centos.x86_64 --> Processing Dependency: /etc/mime.types for package: httpd-2.2.15-28.el6.centos.x86_64 --> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.2.15-28.el6.centos.x86_64 --> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.2.15-28.el6.centos.x86_64 --> Running transaction check ---> Package apr.x86_64 0:1.3.9-5.el6_2 will be installed ---> Package apr-util.x86_64 0:1.3.9-3.el6_0.1 will be installed ---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1 will be installed ---> Package httpd-tools.x86_64 0:2.2.15-28.el6.centos will be installed ---> Package mailcap.noarch 0:2.1.31-2.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved =========================================================================================================================== Package Arch Version Repository Size =========================================================================================================================== Installing: httpd x86_64 2.2.15-28.el6.centos updates 821 k Installing for dependencies: apr x86_64 1.3.9-5.el6_2 base 123 k apr-util x86_64 1.3.9-3.el6_0.1 base 87 k apr-util-ldap x86_64 1.3.9-3.el6_0.1 base 15 k httpd-tools x86_64 2.2.15-28.el6.centos updates 73 k mailcap noarch 2.1.31-2.el6 base 27 k Transaction Summary =========================================================================================================================== Install 6 Package(s) Total download size: 1.1 M Installed size: 3.6 M Is this ok [y/N]: y Downloading Packages: (1/6): apr-1.3.9-5.el6_2.x86_64.rpm | 123 kB 00:00 (2/6): apr-util-1.3.9-3.el6_0.1.x86_64.rpm | 87 kB 00:00 (3/6): apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm | 15 kB 00:00 (4/6): httpd-2.2.15-28.el6.centos.x86_64.rpm | 821 kB 00:03 (5/6): httpd-tools-2.2.15-28.el6.centos.x86_64.rpm | 73 kB 00:00 (6/6): mailcap-2.1.31-2.el6.noarch.rpm | 27 kB 00:00 --------------------------------------------------------------------------------------------------------------------------- Total 18 kB/s | 1.1 MB 01:03 exiting because --downloadonly specified [root@centos6 ~]#
--donwloaddirで指定した/tmp/rpmsの下にダウンロードされています。
[root@centos6 ~]# ls /tmp/rpms apr-1.3.9-5.el6_2.x86_64.rpm apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm httpd-tools-2.2.15-28.el6.centos.x86_64.rpm apr-util-1.3.9-3.el6_0.1.x86_64.rpm httpd-2.2.15-28.el6.centos.x86_64.rpm mailcap-2.1.31-2.el6.noarch.rpm [root@centos6 ~]#
--donwloaddirを指定しない場合、/var/cache/yumの下のダウンロードされますが、yumコマンドの都合で複数のディレクトリにファイルが置かれるので、必ず--downloaddirは使用すべきです。
[root@centos6 ~]# find /var/cache/yum -name \*.rpm /var/cache/yum/x86_64/6/updates/packages/httpd-2.2.15-28.el6.centos.x86_64.rpm /var/cache/yum/x86_64/6/updates/packages/httpd-tools-2.2.15-28.el6.centos.x86_64.rpm /var/cache/yum/x86_64/6/base/packages/apr-util-1.3.9-3.el6_0.1.x86_64.rpm /var/cache/yum/x86_64/6/base/packages/apr-util-ldap-1.3.9-3.el6_0.1.x86_64.rpm /var/cache/yum/x86_64/6/base/packages/mailcap-2.1.31-2.el6.noarch.rpm /var/cache/yum/x86_64/6/base/packages/apr-1.3.9-5.el6_2.x86_64.rpm [root@centos6 ~]#
注意
なお、既にインストールしてしまったパッケージをyum install --downloadonlyすることはできません。
以下はインストール済みのパッケージを指定して実行したときの出力です。
既にインストール済みと出力されダウンロードされていない事が確認できます。
[root@centos6 ~]# yum install --downloadonly bash Loaded plugins: downloadonly, fastestmirror Loading mirror speeds from cached hostfile * base: www.ftp.ne.jp * extras: www.ftp.ne.jp * updates: ftp.iij.ad.jp Setting up Install Process Package bash-4.1.2-14.el6.x86_64 already installed and latest version Nothing to do [root@centos6 ~]#
以上、yumを使ってrpmパッケージのダウンロードだけする方法についてでした。