ホーム   »  スポンサー広告  »     »  Ruby  »  Windows で Rails3 の動作環境構築を諦める3つの理由

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Windows で Rails3 の動作環境構築を諦める3つの理由

Windows 7 に Ruby 1.9.2 + Rails 3.1.1 動作環境を構築しようと迷い込んだ壮絶な修羅の道について、後人が同じ轍を踏まないように要点を記しておきます。

理由1. ネイティブライブラリ

兎に角ネイティブライブラリ周りは鬼門。

gem でインストールするライブラリには導入時にネイティブライブラリ (Windows で言う DLL のようなもの) をコンパイルするものがありますが、このビルド方法が Windows 未対応であることが多い。自前でやるにもコンパイラの種類、バージョンの違いに厳しかったり、欠落したライブラリが何であるかソースを読まなければ分からなかったり、リンク先の DLL を MinGW 用にエクスポートしなければいけなかったり、そもそも C のソースが Unix 環境前提で修正箇所が大量にあるなど、とにかく一度トラブルと調査にかなりの時間を浪費するし最終的に解決しない事も多い。

私の場合は mysql2 アダプタのコンパイルに三連休の丸 2 日を費やして諦めました (残り一日はこのエントリで消えました)。代替で mysql, ruby-mysql アダプタで回避しようとしても MySQL2 で定義されている定数などをオンコードで参照していたため無理でしたし、この問題が解決しても後にまだ therubyracer のコンパイルが控えています。

理由2. 32bit

メモリをふんだんに載せた開発マシンでも 32bit 版一択という状況。Ruby ランタイムは 64bit 対応しているが、追加ライブラリが 64bit 未対応などの状況に遭遇することも少なくない。Ruby ランタイムも 64bit 自体が枯れていないようで原因不明のエラーに何度か遭遇した (当方の環境の問題かもしれないが)。

理由3. 環境との相性の悪さ

バッチファイル (*.bat) やファイルセパレータ (\) などの環境の違い、空白入りディレクトリ名などの慣習が MSYS や make と相性が悪く地味に問題の原因になる。

対策

今は VMWare に CentOS を入れて歪ながらも平穏な生活を送っています。

対策1. Windows を使わない

Rails プラットフォームは Unix 系 OS を前提として開発されている (Windows は放置気味な) ことが 3.1 になってさらに強くなったように感じます。可能であれば開発端末には Linux か Mac OS X を使ったほうが無駄な事に時間を費やさずに済むでしょう :-P

対策2. 仮想環境で Linux を立てる

問題なのは Rails の実行環境のため開発環境は Windows のままでかまわないでしょう。Windows 上に VMWare や VirtualBox で Linux 環境を作り、プロジェクトのディレクトリごとを共有して環境を分離するという方法も取れます。会社から Windows マシンしか与えられていないのであればこれが一番現実的ですね。

対策3. JRuby を使用する

Unix 系はどうも… と言うのであれば JRuby on Rails で構築するのも一つの手かと思います。リンク先の記事の通り、こちらは特に問題もなく動作環境が構築できます。ただサーバの起動が遅かったりライブラリ構成やコードの挙動が違うなどの弊害があるかもしれません。

開発用の動作環境ではなくリリース環境が Windows に縛られているという場合には JRuby しか選択肢はないですね。

コメント
トラックバック
トラックバック URL
コメントの投稿
管理者にだけ表示を許可する
Profile
Takami Torao
Takami Torao
C/C++ 使いだった 1996年、運命の Java と出会い現在に至る。のらアーキテクト。
Yah, this is image so I don't wanna eat spam, sorry!
Search

Google
MOYO Laboratory
Web

カテゴリー
最近の記事
最近のコメント
最近のトラックバック
月別アーカイブ
ブロとも申請フォーム
RSSフィード
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。