インターネットに接続出来ない状態でrpmパッケージをインストールする場合、ローカルに一度rpmパッケージをダウンロードして依存関係を気にしながら順番にインストールを行う事が多いだろう。
それが面倒な場合、ローカルに設置したパッケージに対し、yumコマンドのlocalinstallで一括インストールを行うと良いだろう。
yum localinstall --nogpgcheck rpmパッケージ1 rpmパッケージ2 ...
もちろん、ワイルドカードで指定することもできる。
以下は、「/work/puppet」フォルダ配下にあるPuppetに関するrpmパッケージを一括でインストールした際の内容だ。
[root@test-centos7 puppet]# pwd
/work/puppet
[root@test-centos7 puppet]# ls
augeas-libs-1.1.0-12.el7_0.1.x86_64.rpm ruby-irb-2.0.0.353-22.el7_0.noarch.rpm
facter-2.4.1-1.el7.x86_64.rpm ruby-libs-2.0.0.353-22.el7_0.x86_64.rpm
hiera-1.3.4-1.el7.noarch.rpm ruby-shadow-2.2.0-2.el7.x86_64.rpm
libselinux-ruby-2.2.2-6.el7.x86_64.rpm rubygem-bigdecimal-1.2.0-22.el7_0.x86_64.rpm
libyaml-0.1.4-11.el7_0.x86_64.rpm rubygem-io-console-0.4.2-22.el7_0.x86_64.rpm
net-tools-2.0-0.17.20131004git.el7.x86_64.rpm rubygem-json-1.7.7-22.el7_0.x86_64.rpm
pciutils-3.2.1-4.el7.x86_64.rpm rubygem-psych-2.0.0-22.el7_0.x86_64.rpm
puppet-3.7.4-1.el7.noarch.rpm rubygem-rdoc-4.0.0-22.el7_0.noarch.rpm
ruby-2.0.0.353-22.el7_0.x86_64.rpm rubygems-2.0.14-22.el7_0.noarch.rpm
ruby-augeas-0.4.1-3.el7.x86_64.rpm
[root@test-centos7 puppet]#
[root@test-centos7 puppet]# yum localinstall --nogpgcheck ./*.rpm
読み込んだプラグイン:fastestmirror
./augeas-libs-1.1.0-12.el7_0.1.x86_64.rpm を調べています: augeas-libs-1.1.0-12.el7_0.1.x86_64
./augeas-libs-1.1.0-12.el7_0.1.x86_64.rpm をインストール済みとして設定しています
./facter-2.4.1-1.el7.x86_64.rpm を調べています: 1:facter-2.4.1-1.el7.x86_64
./facter-2.4.1-1.el7.x86_64.rpm をインストール済みとして設定しています
./hiera-1.3.4-1.el7.noarch.rpm を調べています: hiera-1.3.4-1.el7.noarch
./hiera-1.3.4-1.el7.noarch.rpm をインストール済みとして設定しています
./libselinux-ruby-2.2.2-6.el7.x86_64.rpm を調べています: libselinux-ruby-2.2.2-6.el7.x86_64
./libselinux-ruby-2.2.2-6.el7.x86_64.rpm をインストール済みとして設定しています
./libyaml-0.1.4-11.el7_0.x86_64.rpm を調べています: libyaml-0.1.4-11.el7_0.x86_64
./libyaml-0.1.4-11.el7_0.x86_64.rpm をインストール済みとして設定しています
./net-tools-2.0-0.17.20131004git.el7.x86_64.rpm を調べています: net-tools-2.0-0.17.20131004git.el7.x86_64
./net-tools-2.0-0.17.20131004git.el7.x86_64.rpm をインストール済みとして設定しています
./pciutils-3.2.1-4.el7.x86_64.rpm を調べています: pciutils-3.2.1-4.el7.x86_64
./pciutils-3.2.1-4.el7.x86_64.rpm をインストール済みとして設定しています
./puppet-3.7.4-1.el7.noarch.rpm を調べています: puppet-3.7.4-1.el7.noarch
./puppet-3.7.4-1.el7.noarch.rpm をインストール済みとして設定しています
./ruby-2.0.0.353-22.el7_0.x86_64.rpm を調べています: ruby-2.0.0.353-22.el7_0.x86_64
./ruby-2.0.0.353-22.el7_0.x86_64.rpm をインストール済みとして設定しています
./ruby-augeas-0.4.1-3.el7.x86_64.rpm を調べています: ruby-augeas-0.4.1-3.el7.x86_64
./ruby-augeas-0.4.1-3.el7.x86_64.rpm をインストール済みとして設定しています
./ruby-irb-2.0.0.353-22.el7_0.noarch.rpm を調べています: ruby-irb-2.0.0.353-22.el7_0.noarch
./ruby-irb-2.0.0.353-22.el7_0.noarch.rpm をインストール済みとして設定しています
./ruby-libs-2.0.0.353-22.el7_0.x86_64.rpm を調べています: ruby-libs-2.0.0.353-22.el7_0.x86_64
./ruby-libs-2.0.0.353-22.el7_0.x86_64.rpm をインストール済みとして設定しています
./ruby-shadow-2.2.0-2.el7.x86_64.rpm を調べています: 1:ruby-shadow-2.2.0-2.el7.x86_64
./ruby-shadow-2.2.0-2.el7.x86_64.rpm をインストール済みとして設定しています
./rubygem-bigdecimal-1.2.0-22.el7_0.x86_64.rpm を調べています: rubygem-bigdecimal-1.2.0-22.el7_0.x86_64
./rubygem-bigdecimal-1.2.0-22.el7_0.x86_64.rpm をインストール済みとして設定しています
./rubygem-io-console-0.4.2-22.el7_0.x86_64.rpm を調べています: rubygem-io-console-0.4.2-22.el7_0.x86_64
./rubygem-io-console-0.4.2-22.el7_0.x86_64.rpm をインストール済みとして設定しています
./rubygem-json-1.7.7-22.el7_0.x86_64.rpm を調べています: rubygem-json-1.7.7-22.el7_0.x86_64
./rubygem-json-1.7.7-22.el7_0.x86_64.rpm をインストール済みとして設定しています
./rubygem-psych-2.0.0-22.el7_0.x86_64.rpm を調べています: rubygem-psych-2.0.0-22.el7_0.x86_64
./rubygem-psych-2.0.0-22.el7_0.x86_64.rpm をインストール済みとして設定しています
./rubygem-rdoc-4.0.0-22.el7_0.noarch.rpm を調べています: rubygem-rdoc-4.0.0-22.el7_0.noarch
./rubygem-rdoc-4.0.0-22.el7_0.noarch.rpm をインストール済みとして設定しています
./rubygems-2.0.14-22.el7_0.noarch.rpm を調べています: rubygems-2.0.14-22.el7_0.noarch
./rubygems-2.0.14-22.el7_0.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ augeas-libs.x86_64 0:1.1.0-12.el7_0.1 を インストール
---> パッケージ facter.x86_64 1:2.4.1-1.el7 を インストール
---> パッケージ hiera.noarch 0:1.3.4-1.el7 を インストール
---> パッケージ libselinux-ruby.x86_64 0:2.2.2-6.el7 を インストール
---> パッケージ libyaml.x86_64 0:0.1.4-11.el7_0 を インストール
---> パッケージ net-tools.x86_64 0:2.0-0.17.20131004git.el7 を インストール
---> パッケージ pciutils.x86_64 0:3.2.1-4.el7 を インストール
---> パッケージ puppet.noarch 0:3.7.4-1.el7 を インストール
---> パッケージ ruby.x86_64 0:2.0.0.353-22.el7_0 を インストール
---> パッケージ ruby-augeas.x86_64 0:0.4.1-3.el7 を インストール
---> パッケージ ruby-irb.noarch 0:2.0.0.353-22.el7_0 を インストール
---> パッケージ ruby-libs.x86_64 0:2.0.0.353-22.el7_0 を インストール
---> パッケージ ruby-shadow.x86_64 1:2.2.0-2.el7 を インストール
---> パッケージ rubygem-bigdecimal.x86_64 0:1.2.0-22.el7_0 を インストール
---> パッケージ rubygem-io-console.x86_64 0:0.4.2-22.el7_0 を インストール
---> パッケージ rubygem-json.x86_64 0:1.7.7-22.el7_0 を インストール
---> パッケージ rubygem-psych.x86_64 0:2.0.0-22.el7_0 を インストール
---> パッケージ rubygem-rdoc.noarch 0:4.0.0-22.el7_0 を インストール
---> パッケージ rubygems.noarch 0:2.0.14-22.el7_0 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
==================================================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
==================================================================================================================
インストール中:
augeas-libs x86_64 1.1.0-12.el7_0.1 /augeas-libs-1.1.0-12.el7_0.1.x86_64 981 k
facter x86_64 1:2.4.1-1.el7 /facter-2.4.1-1.el7.x86_64 271 k
hiera noarch 1.3.4-1.el7 /hiera-1.3.4-1.el7.noarch 53 k
libselinux-ruby x86_64 2.2.2-6.el7 /libselinux-ruby-2.2.2-6.el7.x86_64 217 k
libyaml x86_64 0.1.4-11.el7_0 /libyaml-0.1.4-11.el7_0.x86_64 130 k
net-tools x86_64 2.0-0.17.20131004git.el7 /net-tools-2.0-0.17.20131004git.el7.x86_64 917 k
pciutils x86_64 3.2.1-4.el7 /pciutils-3.2.1-4.el7.x86_64 189 k
puppet noarch 3.7.4-1.el7 /puppet-3.7.4-1.el7.noarch 6.2 M
ruby x86_64 2.0.0.353-22.el7_0 /ruby-2.0.0.353-22.el7_0.x86_64 63 k
ruby-augeas x86_64 0.4.1-3.el7 /ruby-augeas-0.4.1-3.el7.x86_64 47 k
ruby-irb noarch 2.0.0.353-22.el7_0 /ruby-irb-2.0.0.353-22.el7_0.noarch 157 k
ruby-libs x86_64 2.0.0.353-22.el7_0 /ruby-libs-2.0.0.353-22.el7_0.x86_64 10 M
ruby-shadow x86_64 1:2.2.0-2.el7 /ruby-shadow-2.2.0-2.el7.x86_64 22 k
rubygem-bigdecimal x86_64 1.2.0-22.el7_0 /rubygem-bigdecimal-1.2.0-22.el7_0.x86_64 82 k
rubygem-io-console x86_64 0.4.2-22.el7_0 /rubygem-io-console-0.4.2-22.el7_0.x86_64 16 k
rubygem-json x86_64 1.7.7-22.el7_0 /rubygem-json-1.7.7-22.el7_0.x86_64 93 k
rubygem-psych x86_64 2.0.0-22.el7_0 /rubygem-psych-2.0.0-22.el7_0.x86_64 105 k
rubygem-rdoc noarch 4.0.0-22.el7_0 /rubygem-rdoc-4.0.0-22.el7_0.noarch 1.2 M
rubygems noarch 2.0.14-22.el7_0 /rubygems-2.0.14-22.el7_0.noarch 586 k
トランザクションの要約
==================================================================================================================
インストール 19 パッケージ
合計容量: 22 M
インストール容量: 22 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : ruby-libs-2.0.0.353-22.el7_0.x86_64 1/19
インストール中 : augeas-libs-1.1.0-12.el7_0.1.x86_64 2/19
インストール中 : ruby-augeas-0.4.1-3.el7.x86_64 3/19
インストール中 : net-tools-2.0-0.17.20131004git.el7.x86_64 4/19
インストール中 : pciutils-3.2.1-4.el7.x86_64 5/19
インストール中 : libselinux-ruby-2.2.2-6.el7.x86_64 6/19
インストール中 : libyaml-0.1.4-11.el7_0.x86_64 7/19
インストール中 : rubygem-io-console-0.4.2-22.el7_0.x86_64 8/19
インストール中 : rubygem-json-1.7.7-22.el7_0.x86_64 9/19
インストール中 : ruby-irb-2.0.0.353-22.el7_0.noarch 10/19
インストール中 : rubygem-rdoc-4.0.0-22.el7_0.noarch 11/19
インストール中 : ruby-2.0.0.353-22.el7_0.x86_64 12/19
インストール中 : rubygem-bigdecimal-1.2.0-22.el7_0.x86_64 13/19
インストール中 : rubygems-2.0.14-22.el7_0.noarch 14/19
インストール中 : rubygem-psych-2.0.0-22.el7_0.x86_64 15/19
インストール中 : 1:ruby-shadow-2.2.0-2.el7.x86_64 16/19
インストール中 : hiera-1.3.4-1.el7.noarch 17/19
インストール中 : 1:facter-2.4.1-1.el7.x86_64 18/19
インストール中 : puppet-3.7.4-1.el7.noarch 19/19
検証中 : libyaml-0.1.4-11.el7_0.x86_64 1/19
検証中 : ruby-irb-2.0.0.353-22.el7_0.noarch 2/19
検証中 : rubygems-2.0.14-22.el7_0.noarch 3/19
検証中 : libselinux-ruby-2.2.2-6.el7.x86_64 4/19
検証中 : ruby-2.0.0.353-22.el7_0.x86_64 5/19
検証中 : pciutils-3.2.1-4.el7.x86_64 6/19
検証中 : ruby-augeas-0.4.1-3.el7.x86_64 7/19
検証中 : ruby-libs-2.0.0.353-22.el7_0.x86_64 8/19
検証中 : 1:ruby-shadow-2.2.0-2.el7.x86_64 9/19
検証中 : rubygem-rdoc-4.0.0-22.el7_0.noarch 10/19
検証中 : rubygem-io-console-0.4.2-22.el7_0.x86_64 11/19
検証中 : hiera-1.3.4-1.el7.noarch 12/19
検証中 : net-tools-2.0-0.17.20131004git.el7.x86_64 13/19
検証中 : rubygem-json-1.7.7-22.el7_0.x86_64 14/19
検証中 : rubygem-bigdecimal-1.2.0-22.el7_0.x86_64 15/19
検証中 : augeas-libs-1.1.0-12.el7_0.1.x86_64 16/19
検証中 : 1:facter-2.4.1-1.el7.x86_64 17/19
検証中 : rubygem-psych-2.0.0-22.el7_0.x86_64 18/19
検証中 : puppet-3.7.4-1.el7.noarch 19/19
インストール:
augeas-libs.x86_64 0:1.1.0-12.el7_0.1 facter.x86_64 1:2.4.1-1.el7
hiera.noarch 0:1.3.4-1.el7 libselinux-ruby.x86_64 0:2.2.2-6.el7
libyaml.x86_64 0:0.1.4-11.el7_0 net-tools.x86_64 0:2.0-0.17.20131004git.el7
pciutils.x86_64 0:3.2.1-4.el7 puppet.noarch 0:3.7.4-1.el7
ruby.x86_64 0:2.0.0.353-22.el7_0 ruby-augeas.x86_64 0:0.4.1-3.el7
ruby-irb.noarch 0:2.0.0.353-22.el7_0 ruby-libs.x86_64 0:2.0.0.353-22.el7_0
ruby-shadow.x86_64 1:2.2.0-2.el7 rubygem-bigdecimal.x86_64 0:1.2.0-22.el7_0
rubygem-io-console.x86_64 0:0.4.2-22.el7_0 rubygem-json.x86_64 0:1.7.7-22.el7_0
rubygem-psych.x86_64 0:2.0.0-22.el7_0 rubygem-rdoc.noarch 0:4.0.0-22.el7_0
rubygems.noarch 0:2.0.14-22.el7_0
完了しました!
なお、依存関係のある各rpmパッケージをダウンロードする際、もしOSのバージョンが同じマシンがインターネットに接続でき、かつそのパッケージを未インストールなのであれば、以下のようにyumコマンドを用いてダウンロードすると良いだろう。
yum install --downloadonly --downloaddir=ダウンロード先のディレクトリ パッケージ名
すでに依存関係のあるパッケージがインストールされているマシンでこのコマンドを行うと、そのパッケージについては認識してくれない(ダウンロードしてくれない)ので注意。これはyumdownloaderも同様の様子。