Python上でMeCabを使う
GCCのインストール
CentOSにGCCが入っていないことがあるので、インストールしておく。GCCがないとMeCab入らない。
% yum install glibc glibc.i386 % yum install gcc*
MeCabを入れるためのステップは、次のとおりになる。
MeCabのインストール
% wget http://downloads.sourceforge.net/mecab/mecab-0.97.tar.gz % tar xvfz mecab-0.97.tar.gz % cd mecab-0.97/ % ./configure % make % su $ make install
辞書ipadic2.7.0 のインストール
./configure のときに --with-charset=utf8 オプションをつけると、辞書の文字コードが UTF-8 になる。つけなければデフォルトの EUC-JP になる。
% wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz % tar xvfz mecab-ipadic-2.7.0-20070801.tar.gz % cd mecab-ipadic-2.7.0-20070801 % ./configure --with-charset=utf8 % make % su $ make install
Pythonバインディングのインストール
wget http://downloads.sourceforge.net/mecab/mecab-python-0.97.tar.gz % tar xvfz mecab-python-0.97.tar.gz % cd mecab-python-0.97 % su # python setup.py install
本当にバイディングできたのか、テストする。
$ python >>> import MeCab >>> m = MeCab.Tagger() >>> print m.parse("本日は良い天気です")
コンパイルミスへの対応
crt1.oが無い
/usr/bin/ld: crt1.o: No such file: No such file or directory
と出てきて、configureがこけることがある。このメッセージはファイルcrt1.oが見つからないという意味。
crt1.oは、コンパイル時にgccが内部的にリンクするファイルで、glibc-develパッケージに含まれるモジュールなので、glibc-develをインストールする。
# yum install glibc # yum install glibc-devel
g++が無い
configure: error: Your compiler is not powerful enough to compile MeCab. If it should be, see config.log for more information of why it failed.
gcc-c++が無いと、こういうエラーが出現するみたい。gcc-c++をいれると解決する。
$ sudo yum install gcc-c+
libmecab.so.1が無い
/usr/local/libexex/mecab/mecab-dict-index: error while loading shared libraries:libmecab.so.1: cannot open shared object file: No such file or directory
mecab をインストールしただけの状態では、IPA辞書のインストール時に libmecab.so.1 が見つからないというエラーが発生する。 libmecab.so.1 は /usr/local/lib/libmecab.so.1 にインストールされているが、標準設定では /usr/local/lib/ 配下のライブラリが読み込まれないようになっている。
これを読み込ませるために /etc/ld.so.conf ファイルを編集する必要がある。このファイルを修正したらldconfigを実行して、ライブラリ読み込みパスの更新する
# vi /etc/ld.so.conf /usr/local/lib (この1行を追加) # ldconfig # exit
SSHサーバのセットアップ
CentOS5にrpmbuildが入っていないので、インストール。
$ yum list | grep rpm-build rpm-build.i386 4.4.2-47.el5 base $ sudo yum install rpm-build $ which rpmbuild /usr/bin/rpmbuild
設定ファイルの修正
# RSA秘密鍵 identityを必須にする( no で“必須”を指定 ) PasswordAuthentication no # rootでのログインを禁止する PermitRootLogin no # パスワード無しのログインを許すか PermitEmptyPasswords no # .rhosts等を信用するか(RSA認証付き) RhostsRSAAuthentication no # ユーザhogeのみ接続許可をする(不特定多数に接続させない為) AllowUsers hoge
/etc/ssh/sshd_configの設定出来たら、 SSH の再起動を行う。
# /etc/rc.d/init.d/sshd restart sshdを停止中: [ OK ] sshdを起動中: [ OK ]
sshdが自動スタートするように設定する。
# setup
鍵の作成
Remote Desktop over SSH
研究室の先輩に命令されて、リモートデスクトップを導入することになった。リモートデスクトップって言うのは、ネットワークに接続しているPCのデスクトップにアクセスし、制御することで、これが使えるようになると、自宅からでも研究室のパソコンを操れるようになるわけだ。似たような機能を提供するものにVNCとか、crossloopがある。
さて、このリモートデスクトップはOS毎に対応が違う。
- Windows XP Professionalには標準でインストールされている。
- Mac OS Xの場合は、MicrosoftのWebサイト(http://www.microsoft.com/japan/mac/)から、「Remote Desktop Connection Client」というクライアントツールをダウンロードできる。
- Linuxの場合は、rdesktop(http://www.rdesktop.org/)というプログラムを使えば、制限はあるものの、Windows XP Professionalのリモートデスクトップ機能にアクセスできる。
目標
あるサイトをみると、家のPCで次のように操作すればいいみたい。
以上がそろえば簡単。HOMEPCのCygwinで
ssh -L 13389:リモートPC:3389 -1 アカウント名@SEVERとして、リモートPCまでのSSHトンネルを掘ります。後は、HOMEPC上で
localhost:13389にリモートデスクトップの要求を出せばOK.
http://www.ueda.info.waseda.ac.jp/~nakano/index.php?SSH%A5%C8%A5%F3%A5%CD%A5%EA%A5%F3%A5%B0%A4%C7%A5%EA%A5%E2%A1%BC%A5%C8%A5%C7%A5%B9%A5%AF%A5%C8%A5%C3%A5%D7
これを目標に、頑張ろう。
必要なもの
- 家のPC
- 研究室のサーバ
- 研究室のPC
- 待機状態のリモートデスクトップ
linuxにおけるホスト名の確認と変更
Linuxにおけるホスト名の確認は、Windowsと変わらないみたい。コンソール上で hostname と打ち込むことでホスト名が確認できる。
# hostname localhost.localdomain
hostname というコマンドに、引数を持たせれば、ホスト名が変更される。しかし、この変更方法では、OSの再起動を行うと、旧ホスト名に戻ってしまう。
# hostname name
設定ファイルを /etc/sysconfig/network を更新して、ホスト名を変更すると、OSの再起動してもホスト名が変わらないらしい。
# vi /etc/sysconfig/network …… HOSTNAME=old name ……
ただし、linuxでホスト名を変更するのは、問題みたい。。次のような記述があった。
各サーバ(WebサーバやMailサーバ)などを構築後にホスト名を変更すると、そのサーバが正常動作しなくなる場合があるので注意が必要です
http://kajuhome.com/fedora_inst_after.shtml
ホスト名を変更したら、各サーバの設定ファイル内に『ホスト名』を指定している部分がありますので、旧ホスト名を新ホスト名に変更してください。
また、設定ファイルを変更したらそのサーバを再起動する必要があります。
(「/etc/sysconfig/network」の変更 → 「各サーバの設定ファイル内のホスト名変更」
→ 「OSのリブート」 → 「動作確認」が理想です)
■
Javaでメールのヘッダーを解析する
JavaMailでメール送信アプリを作るを見ながらJavaMailを使ってみた。
使うライブラリ
JavaMailライブラリを利用するには、JavaMailそのものに加えて、JAF(Java Activation Framework)をインストールする必要がある。
- http://java.sun.com/products/javamail/ (JavaMail)
- http://java.sun.com/products/javabeans/glasgow/jaf.html (JAF)
ライブラリの追加の仕方
- ライブラリをpluginフォルダに入れる。
- 現在のプロジェクトを選択して右クリックし、コンテキストメニューからPropertiesを選択。
- Java Build PathのLibrariesをクリック、Add External JARsクリックしてをダウンロードした場所を指定。