openSUSEにRadRailsを入れてみる

なんとかなるだろー、とか思いながらやってたらかなり苦戦したので、備忘録代わりにメモメモ。環境はopenSUSE 10.3とKDEです。

eclipse他必要なソフトウェアのインストール

YaST2 > ソフトウェア > ソフトウェア管理から下記ソフトウェアをインストールしておく。

eclipse 3.3.0とRuby1.8.6が入れられます。俺はここから入れました。
Xul Runnerをインストールする理由は後述。
RailsRubygemsも入れられますが、バージョンが古いです。1.2.3と0.9.2だったかな。今の最新版である2.0.2と1.0を入れる予定でしたらgem経由で普通にバージョンアップすればいいですが、もし1.2.6などの特定バージョンを指定する際は下のように入力すればOKです。Rubygemsは分かりませんが、きっと同じような指定でいけるはず。

gem update rails --version 1.2.6

AptanaRadRailsのインストール

eclipseを起動して、Help > Software Updates > Find and Install... > Search for new features to install > Next > New Remote Site...で下記リモートサイトを追加する。Nameはお好みで。

http://update.aptana.com/install/3.2/
http://update.aptana.com/install/rails/3.2/

上がAptana、下がRadRailsです。
その後はNextとFinishとInstall allを駆使して進めていけばインストールが済みます。ここで一度eclipseを再起動。

RadRailsパースペクティブに切り替える

切り替えた際、なぜか俺の環境ではRubyインタプリタが指定されていません。Window > Preferences > Ruby > Installed Interpreters > addで追加ウィンドウを表示し、TypeをStandard VMにし、先ほどインストールしたRubyのパスを指定します。YaST2経由で入れた場合は/usr/binを指定すればOKです。インストール先が分からなければコンソールにwhich rubyと打てば出てきます。

ひとまず俺はこれで使えるようになりました。

xulrunnerを入れる理由

ずっと下のようなエラー文を出しながらeclipseが俺に怒るんですよ。

Unhandled event loop exception
No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]

で、検索しても検索しても環境変数をセットすればOKみたいなものしか出ないのですが、セットしても怒られちゃうんです。もう諦めるしかないかなー、なんて思っていたらArch Linuxのフォーラムでこのようなものを発見。

The 2 changes to my installation since this morning:
1) Installing xulrunner (pacman -Sy xulrunner). I think it is required, but am not sure. It is mentioned in the SWT FAQ.
2) export MOZILLA_FIVE_HOME=/opt/mozilla/lib/firefox (<- not /opt/mozilla).

(Arch Linux Forums / Problem with eclipse and web page editorのpeartの書き込みより引用)

eclipseSWTを使って作られているらしいのですが、当のSWTがxulrunnerを必要としている?みたいです。SWTのFAQを見に行っていないのでよく分かりませんが。
上の引用はArch Linuxのものなので、openSUSE風に書き直すと以下になります。

1) YaST2でmozilla-xulrunner181をインストール
2) export MOZILLA_FIVE_HOME=/usr/lib/firefox

FirefoxのパスはYaST2でインストールした場合。個別にインストールした場合はそこを指定してください。

ついでだからSQLite3を試してみた。

Windowsで多大にコケまくったSQLite3ですが、Windows版だからそうなるのか、すべてのeclipseでそうなるのかを検証すべくSQLite3を動かしてみました。
YaST2でsqlite-develをインストールします。デフォルトでは入らないので、入れていない人はgccも入れておいてください。SQLite3自体はデフォルトでインストールされているようです。ちなみに入れておかないと下記のようなエラーがでます。

make
make: *** `sqlite3_api_wrap.o' に必要なターゲット `ruby.h' を make するルールがありません。中止。

その後コンソールから以下のコマンドを入力してSQLite3のアダプタをインストール。

gem install sqlite3-ruby

これでRailsからSQLite3が使えるようになりました。
Rails 2.0以上の場合はデフォルトでSQLite3を使うのでRadRailsからプロジェクト作成して大丈夫ですが、1.2系の場合はコンソールからrails (プロジェクト名) -d sqlite3でSQLite3用にプロジェクトを作成するか、database.ymlを以下のように書き換えてください。

development:
adapter: sqlite3
database: db/development.sqlite3
timeout: 5000

test:
adapter: sqlite3
database: db/test.sqlite3
timeout: 5000

production:
adapter: sqlite3
database: db/production.sqlite3
timeout: 5000

この後普通にRailsアプリを作りつつ、db:migrateをやってみると・・・・・・なんと、普通に通るじゃないですか。Dataパースペクティブからの閲覧は相変わらずJDBCが云々とエラーが出ますが、rakeが通るだけでも充分です。
でも、それならWindowsでrakeが通らない理由がよく分かりません。rakeが通らないのがJDBCのせいじゃないと分かっただけでも進歩ですけどね。またしばらくSQLIte3と格闘する日々が続きそうです。