サーバを構築する際、サーバ自体がインターネットに接続出来る環境というのはそうそう無い。 そういった場合、ソフトウェアをインストールする際はyumコマンドを使わず、rpmパッケージを別途用意して各サーバに配布、インストールを行わせる方法が基本となるだろう。

しかし、rpmパッケージの場合依存関係を考慮する必要があり、インストールの順番に気を使うなど面倒な事も多い。 インターネットに接続していない状態でもyumでパッケージを導入するには、どうすればいいのだろうか?

実は、yumのリポジトリにインストールディスクを指定することで、そのディスクに入っているバージョンのパッケージであればyumでインストールが可能となる。 今回は、CentOS 7でリポジトリにディスクを追加、yumでのパッケージインストールを実行する。

1.リポジトリ登録

まずは、リポジトリの作成前にディスクをマウントポイントにマウントする。

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/

次に、リポジトリの追加を行う。 以下のコマンドでエディタを開き、新規のリポジトリファイルを作成する。

vim /etc/yum.repos.d/local_dvd.repo
[local_dvd]
name=CentOS 7 x86_64 DVD
baseurl=file:///mnt/cdrom/
enabled=0
gpgcheck=0
gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-CentOS-7

「[]」で囲まれている名前をyumコマンドで指定する。 指定しているそれぞれの値の意味は以下。

  • name … レポジトリの名前。レポジトリ指定時に利用するわけではないが、何のリポジトリなのかがわかりやすいよう記述する。
  • baseurl … 「file://」以降にリポジトリのPATHを記述する。今回の場合、マウントポイントである「/mnt/cdrom/」が該当する。
  • enabled … 1になっている場合、yumを通常に実行した時に有効となる。今回の設定はあくまでも緊急のため、0(通常時は無効)とする。
  • gpgcheck … パッケージの署名を確認する。今回の場合は0(無効)とする。
  • gpgkey … パッケージのGPG署名のPATHを記述する。

さて、これでリポジトリの準備が出来た。

2.yumを実行する

リポジトリの準備が出来たので、実際にyumを実行してみよう。 上記設定でyumを実行する場合、以下のようにコマンドを実行する。

yum --disablerepo=\* --enablerepo=local_dvd yumで実行するコマンド

「--disablerepo」および「--enablerepo」でlocal_dvd以外のリポジトリを無効化している。 DVDからどのようなパッケージをインストール出来るかは、listで確認すると良いだろう。

yum --disablerepo=\* --enablerepo=local_dvd list

上記コマンドで出力されたパッケージを導入出来る。 それでは、実際にrsyncをインストールしてみよう。

yum --disablerepo=\* --enablerepo=local_dvd install rsync
[root@localhost ~]# yum --disablerepo=\* --enablerepo=local_dvd install rsync
読み込んだプラグイン:fastestmirror
local_dvd                                                                                                             | 3.6 kB  00:00:00
Loading mirror speeds from cached hostfile
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ rsync.x86_64 0:3.0.9-15.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

=============================================================================================================================================
 Package                       アーキテクチャー               バージョン                             リポジトリー                       容量
=============================================================================================================================================
インストール中:
 rsync                         x86_64                         3.0.9-15.el7                           local_dvd                         359 k

トランザクションの要約
=============================================================================================================================================
インストール  1 パッケージ

総ダウンロード容量: 359 k
インストール容量: 732 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : rsync-3.0.9-15.el7.x86_64                                                                                    1/1
  検証中                  : rsync-3.0.9-15.el7.x86_64                                                                                    1/1

インストール:
  rsync.x86_64 0:3.0.9-15.el7

完了しました!

これで、無事インターネットに接続せずに、DVDからyumでインストールを行えた。 rpmの依存関係を調べるのがダルかったり、時間の無いときはこれで対処すると良いだろう。比較的よく使う方法ではあるので、覚えておいて損はないと思う。