かんちゃんの備忘録

プログラミングや言語処理、ガジェットなど個人の備忘録です。(メモ書き+α)

研究室の計算機管理者のススメ(3)ツールや言語資源の管理

ツールや言語資源の管理に挑戦しよう

少々、日があいてしまいました。 今回はツールや言語資源の管理について書きます。

ツールの管理

自然言語処理では、様々なツールを管理する必要があります。 ユーザーごとに各自の領域でコンパイルしてもらってもいいですが、各自の負担が大きくなります。

そこで、マシンにツールをインストールします。 いくつかポイントを説明します。

OSを統一して、共通ディレクトリにインストールしよう

計算機が増えてくると、それぞれのマシンにツールをインストールするのが面倒になります。 まず、aptやyumコマンドでインストール可能なものは、tmuxで複数ペインを開いてsshを叩きましょう。

最大の問題は、ソースからビルドして、インストールする種類のツールかと思います。

これをズバリ解決するのが、前回設定したNFSを用いたファイルシステムサービスの利用です。

具体的には、ツールインストール専用のディレクトリを作成します。 ここで注意ですが、OSのインストールはバージョンや設定を揃えておきましょう*1

私の例ですと、/tools/envディレクトリを作成し、各計算機からマウントします。 つまり実行ファイルは/tools/env/bin以下にあります。

このPATHを/etc/profileファイルに加えることで、bsh系のユーザーが各自のシェル設定ファイルを編集することなく実行できます。

Porgによるパッケージ管理

Porgの導入

ソースインストールは何をどこにインストールしたか、分からなくなりがちです。

それを解消するのが、パッケージ管理ツールの「Porg」です。 これは、ソースインストールしたものの履歴をすべて管理するため、容易にアンインストールやインストールされているツールの確認が行えます。 Qiitaのほうにも使い方を若干書いています。

porgのインストールには若干はまりどころがあります。

まずは、wgetコマンドなどを用いてporgをダウンロードします。(本記事の時点では、porg-0.10) 解凍した後に、そこに移動します。

さて、問題のハマリどころです。 GUI環境をインストールしていない場合、configureのオプションに--disable-gropを指定する必要があります*2

あと2つ重要なconfigureオプションが必要です。 それは--prefix--with-porg-logdirです。

マウントしたディレクトリで共有したいため、そこを指定する必要があります。 私の例ですと、/tools/envを共有ディレクトリとしたため、configureは具体的に書くと./configure --prefix=/tools/env --with-porg-logdir=/tools/env --disable-gropとなります。

あとはおなじみmake && make installでインストールしましょう。 ちなみに&&は直前のコマンドが正常に成功したら、後方のコマンドを実行という意味です*3

最後に、porg自身をporgで管理させるため次のコマンドを入力します。 porg -lp porg-0.10 make install

Porgで管理

あとは簡単です。

任意のソースからインストールする際に、configure--prefix=**を忘れないようにします。 依存ファイルによって、そのほかのincludedirを指定する場合もあります。 これはケースバイケースなので、なんとも言えません。

あとは、make installの代わりにporg -lp インストールするツールの名前とバージョン make installで完了です!

インストールしたツールの一覧は、porg -aにより以下のように確認できます。

juman-7.01
jumanpp-resource
knp-4.16
kytea-0.4.7

さて、次回は何にしようかな。

*1:依存モジュールが絡んできます。

*2:これにより、GUIインターフェースのインストールが無効となります。

*3:こういう所で、少しずつ調べて知識をつけていくのが、計算機管理のコツです。