まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:install

マルチスレッド&マルチコア&オンメモリで超ハイパフォーマンス NoSQL 型データベース、と言われている Aerospike をインストールしてみました:
2016081000


Aerospike は Docker や Vagrant のイメージが配布されていたり、AWS や GCE の仮想イメージが配布されていたりするので、これらを使うと「インストール」という作業を行わなくてもそのまま使えちゃいます(現にそのイメージを使う解説サイトも目立ちます)。が、今回はオンプレミスや普通の(?)仮想マシンでも使えるように、サーバーソフトの導入手順を紹介します。例によって CentOS 6.x が対象です。

まず Aerospike の動作には Python (2.6+)、Python ライブラリ、そして gcc が必要になります。これらの前提ライブラリをまとめてインストールしておきます:
# yum install gcc python python-devel

改めて、ここから Aerospike の環境を揃えていきます。今回は無料版であるコミュニティエディションのサーバーノード1つと、AMC(Aerospike Management Console 管理コンソール)1つを1台のマシンに導入する手順を紹介します。

まずサーバーノードを導入します。以下のサイトから対象の環境(今回は CentOS 6 なので、互換性のある RedHat 6)を選んで最新版をダウンロードします:
http://www.aerospike.com/download/server/

2016081003


2016/Aug/10 時点では最新バージョンは 3.9.0.3 でした。ダウンロードできるのは tgz ファイルなので、このアーカイブを展開し、インストーラー(asinstall)を実行してインストールします:
# cd /tmp
# tar xzvf ~/aerospike-server-community-3.9.0.3-el6.tgz
# cd aerospike-server-community-3.9.0.3-el6
# ./asinstall

インストールが成功したら以下のコマンドでサーバーとして起動し、またシステム再起動時に自動起動するよう設定しておきます:
# /etc/init.d/aerospike start
# chkconfig aerospike on

これでサーバーノードがこの環境にインストールできました。次にこのサーバーノードを管理するコンソール機能を導入します。

同様にして、以下のサイトから対象の環境を選んで AMC の最新版をダウンロードします。ちなみに AMC は RedHat 6(CentOS 6) 用のものしか用意されておらず、7.x のものは配布されていませんでした:

http://www.aerospike.com/download/amc/

2016081001


こちらの場合は rpm パッケージファイルがダウンロードできるので、RPM コマンドでそのまま導入します:
# rpm -ivh aerospike-amc-community-3.6.10.1-el6.x86_64.rpm

やはり同様に AMC を起動して、次回再起動時に自動起動するよう設定しておきます:
# /etc/init.d/amc start
# chkconfig amc on

これで導入作業は完了です。試しに一度管理コンソールを見てみましょう。ウェブブラウザを起動して、
 http://(導入先のマシン名):8081/
にアクセスしてみましょう:

2016081002


すると最初の1回は上記のような画面になり、AMC で管理するサーバーノードを指定するよう指示されます。今回は AMC と同じマシンにサーバーノードを導入しているので、同じアドレスか localhost を指定します。ポート番号は特に変更していない限り 3000 のままで大丈夫です:

成功すると AMC の管理画面が現れます:
2016081004


とりあえず1ノード環境ですがこれで動いちゃいました。Aerospike はノードを追加すればリニアにスケールするよう設計されているので、足りなくなったらサーバーノードを追加準備して、この AMC に追加すれば使えちゃいます。データの増減が大きいシステムに非常に向いていると言えます。




少し遅れてしまいましたが、2016/Jul/02 に Ruby の Web アプリケーションフレームワークである Rails の最新バージョン 5.0 のリリースが発表されました:
This Week In Rails: Rails 5 is out with new guides and more!


早速インストールしてみたので、その手順を紹介します。対象は CentOS 6.x とします。また導入手順としては rbenv を使って Ruby 本体を導入し、続けて gem で Rails 5.0 を導入します。

まずは Ruby の導入です。CentOS の場合、Ruby は "yum install ruby" で導入することも可能ですが、デフォルトで導入される Ruby のバージョンが少し低い(1.8.x)ので、rbenv を使って 2.x を導入することにします。なお Rail 5.0 のサポート Ruby バージョンは 2.2 以上とのことです。

というわけで、最初に rbenv を導入します。rbenv の導入前提として git が、そして rbenv を使って Ruby 2.x を導入する際の前提としていくつかの開発用ライブラリ必要になります。先に導入しておきましょう:
# yum install git gcc make openssl-devel libffi-devel readline-devel

では改めて rbenv を導入します:
# cd /opt
# git clone git://github.com/sstephenson/rbenv.git
# mkdir /opt/rbenv/plugins
# cd /opt/rbenv/plugins
# git clone git://github.com/sstephenson/ruby-build.git

最後に /etc/profile に次の3行を追加します:
export RBENV_ROOT="/opt/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"

そして一旦ログアウトして再ログインします(編集した /etc/profile を読み込んで rbenv を有効にします)。

更に ruby-build を導入して、rbenv で install コマンドを実行できるようにしておきます:
# cd /usr/local/src
# git clone git://github.com/sstephenson/ruby-build.git
# cd ruby-build
# ./install.sh

ここまでの準備が長かったのですが、これで rbenv が導入できました。rbenv を使って、今回は Ruby 2.2.5 を導入します:
# rbenv install 2.2.5
   :
# rbenv global 2.2.5
# ruby -v
ruby 2.2.5p319 (2016-04-26 revision 54774) [x86_64-linux] <- 確認

Ruby が導入できたことを確認し、最後に gem を使って Rails 5.0 を導入します:
# gem update --system
# gem install rails -v 5.0.0
# gem install bundler
# rbenv rehash
# rails -v
Rails 5.0.0 <- 確認

導入できましたー!


CentOS / RHEL(RedHat Enterprise Linux) に Ruby 2.x をインストールする手順を紹介します。

Ruby のバージョンにこだわらないのであれば、コマンドラインから
# yum install ruby
と入力するだけでインストールできます。ただ 2015/Feb/18 現在、この方法でインストールできる Ruby のバージョンは 1.8.7 でした。このバージョンで特に支障がなければこの方法が一番簡単だと思っています。


以下、どうしても Ruby 2.x を使いたい、という人のための導入方法の紹介です。CentOS で Ruby 2.x を導入する方法はいくつかあって、ソースコードからビルドするという一般的な手順もあるのですが、ここでは rbenv を使った方法を紹介します。

rbenv は複数バージョンの Ruby を同一コンピュータ上で管理する GitHub 提供のツールです。2.x に限らず 1.x も含めた複数バージョンの Ruby を同じマシンにインストールし、実際に利用するバージョンを管理しながら使えるようにできます。このツールを使って Ruby の最新版をインストールしてみます。


まず、rbenv は GitHub から提供されていることもあり、git の入手が必須です。まだ導入できていない場合はこのコマンドで git を導入してください:
# yum install git

そして git を使って GitHub から rbenv をチェックアウトします。今回は /opt/ 以下に Ruby をインストールするという前提にします:
# cd /opt
# git clone git://github.com/sstephenson/rbenv.git

続けて ruby-build プラグインを rbenv の plugins フォルダにインストールします:
# mkdir /opt/rbenv/plugins
# cd /opt/rbenv/plugins
# git clone git://github.com/sstephenson/ruby-build.git

最後に /etc/profile に以下の3行を追加して、rbenv を初期化&実行するための環境設定を行います:
export RBENV_ROOT="/opt/rbenv"
export PATH="${RBENV_ROOT}/bin:${PATH}"
eval "$(rbenv init -)"

ここまでの作業で rbenv の導入が完了しました。再ログインするとか、シェルを再起動するなりして最後の環境設定までが反映された状態にしてください。

更に、この後の作業で必要になるモジュールを(エラーが出る前に)yum でインストールしておきます:
# yum install gcc make openssl-devel libffi-devel

ここまでの準備ができていれば Ruby のインストール作業に移れます。まずは rbenv でインストールできる Ruby のバージョン一覧を確認してみます:
# rbenv install -l
Available versions:
  1.8.6-p383
  1.8.6-p420
  1.8.7-p249
  1.8.7-p302
  1.8.7-p334
  1.8.7-p352
  1.8.7-p357
  1.8.7-p358
    :
    :
  2.1.5
  2.2.0-dev
  2.2.0-preview1
  2.2.0-preview2
  2.2.0-rc1
  2.2.0
  2.3.0-dev
  jruby-1.5.6
    :
    :
  ree-1.8.7-2012.02
  topaz-dev

JRuby とかもリストされてますが、今回は普通(?)の Ruby だけで考えます。バージョン番号に rc とか dev とか preview とか付いているのは開発中のものだったりします。この一覧を見る限り安定版では 2.2.0 が最新のようなので、これをインストールしてみましょう(結構時間かかります):
# rbenv install 2.2.0
Downloading ruby-2.2.0.tar.gz...
    :
    :


そして、この Ruby 2.2.0 をシステムで使うデフォルトバージョンとして設定した上で動作確認します:
# rbenv global 2.2.0
# ruby -v
ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-linux]

Ruby 2.2.0 が導入できました! 


この後で別のバージョンが必要になった場合は同様に
# rbenv install X.X.X

でインストールし、
# rbenv global X.X.X

でデフォルトバージョンを変更できます。







 

CentOS にデフォルトで導入される PHP は 5.3 系です:
# php -v
PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

場合によってはこのバージョンでは不都合が生じ、もっと新しい 5.4 や 5.5 が必要になることがあります。その場合の導入方法を紹介します。

まずは必要な yum レポジトリを追加します(CentOS6 64bit の例)。これによって標準状態では探せなかった PHP5.4 や PHP5.5 を探すことができるようになります:
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -Uvh http://dl.iuscommunity.org/pub/ius/stable/Redhat/6/x86_64/ius-release-1.0-11.ius.el6.noarch.rpm
# rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
次にインストール済みの PHP 5.3 パッケージを削除します:
# yum erase php*

そして新しい PHP のモジュールをインストールします。PHP 5.4 であればこんな感じ(この例では PHP 本体に加えて、他バイト言語用拡張と MySQL 用拡張を追加しています。必要なものを適宜同様に加えてください):
# yum install php54 php54-mbstring php54-mysql

PHP 5.5 ではこのようになります:
# yum install php55 php55-mbstring php55-mysql

最初にリポジトリを追加してしまえば簡単ですね。

 

IBM Notes を Linux で使いたい、、という需要がどれだけあるかわかりませんが、その導入方法は Windows での場合と比べてちとクセがあります。というわけで、その一連の手順を紹介します。念のため繰り返しますが、Linux にインストールするのは IBM Domino サーバーではなく IBM Notes クライアント、の説明です。


なお、以下で紹介する手順で使う Linux はいろんなクラウドからも提供されていて入手しやすい RHEL(RedHat Enterprise Linux)または CentOS (64bit、バージョンは6)とします。IBM 的には RHEL での動作のみサポートしていて、CentOS はサポート外ですので注意してください。また Notes ID ファイルなどは既に手元にあるものとします。

まず、何はともあれ、RHEL 版(正確には RHEL へのインストールを考慮して用意された rpm 版)の IBM Notes 本体を入手する必要があります。購入するなどして既にお持ち/入手可能な方は読み飛ばしてください。まだお持ちで無い方は無料トライアル版が用意されているのでそちらを使いましょう。IBM developerWorks無料トライアルダウンロードから "Download trial" ボタンをクリックして、IBM ID とパスワード(取得していない場合はこちら(PDF)を参照して無料登録してください)を入力して進んでいくと、どの地域/バージョンの IBM Notes をダウンロードするか、が聞かれます。ここでは現時点で提供されている中では最新版であるバージョン 9.0.1 の "Asia Pacific" 地域を選択して先に進みます:
2014102101


※もちろん英語版を希望する場合は English を選択するなどして、これ以降も適宜読み替えてください。

更に先に進んだ先でサーバー(Domino)かクライアント(Notes)か、プラットフォーム、そして言語を指定します。ここでは Notes クライアントでプラットフォームは rpm 、そして言語に Japanese を選択してダウンロードします。インストール先のシステムが既に用意されている場合は、ダウンロード後は Notes ID などと一緒に SFTP などで転送しておきます:
2014102102


ここでは上記の NC_V9.0.1_LnxRPM_I_JAEva.tar をダウンロードしたものとして、このファイルを目的のサーバーの /tmp 以下に転送済みであるものとします。

次にインストール先システムでの事前準備です。RHEL/CentOS をこれから(ゼロから)インストールするのであれば、最初から日本語デスクトップ利用を前提としたオプションでインストールしてください。AWS など、既に OS がインストール済みのインスタンスを使う場合は、おそらくサーバー用途用の最小構成になっていると思われるので、デスクトップ用に足りないライブラリ等を追加します。具体的には SSH やターミナル等のコマンドラインからこんな感じでしょうか:
# yum groupinstall "X Window System" (X Window)
# yum groupinstall "Desktop" (クライアントデスクトップ)
# yum groupinstall "Japanese Support" (せっかくなので日本語サポート機能も)

日本語サポートまで導入した場合は /etc/sysconfig/i18n を編集して、環境変数 LANG の値を日本語 UTF-8 に指定して再起動します:
LANG="ja_JP.UTF-8"

次に IBM Notes 実行時用のユーザーを作成します。IBM Notes のインストールには root 権限が必要ですが、root ユーザーでは実行できません。別の一般ユーザーが作成済みで、そのユーザーを使うのであればそのユーザーを決めておきます。新たに IBM Notes 実行用のユーザーを作成する必要がある場合は、以下のコマンドで作成します(この例では notesuser というユーザーを新規に作成しています):
# adduser notesuser
# passwd notesuser
  :


また、IBM Notes のインストール作業からはデスクトップ環境が必要になります。必要なライブラリは上記で導入できていますが、SSH などのコマンドラインだけではできない作業が含まれています。実機にアクセスして GNOME のデスクトップを開ける場合はいいのですが、SSH などのリモートコンソールでしか接続出来ない場合は VNC 環境も用意しましょう。RHEL/CentOS への VNC の導入方法についてはこちらを参照ください:
CentOS に VNC サーバーを導入する

これも実機に直接触れる環境があればいいのですが、クラウドなどで VNC 環境を構築する場合の注意点として、上記にもあるように root ユーザーでは IBM Notes を実行できません。一般ユーザー権限で IBM Notes を実行する必要があるため、VNC の接続時にも root 以外の(IBM Notes 用に用意した)一般ユーザーの権限で VNC 接続するよう設定する必要があります。


上記ページの最後の部分までできると、Windows などのリモート環境から今回 IBM Notes をインストールする目的のマシンの GNOME デスクトップが開けるようになっていることになります:



さて、ここからが IBM Notes のインストール作業です。ここからは SSH などのテキストコンソールではなく、実機のモニターや VNC 接続などを使って X Window ベースのデスクトップ環境を開いた上での root 権限で行う必要があります。

まずは IBM developerWorks 等からダウンロードしたインストールモジュールファイルを tar 一時ディレクトリに展開します:
# mkdir /tmp/n9
# cd /tmp/n9
# tar xvf /tmp/NC_V9.0.1_LnxRPM_I_JAEva.tar

展開後のファイルの中に notes.ja.sh(ja 部分は言語によって変わります)というインストール用シェルスクリプトがあるので、これを実行してインストールします。このシェルスクリプトを実行することで必要な rpm を順次導入してくれます:
# ./notes.ja.sh

が、このまま普通に実行すると依存性に関するエラーが大量にでるはずです(実際の出力内容は環境によって異なります): 
エラー: 依存性の欠如:
 gdb は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 tcsh は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libart_lgpl_2.so.2 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libasound.so.2 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libatk-1.0.so.0 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libbonobo-2.so.0 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libbonobo-activation.so.4 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libnonoboui-2.so.0 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
 libcript.so.1 は ibm_notes_9.0.1-20131022.1138.i586 に必要とされています
  :
  :

ここでXXX は ibm_notes_9.0.1-****** に必要とされています」と表示される XXX の部分は、IBM Notes の動作およびインストール時に必要なモジュールであるにも関わらず、まだ同システムに導入されていないもの、いわば「足りないものリスト」です。この内容は同環境に今何がインストールされているか/されていないか によっても変わるので、人によって少なかったり多かったりします。いずれにせよ、ここで表示されるライブラリの一覧を導入しきらない限り IBM Notes はインストールできません。

上記例であれば以下の様な感じで、足りないものを順次、気長に yum でインストールしていきます:
# yum install gdb
# yum install tcsh
# yum install libart_lgpl_2.so.2
# yum install libasound.so.2
#  :

なお、あるモジュールをインストールすることで一緒に他のモジュールが導入されることも珍しくありません(インストール済みだった場合には yum コマンドの結果、"already installed" と表示されます)。エラーとして表示される全てのモジュール回数分だけ繰り返す必要はないと思います。

そして、全ての前提ライブラリの導入が終わったら、再度 IBM Notes のインストールコマンドを実行します:
# ./notes.ja.sh

前提ライブラリの導入漏れがなければインストーラが実行されていきます:
2014102103


Step1 から Step3 までが無事に終わると、インストールは完了です。ちなみにデフォルト設定ではプログラムは /opt/ibm/notes 以下にインストールされています:
2014102104

インストールが完了したので、とうとうセットアップです。ここからは root でない、一般ユーザーの GNOME(X Window) デスクトップ環境で作業することになる点を再度留意してください。

まずメニューから アプリケーション > オフィス(!?) > IBM Notes ができているはずなのでこれを選択します:
2014102105

スプラッシュスクリーンが表示されて、セットアップが開始されます:
2014102106

このようなウィンドウが表われて、使用条件が表示されます。内容を確認して、同意する場合は 1 続いて Enter を押します:
2014102107

Windows/Mac OS X 環境ではお馴染みのセットアップが開始されます:
2014102108

これ以降は基本的に Windows や Mac OS X での作業と変わりありません。Domino サーバーを指定して、ユーザーを指定して、Notes ID ファイルを指定して、パスワードを入力して、・・・という順にセットアップを行っていくだけです。


そして、最終的にセットアップが完了すればノーツクライアントが RHEL/CentOS 上で起動します。次回起動時はメニューから同じ項目を選択すればセットアップを飛ばして起動できます:
2014102109


こうなると今度は、現在 WIndows でしか使えない Domino Designer クライアントや Domino Administrator クライアントも欲しくなる。後者は Web でできないこともないけど、前者は Windows 必須なので。

それにしても IBM Notes って「オフィス」に分類されてるんだ、ふーん。。。

LibreOffice をインストールすると IBM Notes と Office スイートが同じメニューカテゴリに入るのがなんか違和感あるんだよな。。
 2014102110

このページのトップヘ