2012年4月6日金曜日

enghelperをインストール

ここのところruby環境をubuntu11.10で整えるのに頑張っていましたが、それもenghelperを動かしてみたかったからです。これは英次郎のデータをもとに加工して、辞書ツールや、英文をいれると「適度に」日本語のルビをふってくれるものです。(この「適度」というのがポイントです。パラメータで自分の実力にあわせてチューニングできます)
ただ先にも書きましたが、ubuntu等のディストリビューションではruby-1.8が主流で、まだまだ1.9は入っていません。しかたなくrvm(Ruby Version Manager)をインストールしてruby-1.9.2をインストールしようとしましたが、従来のrubyと環境がうまく整合させるのに苦労しました。(これもenghelperがruby-1.9を前提に作ってあったためです)さらにenghelperは動作に、nokogiriとengtaggerをrubyのライブラリとして要求しており、これのインストールにも苦労しました。通常、gemを使えばそのままライブラリをインストールできるはずでした。まずgemを使うのに苦労しました。最初、どうもバージョンが古いと言われたので、以下を実行しました。

$ sudo gem update --system

しかしこれやろうとするとubuntuのシステムとぶつかる恐れがあるので推奨しない、apt-getを使えと言われました。しかたなく 以下を実行。

  sudo apt-get install rubygems

これで最新のバージョンになり、gem installができるようになりました。(それでも最新のgemよりは古いんだろうな)これでnokogiriとengtaggerがインストールできるようになりました。
nokogiriのインストール

sudo apt-get isntall libopenssl-ruby
 sudo apt-get install libopenssl-ruby
 sudo apt-get install libxslt-dev
 sudo apt-get install libxml2-dev
 sudo gem install nokogiri
nokogiri本体は、gem installでOK。動作に必要なライブラリがいくつかあり、足りないものを事前にインストールしておく。

engtaggerのインストール

sudo gem install engtagger

ところでenghelperですが、どうもDLした内容と説明があっていません。説明に書いてあるスクリプトが見つかりません。しばらく悩んでいましたが、どうも3月末から4月にかけて更新が2,3回行われたようです。現時点で最新のenghelper-0.5.7をDLしてきて内容が説明と同じものなのを確認できました。
これで辞書ツールを動かすことができました。
さすがに元のデータが用語数多い英次郎です。例題が大量にでてきます。(ただその内容については、賛否両論あるので自己責任で)
次に肝心のルビ振りツールですがうまく動きません。apacheのerror.logを見ると、engtaggerのロード(require)でロードできないとエラーがでています。engtagger, nokogiriともどうもrequire(Rubyの文法でライブラリのロードです)でエラーがでます。
> require 'engtagger'
LoadError: no such file to load -- engtagger
from /usr/share/ruby-rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'

gemできちんとインストールしたはずだが、場所を確認する。
$ gem which engtagger
エラーがでる?入ってないのか?
$ sudo gem which engtagger
/var/lib/gems/1.8/gems/engtagger-0.1.1/lib/engtagger.rb
よくわかりませんが、通常ユーザとrootで環境が違うようです。ただこの場所はどうみてもrvmが入っている/usr/share/ruby-rvm以下ではないのでまずい感じです。(rubygemsがubuntu標準なのでこの位置に入れられてしまうか?)

さらにnokogiriも調べてみます。こっちはgem which でどうしても見つかりませんが、偶然以下で見つけました。
/var/lib/gems/1.9.1/gems/nokogiri-1.5.2
どうみても場所がばらばらです。

しかたなく手作業で以下の場所にコピーしてしまいます。(irbで $LOAD_PATHを表示させてどこからライブラリを読んでいるかを調べておきました)
/usr/share/ruby-rvm/rubies/ruby-1.9.2-p180/lib/ruby/site_ruby/1.9.1

結局コピーしたのは以下のものです。

-rw-r--r-- 1 root root 25037 2012-04-06 18:41 engtagger.rb
-rw-r--r-- 1 root root  3877 2012-04-06 18:45 nokogiri.rb
drwxr-xr-x 2 root root  4096 2012-04-06 18:42 engtagger
drwxr-xr-x 7 root root  4096 2012-04-06 18:46 nokogiri
drwxr-xr-x 3 root root  4096 2012-04-06 18:46 xsd

よくわかりませんが、.rbがディレクトリ以下のものもrequireしていたんで一緒にコピーしておきました。これで無事enghelperが動作してくれました。

きちんとルビをふってくれてます。(^^)v


0 件のコメント:

コメントを投稿