オフラインのCentOS7にインストールメディアからyumでパッケージをインストールする(CLI)

VMware playerにCentOS7をインストール。
VMware playerのバージョンは6.0.2で、簡単インストールのメニューは
まだ出ていません。そのうち出ると手順前の条件が変わるかも。

VMware Playerで評価を行っている場合、インターネットには接続せず
オフラインでサーバを動かすことがある。
CLI経由でインストールメディアからパッケージをインストールする方法のメモ。

過去記事とほぼ同じ手順なんですが、CentOS7は最小インストールが
デフォルトになっているので今まで以上にはまる人が多そうで
CentOS7はあえて独立させてみました。

----------

(1) メディアを入れる

VMware playerでは右上にあるCDアイコンに色がついていたら
ドライブが接続されている状態です。
グレーアウト?していたらCDアイコンを右クリックから接続。
![Win81_000241.png](https://qiita-image-store.s3.amazonaws.com/0/45890/4fd8c278-3590-96a0-c6be-bf805b8ef5db.png)

----------

(2) メディアをマウント

メディアを入れただけでは、ファイルを読み込めないので
ドライブをマウントしてメディアの中のファイルを使用できるようにする。

・メディアをマウントするディレクトリの作成

```
# mkdir /media/centos7
```

・メディアをマウント

```
# mount -t iso9660 /dev/cdrom /media/centos7
mount: /dev/sr0 is write-protected, mounting read-only
```

※環境に合わせて調整が必要かも
  自分の環境では /dev/cdrom がなくて /dev/cdrom1 だった

・内容確認

```
# ls -l /media/centos7/
合計 607
-rw-r--r--. 1  500  502     14  7月  5 01:01 CentOS_BuildTag
drwxr-xr-x. 3  500  502   2048  7月  5 00:59 EFI
-rw-r--r--. 1  500  502    611  7月  5 01:01 EULA
-rw-r--r--. 1  500  502  18009  7月  5 01:01 GPL
drwxr-xr-x. 2  500  502   2048  7月  5 00:59 LiveOS
drwxr-xr-x. 2  500  502 581632  7月  5 19:26 Packages
-rw-r--r--. 1  500  502   1690  7月  5 01:01 RPM-GPG-KEY-CentOS-7
-rw-r--r--. 1  500  502   1690  7月  5 01:01 RPM-GPG-KEY-CentOS-Testing-7
-r--r--r--. 1 root root   2883  7月  7 02:32 TRANS.TBL
drwxr-xr-x. 3  500  502   2048  7月  5 00:59 images
drwxr-xr-x. 2  500  502   2048  7月  5 00:59 isolinux
drwxr-xr-x. 2 root root   4096  7月  5 19:43 repodata
```

----------

(3) viでrepoファイル作成

レポジトリの設定が入っているディレクトリに
新規にレポジトリ定義用の設定ファイルを作成する。

・レポジトリ設定ディレクトリに移動

```
# cd /etc/yum.repos.d/
# ls -l
total 16
-rw-r--r--. 1 root root 1926 Jul  6 16:30 CentOS-Base.repo
-rw-r--r--. 1 root root  638 Nov 27  2013 CentOS-Debuginfo.repo
-rw-r--r--. 1 root root  630 Nov 27  2013 CentOS-Media.repo
-rw-r--r--. 1 root root 3664 Nov 27  2013 CentOS-Vault.repo
```

・ファイルの作成

```
# vi media_default.repo
```

```
[media_default]
name=media_default
baseurl=file:///media/centos7    ※
gpgcheck=0
enabled=0
```
・※の部分にメディアがマウントされたパスを入れる。
　スラッシュが多くて分かりずらいけど、```file://```＋```/media/centos7``` で分かれる。

・内容の確認

```
# cat media_default.repo
```

準備はこれで完了。

----------

(4) アプリケーションのインストール

パッケージリストを取得してみる。
作成したrepo以外を一緒に取得するとエラーになることがあるので、
media_default のみを指定する。

```
# yum --disablerepo=\* --enablerepo=media_default list
読み込んだプラグイン:fastestmirror
media_default                                            | 3.6 kB     00:00     
(1/2): media_default/group_gz                              | 157 kB   00:00     
(2/2): media_default/primary_db                            | 2.7 MB   00:00     
Determining fastest mirrors
インストール済みパッケージ
ModemManager-glib.x86_64               1.1.0-6.git20130913.el7     @anaconda    
NetworkManager.x86_64                  1:0.9.9.1-13.git20140326.4dba720.el7
                                                                   @anaconda    
NetworkManager-glib.x86_64             1:0.9.9.1-13.git20140326.4dba720.el7
(略)
```

パッケージがたくさん表示されたらOK。
CentOS7 では apache(httpd) すら入ってなかったのでインストールしてみる。

```
# yum --disablerepo=\* --enablerepo=media_default install httpd
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-17.el7.centos.1 を インストール
--> 依存性の処理をしています: httpd-tools = 2.4.6-17.el7.centos.1 のパッケージ: httpd-2.4.6-17.el7.centos.1.x86_64
--> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-17.el7.centos.1.x86_64
--> 依存性の処理をしています: libaprutil-1.so.0()(64bit) のパッケージ: httpd-2.4.6-17.el7.centos.1.x86_64
--> 依存性の処理をしています: libapr-1.so.0()(64bit) のパッケージ: httpd-2.4.6-17.el7.centos.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr.x86_64 0:1.4.8-3.el7 を インストール
---> パッケージ apr-util.x86_64 0:1.5.2-6.el7 を インストール
---> パッケージ httpd-tools.x86_64 0:2.4.6-17.el7.centos.1 を インストール
---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package         アーキテクチャー
                            バージョン                  リポジトリー       容量
================================================================================
インストール中:
 httpd           x86_64     2.4.6-17.el7.centos.1       media_default     2.7 M
依存性関連でのインストールをします:
 apr             x86_64     1.4.8-3.el7                 media_default     103 k
 apr-util        x86_64     1.5.2-6.el7                 media_default      92 k
 httpd-tools     x86_64     2.4.6-17.el7.centos.1       media_default      77 k
 mailcap         noarch     2.1.41-2.el7                media_default      31 k

トランザクションの要約
================================================================================
インストール  1 パッケージ (+4 個の依存関係のパッケージ)

総ダウンロード容量: 3.0 M
インストール容量: 10 M
Is this ok [y/d/N]: y
Downloading packages:
--------------------------------------------------------------------------------
合計                                                14 MB/s | 3.0 MB  00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : apr-1.4.8-3.el7.x86_64 [######################] 1/5
  インストール中          : apr-util-1.5.2-6.el7.x [######################] 2/5
  インストール中          : httpd-tools-2.4.6-17.e [######################] 3/5
  インストール中          : mailcap-2.1.41-2.el7.n [######################] 4/5
  インストール中          : httpd-2.4.6-17.el7.cen [######################] 5/5
  検証中                  : mailcap-2.1.41-2.el7.noarch                     1/5 
  検証中                  : httpd-2.4.6-17.el7.centos.1.x86_64              2/5 
  検証中                  : apr-util-1.5.2-6.el7.x86_64                     3/5 
  検証中                  : apr-1.4.8-3.el7.x86_64                          4/5 
  検証中                  : httpd-tools-2.4.6-17.el7.centos.1.x86_64        5/5 

インストール:
  httpd.x86_64 0:2.4.6-17.el7.centos.1                                          

依存性関連をインストールしました:
  apr.x86_64 0:1.4.8-3.el7                      apr-util.x86_64 0:1.5.2-6.el7   
  httpd-tools.x86_64 0:2.4.6-17.el7.centos.1    mailcap.noarch 0:2.1.41-2.el7   

完了しました!
```

CentOS7 のapacheのバージョンは 2.4.6 みたいですね。

----------

(5) メディアのアンマウント

```
# umount /media/centos7
# rm -rf /media/centos7
```

----------

(6) メディアを取り外す