インターネットに接続されていないスタンドアロン状態のRedHatにミドルウェアをインストールすることになったのですが、これがめちゃくちゃ大変です。
LinuxベースのOSはyumでミドルウェアをインストールしようとすると、yumが自動で必要なほかのライブラリをインストールしてくれるのです。しかし、インターネットに接続していないとyumはライブラリを取得できないようなんです。
このあたり、よくわかっていなかったので大変苦労しました。
yumは設定ファイルに記載されたリポジトリを参照して、ライブラリを取得します。参照先はインターネットだったり、ローカルファイルだったり設定ファイルに記載された設定次第で様々な参照先を指定することが出来ます。
インターネットに接続できない状態でyumを使うためには、ローカルにライブラリを持ち設定ファイルでそこを参照する必要があります。しかし、今回の環境はローカルにもライブラリを持っていませんでした。おそらく最小構成でOSをインストールしたのかと思います。このような環境ではyumコマンドは使用できないのでrpmコマンドでインストールすることにしました。ちなみに、この環境でyumコマンドを使用するとエラーが返ってきます。
rpmコマンドはyumコマンドと違い、依存性を考慮し自動でライブラリのインストールはしてくれません。しかし、ライブラリを指定してインストールすることはできます。そしてrpmコマンドでインストールを始めて2時間程度たったころでしょうか、あまりの依存性の多さにrpmでのミドルウェアインストールはあきらめました。
ひとつづつrpmでライブラリをインストールするのはとても大変なので、ローカルにレポジトリを作ることにします。必要なrpmをディレクトリに配置してそこをレポジトリに設定します。そして、yumでそのリポジトリを参照して自動で依存性を解決してもらうことにしました。レポジトリをつくるのにもcreaterepoというコマンドに必要なライブラリがあったのでそれは先にインストールしておきます。
これで解決です。
ここで少しつまずいたところは、必要なライブラリはどこから持ってきたらいいかです。調査したところ、CentOS-Everything.isoが良さそうなのでダウンロードしてrpmを抜き出して配置しました。なぜCentOS-Everything.isoが良さそうなのか?まずは似たOS、ライブラリはないか調査しました。
そもそもRedHatって何ベースのOSなのか?
そこもわかっていなかったので調査したところ、LinuxベースのOSのようですね。Linuxのライセンス形態はGPLなので、Linuxをベースとして改変したものはコードを公開しないといけません。よって、RedHatもコードを公開しているんですね。このあたり、セキュリティは大丈夫なのかと気になりますね。
そして、調査していく中でさらにおもしろいことが2つ判明しました。
1.RedHatは検証版を無償で提供しています、それがFedoraです。
2.RedHatのクローンが無償版であります。それがCentOSです。これはRedHatとは別の団体が作っていますが、RedHatはCentOSの支援を行っています。