[MarkLogic]オフライン環境でMarkLogic9をインストールする

# はじめに
システムの環境によってはインターネットに接続できないオフライン環境でMarkLogicをインストールしなければならないことがあります。
MarkLogicは依存するライブラリが多く、その全てをリストアップして手作業でインストールするのは大変です。

そのような制約環境でのインストール方法を記します。

# 環境
以下の環境での方法を記します。

| 資材等 | バージョン |
| --- | --- |
| CentOS7 | 7.4.1708 |
| MarkLogic9 | 9.0-3.1 |

# 事前準備
[CentOS](https://www.centos.org/download/)のイメージファイルをダウンロードします。Everything ISOをダウンロードする必要があります。
[MarkLogic9](http://developer.marklogic.com/products)のRPMファイルもダウンロードします。

# CentOSのISOファイルをyumリポジトリに追加する
CentOSのISOファイルをメディアに書き込むか、仮想環境ならばISOイメージを仮想ディスクとして読み込むなどしてマウントします。ここでは"/media"にマウントする例を記します。

```
# mount /dev/cdrom /media
```

続いて、yumのリポジトリの設定ファイルを作成します。

```
# /etc/yum.repos.d/media.repo

[media]
name=media
baseurl=file:///media/
enabled=1
gpgcheck=0
```

# MarkLogicのインストール
CentOSのISOイメージを対象にyumリポジトリを用意したたため、yumを使ってMarkLogicをインストールできるようになりました。
以下のように実行します。

```
# yum --disablerepo=* --enablerepo=media localinstall [MarkLogicのRPMファイル]
```

実行すると以下のように表示されます。

```
読み込んだプラグイン:fastestmirror, langpacks
/tmp/MarkLogic-9.0-3.1.x86_64.rpm を調べています: MarkLogic-9.0-3.1.x86_64
/tmp/MarkLogic-9.0-3.1.x86_64.rpm をインストール済みとして設定していま す
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ MarkLogic.x86_64 0:9.0-3.1 を インストール
--> 依存性の処理をしています: lsb-core-amd64 のパッケージ: MarkLogic-9.0-3.1.x86_64
media                                                    | 3.6 kB     00:00
(1/2): media/primary_db                                    | 5.7 MB   00:00
(2/2): media/group_gz                                      | 156 kB   00:00
Determining fastest mirrors
--> 依存性の処理をしています: libc.so.6(GLIBC_2.14) のパッケージ: MarkLogic-9.0-3.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ glibc.i686 0:2.17-196.el7 を インストール
--> 依存性の処理をしています: libfreebl3.so(NSSRAWHASH_3.12.3) のパッケージ: glibc-2.17-196.el7.i686
--> 依存性の処理をしています: libfreebl3.so のパッケージ: glibc-2.17-196.el7.i686
---> パッケージ redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1 を インストール
--> 依存性の処理をしています: redhat-lsb-submod-security(x86-64) = 4.1-27.el7.centos.1 のパッケージ: redhat-lsb-core-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: spax のパッケージ: redhat-lsb-core-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: /usr/bin/patch のパッケージ: redhat-lsb-core-4.1-27.el7.centos.1.x86_64
--> 依存性の処理をしています: /usr/bin/m4 のパッケージ: redhat-lsb-core-4.1-27.el7.centos.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ m4.x86_64 0:1.4.16-10.el7 を インストール
---> パッケージ nss-softokn-freebl.i686 0:3.28.3-6.el7 を インストール
---> パッケージ patch.x86_64 0:2.7.1-8.el7 を インストール
---> パッケージ redhat-lsb-submod-security.x86_64 0:4.1-27.el7.centos.1 を イン ストール
---> パッケージ spax.x86_64 0:1.5.2-13.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

================================================================================
 Package             アーキテクチャー
                            バージョン          リポジトリー               容量
================================================================================
インストール中:
 MarkLogic           x86_64 9.0-3.1             /MarkLogic-9.0-3.1.x86_64 1.0 G
依存性関連でのインストールをします:
 glibc               i686   2.17-196.el7        media                     4.2 M
 m4                  x86_64 1.4.16-10.el7       media                     256 k
 nss-softokn-freebl  i686   3.28.3-6.el7        media                     198 k
 patch               x86_64 2.7.1-8.el7         media                     110 k
 redhat-lsb-core     x86_64 4.1-27.el7.centos.1 media                      38 k
 redhat-lsb-submod-security
                     x86_64 4.1-27.el7.centos.1 media                      15 k
 spax                x86_64 1.5.2-13.el7        media                     260 k

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

合計容量: 1.1 G
総ダウンロード容量: 5.1 M
インストール容量: 1.1 G
Is this ok [y/d/N]: y
Downloading packages:
--------------------------------------------------------------------------------
合計                                                50 MB/s | 5.1 MB  00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : redhat-lsb-submod-security-4.1-27.el7.centos.   1/8
  インストール中          : nss-softokn-freebl-3.28.3-6.el7.i686            2/8
  インストール中          : glibc-2.17-196.el7.i686                         3/8
  インストール中          : spax-1.5.2-13.el7.x86_64                        4/8
  インストール中          : m4-1.4.16-10.el7.x86_64                         5/8
  インストール中          : patch-2.7.1-8.el7.x86_64                        6/8
  インストール中          : redhat-lsb-core-4.1-27.el7.centos.1.x86_64      7/8
  インストール中          : MarkLogic-9.0-3.1.x86_64                        8/8
  検証中                  : redhat-lsb-submod-security-4.1-27.el7.centos.   1/8
  検証中                  : spax-1.5.2-13.el7.x86_64                        2/8
  検証中                  : glibc-2.17-196.el7.i686                         3/8
  検証中                  : redhat-lsb-core-4.1-27.el7.centos.1.x86_64      4/8
  検証中                  : MarkLogic-9.0-3.1.x86_64                        5/8
  検証中                  : m4-1.4.16-10.el7.x86_64                         6/8
  検証中                  : patch-2.7.1-8.el7.x86_64                        7/8
  検証中                  : nss-softokn-freebl-3.28.3-6.el7.i686            8/8

インストール:
  MarkLogic.x86_64 0:9.0-3.1

依存性関連をインストールしました:
  glibc.i686 0:2.17-196.el7
  m4.x86_64 0:1.4.16-10.el7
  nss-softokn-freebl.i686 0:3.28.3-6.el7
  patch.x86_64 0:2.7.1-8.el7
  redhat-lsb-core.x86_64 0:4.1-27.el7.centos.1
  redhat-lsb-submod-security.x86_64 0:4.1-27.el7.centos.1
  spax.x86_64 0:1.5.2-13.el7

完了しました!
```

これでインストールが完了します。

# おわりに
MarkLogicは多くの依存ライブラリを必要としており、特に64bit版と32bit版の両方が必要なものが多々あります。
CentOSのISOイメージもDVD ISOでは不足しているものがありますので、Everything ISOを用意するのが楽です。

yumのリポジトリをローカル環境に構築する方法は、他の資材のインストールでも役立つのでご参考になれば幸いです。


```math
\def\textsmall#1{%
  {\rm\scriptsize #1}
}
```

------------------------------------------------------------------------

**免責事項**

​​​​​$\textsmall{当ユーザ会は本文書及びその内容に関して、いかなる保証もするものではありません。}$
​​​​​$\textsmall{万一、本文書の内容に誤りがあった場合でも当ユーザ会は一切責任を負いかねます。}$
​​​​​$\textsmall{また、本文書に記載されている事項は予告なしに変更または削除されることがありますので、予めご了承ください。}$