知らない間にアドベントカレンダーに追加されて書くことがない困ってるおじさんです。。。
共同研究で企業のサーバー環境で作業しているのですが、
sudo権限もらえなくてですね...
mecab使いたいけどインストールどないすんねんってなった話です
基本的に--prefixにユーザーディレクトリを指定するだけなんですけどね…
ただの備忘録です
前提
python2..,mecab,ipadic,mecab-pythonの圧縮ファイルを~/tempにおいておきます(ディレクトリ名は何でも良いです)
pythonのインストール
tar xvf Python-2.*.*.tgz
cd Python2.*.*
./configure --prefix=/home/user-name/usr/local
make
make install
mecabのインストール
tar xvf mecab-0.996.tar.gz
cd mecab-0.996
./configure --prefix=$HOME/usr/local --with-charset=utf8 --enable-utf8-only
make
make install
.*shrc
export PATH=/home/user-name/usr/local/bin:$PATH
辞書のインストール
tar xvzf mecab-ipadic-2.7.0-********.tar.gz
cd mecab-ipadic-2.7.0-*********
./configure --with-charset=utf8 --with-dicdir=~/local/mecab-dic/ipadic-utf8
make
make install
/home/user-name/usr/local/etc/mecabrcを変更
mecabrc
.
.
dicdir = /home/user-name/local/mecab-dic/ipadic-utf8
.
.
mecab-pythonのインストール
tar xvzf mecab-python-0.996.tar.gz
cd mecab-python-0.996
vim setup.py(編集内容は↓の通り)
python setup.py build
python setup.py install
setup.pyに記載のディレクトリパスを全て書き換える
setup.py
#!/usr/bin/env python
from distutils.core import setup,Extension,os
import string
def cmd1(str):
return os.popen(str).readlines()[0][:-1]
def cmd2(str):
return string.split (cmd1(str))
setup(name = "mecab-python",
version = cmd1("/home/user-name/temp/mecab-0.996/mecab-config --version"),
py_modules=["MeCab"],
ext_modules = [
Extension("_MeCab",
["MeCab_wrap.cxx",],
include_dirs=cmd2("/home/user-name/temp/mecab-0.996/mecab-config --inc-dir"),
library_dirs=cmd2("/home/user-name/temp/mecab-0.996/mecab-config --libs-only-L"),
libraries=cmd2("/home/user-name/temp/mecab-0.996/mecab-config --libs-only-l"))
])
最後にパスを通す
.*shrc
.
.
export PATH=/home/user-name/usr/local/lib:$PATH
export LD_LIBRARY_PATH=/home/user-name/usr/local/lib
.
.
参考:
http://qiita.com/saicologic/items/ab70e14f7e2ec2ee0b4d
http://oshiete.goo.ne.jp/qa/8883975.html