Link

Mac OS X

Mac OS X (10.8 Mountain Lion) でのインストール方法を紹介します。MacPortsを使用します。

制限

stmdで、extsは使用できません。getassocで、共有ライブラリ、実行時の類似度ロードは使用できません。

下準備

Xcode、MacPorts(http://trac.macports.org/)をインストールしておきます。

ICU、MeCabのインストール

MacPortsを使ってインストールします。

  • 必要なツールのインストール

    sudo port install icu
    sudo port install mecab-ipadic-utf8
    

MeCabのインストールが終わったら、MeCabを引数なしで起動したときに、utf8版の辞書が使われるように、mecabrcを修正しておきます。

  • /opt/local/etc/mecabrc: (差分)

    - dicdir =  /opt/local/lib/mecab/dic/sysdic
    + dicdir =  /opt/local/lib/mecab/dic/ipadic-utf8
    

MacPortsに、GETAssocのローカルポートを追加

この例では、追加のリポジトリを/Users/ore/portsにしています。環境に応じて適宜読み替えてください。まず、macportsにローカル設定を追加します。

  • /opt/local/etc/macports/sources.conf: (rsyncの行より前に1行追加)

    file:///Users/ore/ports [nosync]
    

次に、getassoc-macports-1.1.5.tar.gz をダウンロードし、sources.confで指定した場所に展開します。local/cxml、local/stmd、local/getassocが展開されます。仕上げに、portindexでインデックスを作成すれば完了です。

  • ローカルポートのインデックスを作成

    mkdir -p /Users/ore/ports
    cd /Users/ore/ports
    curl -O http://www.cs.nii.ac.jp/~getassoc/getassoc-macports-1.1.5.tar.gz
    tar xfz getassoc-macports-1.1.5.tar.gz
    portindex
    

cxml、stmd、GETAssocのインストール

MacPortsを使ってインストールします。

  • インストールの実行

    sudo port install cxml
    sudo port install stmd
    sudo port install getassoc
    

stmdの設定

inetd版より高速なAF_LOCAL版を使います。起動はlaunchdに行わせます。/opt/local/share/examples/rc.d/jp.ac.nii.cs.getassoc.stmd.plist を/Library/LaunchDaemonsにコピーし、再起動すればstmdが起動します。(手動でも以下の例のように起動できますが、リブート時に自動で起動するか確認しておきましょう。)

  • 起動スクリプトのコピー

    sudo mkdir -p /Library/LaunchDaemons/
    sudo cp -i /opt/local/share/examples/rc.d/jp.ac.nii.cs.getassoc.stmd.plist /Library/LaunchDaemons/
    sudo launchctl load -F /Library/LaunchDaemons/jp.ac.nii.cs.getassoc.stmd.plist
    

メモ: stmdのログメッセージはlocal0に出力されるので、appfirewall.logに記録されます。

GETAssoc の設定

MacPorts対応版は、バイナリとデータが異なるディレクトリ以下に配置されています。データの保管場所は自動では作成できないので、これを手動で作成します。以下の例は、データの置き場所を /Users/ore/g としたものです。

  • データの置き場所を作成

    mkdir -p /Users/ore/g
    (cd /Users/ore/g && mkdir bin etc nwam pwam tmp && chmod -R og+rX .)
    

データの置き場所をはホームディレクトリ以外でもかまいません。その場合、上記のコマンド例で、追加のsudoが必要なことに注意してください。また、作成したディレクトリの属性としては、stpを実行するユーザが全権利を持つこと、および、Apacheが読めることと実行できることが必要です。(パスの途中のディレクトリの読み取りおよび実行権限も要チェックです。)

MacPorts対応版は、バイナリとデータが異なるディレクトリ以下に配置されているため、getassocにデータの位置を教える必要があります。これを、実行時引数か、環境変数で実現できれば良いのですが、Apacheのcgi-bin呼び出しではいずれの方法も利用できません。そこで、getassocと同名のスクリプトをかませてこの問題を解決します。置き場所は、/Users/ore/g/bin にします。このファイルには、chmod +xで実行可属性をつけておきます。

  • /Users/ore/g/bin/getassoc:

    #! /bin/sh
    exec /opt/local/libexec/getassoc/getassoc -R /Users/ore/g
    

httpdの設定

/etc/apache2/httpd.conf の変更を最小限に抑えるため、GETAssocに関係する設定はファイルを別にし、/Users/ore/etcに置くことにします。/Users/ore 以下には、etcとg/etcの二つの異なるディレクトリができることに注意してください。httpdの設定で用いるのは、etcの方です。作成するファイルは2つです。

  • /Users/ore/etc/ScriptAlias.conf:

    ScriptAlias /getassoc/ "/Users/ore/g/bin/getassoc/"
    
  • /Users/ore/etc/Directory.conf:

    <Directory "/Users/ore/g/bin/">
        AllowOverride None
        Options ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
    

次に、これらのファイルを読み込むよう、/etc/apache2/httpd.conf に2行追加します。

  • /etc/apache2/httpd.conf: (2行追加)

    Include "/Users/ore/etc/ScriptAlias.conf"
    Include "/Users/ore/etc/Directory.conf"
    

最後に、システム環境設定->共有->Web共有、有効化をサイクルして変更を反映させます。

Getassocインデックスを作成

stpを使います。stpの第一引数には/home/ore/g を渡します。

  • 例:
    stp -b /home/ore/g mai2001 title,link < mai2001.itb