MeCab Ruby バインディングのインストール方法
CentOsにTritonnをインストールして形態素解析をしましょう。
一般的に形態素解析をしようとすると、以下のものが必要なようです。
・MeCab
http://mecab.sourceforge.net/
・senna
http://qwik.jp/senna/install.html
・Tritonn
http://qwik.jp/tritonn/
MeCabのインストールには、
MeCab本体と辞書を加えてインストールする必要があります。
今回は文字コードをutf-8にしますので、
configureの際にちょっと注意が必要です。
MeCabのインストール
% tar zxfv mecab-X.X.tar.gz
% cd mecab-X.X
% ./configure --prefix=/usr --with-charset=utf8
% make
% make check
% su
# make install
辞書のインストール
% tar zxfv mecab-ipadic-2.7.0-XXXX.tar.gz
% mecab-ipadic-2.7.0-XXXX
% ./configure --prefix=/usr --enable-utf8-only
% make
% su
# make install
もしもうまくutf-8で辞書が構築できなかった場合、
makeの後に以下のコマンドを実行することでうまくいきました。
詳しくはこちら。
http://risky.cs.inf.shizuoka.ac.jp/~noguchi/index.php?tips%2Fmecab
% mecab-dict-index -t utf-8
% tar zcvf ipadic-utf8.tar.gz *.csv *.bin *.dec *.dic dicrc
sennaは普通にインストールしてok。
> svn co http://svn.razil.jp/senna/trunk senna
> cd senna
> ./configure --prefix=/usr
> make
> sudo make install
Tritonnのインストールはこちらが詳しいです。
http://wiki.minaco.net/index.php?VMwareFusion%2FCentOS5%2F11.MySQL%2BTritonnインストール#x4bb88af
RubyでIMAPを使ってGmailでメールを受信しましょう。
ローカル環境ではPOPで受信して問題なかったのですが、
CentOSにプログラムを乗せ替えると、なんだかparameterのエラーが出ました。
ググっても事例に乏しく、ActionMailerのバグである可能性も出てきましたので、試しにIMAPに変えてみたらうまくいきました。
注意点としては、fetchする際に配列でメッセージのidを渡してやると、改行コードを無視して取得されてしまうようだった(?)ので、
イテレーションで一つづつ内容を取得するようにするとうまくいきます。
おそらく、Gmailの一覧ページだと文面の改行を無視して表示しているのと同じことなのでしょう。
require 'net/imap' imap = Net::IMAP.new(@config['server'],@config['port'],true) imap.login(@config['username'], @config['password']) imap.select('INBOX') imap.search(["NOT", "DELETED"]).each do |message_id| MailFetcher.receive(imap.fetch(message_id, "RFC822")[0].attr["RFC822"]) imap.store(message_id, "+FLAGS", [:Deleted]) end imap.logout() imap.disconnect()
英語ですが、こちらが参考になります。
http://codeclimber.blogspot.com/2008/06/using-ruby-for-imap-with-gmail.html
GmailのPOPをつかってRailでメール受信しましょう。
ruby 1.8.7からsslに対応したようなので、
非常に簡単にGmailからPOPでメールを受信できるようになりました。
以前は結構苦労したような気がしたのに、
便利になりましたねぇ。
Net::POP3.enable_ssl(OpenSSL::SSL::VERIFY_NONE) Net::POP3.start("pop.gmail.com", 995, "your-email@gmail.com", "your-password") do |pop| unless pop.mails.empty? pop.mails.each do |email| begin logger.info "Retrieving mail..." MailReader.receive(email.pop) email.delete rescue Exception => e logger.error "[" + Time.now.to_s + "] " + e.message end end end end
Passengerを使ってEc2にRailsアプリを公開しましょう。
gemで簡単インストール。
gem install passenger
次にpassenger-install-apache2-moduleを実行し、Apacheモジュールのビルドとインストールを行いましょう。
passenger-install-apache2-module
このスクリプトは対話形式で処理を実行します。
画面の指示に従って進めれば容易に処理を完了できます。
ビルドに成功すると、Passengerを組み込むためのhttpd.confの設定が表示されるのでコピーしておきましょう。
Deploying a Ruby on Rails application: an example Suppose you have a Ruby on Rails application in /somewhere. Add a virtual host to your Apache configuration file, and set its DocumentRoot to /somewhere/public, like this: <VirtualHost *:80> ServerName www.yourhost.com DocumentRoot /somewhere/public # <-- be sure to point to 'public'! </VirtualHost>
-
- Apacheの設定
passenger-install-apache2-moduleの最終段階の画面で
"Please edit your Apache configuration file, and add these lines:"
という指示とともにhttpd.confに追加すべき設定内容が表示されます。
これに合わせてhttpd.confを修正します。
vi /etc/httpd/conf/httpd.conf LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/ext/apache2/mod_passenger.so RailsSpawnServer /usr/lib/ruby/gems/1.8/gems/passenger-1.0.1/bin/passenger-spawn-server RailsRuby /usr/bin/ruby1.8 # developmentモードで動かす場合は忘れずに。 RailsEnv development
あとは、ApacheのDocumentRootを
$RAILS_ROOT/publicに設定すれば、
自動的にRailsアプリケーションが認識されます。
詳しくはこちら。
http://redmine.jp/tech_note/apache-passenger/
CentosにImageMagick(ImageMagick-6.5.5-10)とRMagickをインストールしましょう。
yum -y install ImageMagick ImageMagick-perl
とすれば簡単ですが、現時点でyumでインストールできるImageMagickは6.2.8で、
最新版のRMagickをインストールするには、6.3.0以上が必要との事です。
RMagickを1.0系に指定するとyumでも簡単に入れられますが、
今回は頑張って最新版を入れることにします。
まず、依存するライブラリをまとめてインストールしましょう。
sudo yum install bzip2-devel freetype-devel libpng-devel libtiff-devel freetype-devel libjpeg-devel
次に最新版のImageMagickをソースコードからインストールします。
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar zxvf ImageMagick.tar.gz
cd ImageMagick-6.5.5-10
./configure --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --prefix=/usr/local/ImageMagick-6.5.5-10
make
make install
ただし、上記コンパイルでライブラリファイルは /usr/local/lib にインストールされますが、
CentOS の標準ではこのディレクトリはライブラリ用パスに含まれていないため、Id.so.confを編集します。
vi /etc/ld.so.conf
末尾に「/usr/local/ImageMagick-6.5.5-10/lib」を追加しましょう。
次に共有ライブラリを認識させます。
/sbin/ldconfig
/etc/profileにもパスを通しておきましょう。
export PATH=$PATH:/usr/local/ImageMagick-6.5.5-10/bin
続いてgemでRMagickをインストール。
gem install rmagick -v 2.11.0
すんなりインストールできるはず。
あとはirbから確認しておきましょう。
irb -rubygems -r RMagick
irb(main):001:0> puts Magick::Long_version
と入力して、
This is RMagick 2.11.1 ($Date: 2009/09/05 20:01:08 $) Copyright (C) 2009 by Timothy P. Hunter
Built with ImageMagick 6.5.5-0 2009-09-10 Q8 OpenMP http://www.imagemagick.org
Built for ruby 1.8.7
Web page: http://rmagick.rubyforge.org
Email: rmagick@rubyforge.org
=> nil
と出ればOK。
Ruby on Rails のアプリを公開するときの設定
/DocumentRootで検索し、定義の最後に
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot /usr/local/rails/apri/public
このように、DocumentRoot /usr/local/rails/apri/publicを追加。
その後、apacheを再起動します。
[root@fedora ~]# /etc/rc.d/init.d/httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
:3000を付けなくてもRuby on Railsのアプリケーションが起動しているところがポイントです。これでApacheでPassengerを使ってRuby on Railsアプリ公開ができました。