![]() |
Ruby on Rails |
Riding Rails: Upgrading to Snow LeopardにおいてMatt Aimonetti氏が、Mac OS X Snow Leopardにアップグレードした場合に、Ruby on Railsの環境もそれに合わせてアップグレードする必要があることを説明している。Snow Leopardではハードウェアが対応していれば64ビットモードでアプリケーションが動作するようになる。Rubyで開発されたライブラリやアプリケーションはこの影響を受けないが、Cエクステンションを32ビットモードのみでビルドした場合には、この部分が問題になる。
紹介されているアップグレード手順は次のとおり。
Snow LeopardのDVDから"Optional Installs"を選択して、デフォルトオプションのまま"Xcode.mpkg"をインストール。
Passengerをインストールして、Apacheモジュールのコンパイルを実施する。/etc/apache2/httpd.confの該当するモジュール読み込み設定部分を編集。
$ sudo gem install -r passenger
$ sudo passenger-install-apache2-module
PassengerのインストールとApacheモジュールのビルド
LoadModule passenger_module /Library/Ruby/Gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
PassengerRoot /Library/Ruby/Gems/1.8/gems/passenger-2.2.4
PassengerRuby /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
/etc/apache2/httpd.confファイルのモジュール読み込み部分を追加または編集
おかしな挙動を避けるあために64ビット版のMySQLへのアップグレードが強く推奨される。MySQLサーバが動作している場合は停止させ、MySQL 5.1 GA Downloadsから「Mac OS X 10.5 (x86_64)」をダウンロード。ディスクイメージを開いたら、デフォルトのオプションのまま、まず「mysql-5.1.37-osx10.5-x86_64.pkg」をインストール。次に、同じくデフォルトオプションのまま「MySQLStartupItem.pkg」をインストールし、さらに「MySQL.prefPane」をダブルクリック。選択を求められたら既存の設定パネルを置き換える方を選択するようにと説明がある。ここまで作業したらディスクイメージをアンマウントする。
LeopardからSnow Leopardにアップグレードした場合、mysql gemが32ビットモードでコンパイルされているため、再ビルドの必要がある。しかしこの部分は若干状況が複雑だという。Snow Leopardにおいては、Cエクステンションをインストールする場合にはgemはi386 (32ビット)とx86_64 (64ビット)の両方のエクステンションをビルドしようとするものの、mysql.comから提供されているバイナリはユニバーサルではないためこの方法はうまくいかないという。64ビットモードのみをビルドするように次のように強制する必要があると説明されている。
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
mysql gemを64ビットモードでビルドする方法
なお、ほかのgemをビルドする場合にはARCHFLAGSは設定すべきではないという注意書きがある。
MacPortsを使っている場合、Leopardでビルドされたライブラリを使っているのであればリコンパイルする必要がある。
$ sudo port selfupdate
$ sudo port sync
$ sudo port upgrade --force installed
MacPortsでインストールしたアプリケーションの更新
なおRiding Rails: Upgrading to Snow Leopardでは説明されていないが、Snow LoepardにアップグレードすることでそもそもMacPortsが動作しなくなるケースもある。この場合、MacPortsとそこからインストールされたアプリケーションやライブラリをいったんすべて削除し、Snow Leopardに対応したMacPortsをインストールして、必要になるアプリやライブラリをすべてインストールしなおせばいい。
Cエクステンションを使っているgemはリコンパイルの必要がある。gist: 178178 - GitHubのスクリプトを取得して、リコンパイルが必要になっているgemを正確に見付だし、それらをリコンパイルする。
Snow LeopardにバンドルされているRubyはRuby 1.8.6ではなくRuby 1.8.7へアップグレードされている。しかしこれは問題にならないという。Ruby on Railsはすでに長いことRuby 1.8.7で動作している。
| Rails 2.3登場、デフォルト組み合わせの設定可能に [2009/3/17] |
| Rails 3.0フューチャービジョン [2009/2/6] |
| Rails 3高速化Merb技術採用、Rails 2非互換の可能性 [2008/12/24] |
| 国際化されたRails 2.2登場、スレッドセーフとRuby 1.9対応 [2008/11/27] |
| Rails 2.2、リリース直前に国際化機能デフォルト追加 [2008/11/20] |
| Rails 2.2 誤解多いスレッドセーフ、公開前に理解 [2008/10/30] |
| CSSベンダプレフィックス記述の変更提案、MozillaのFelipe Gomes氏が提示 [13:26 2/8] |
| W3C、シンプルで便利なバイブレーションAPI策定へ [13:16 2/8] |
| Micrel、省スペースで電源出力ノイズを削減するICファミリを発表 [13:02 2/8] |
| 日本SGI、超高密度なモジュラー型ストレージ製品の新シリーズを発売 [11:23 2/8] |
| ALSI、Webフィルタリングソフト新版でスマホとタブレット端末に対応 [11:19 2/8] |
|
アヤパン、洗顔CMで再び素顔公開! 気合の30テイクで「すっぴん大好き」宣言 [06:00 2/9] エンタメ |
|
「Chrome 17」安定版リリース、先読みでWebページを高速表示 [04:40 2/9] パソコン |
|
[AKB48小嶋陽菜]女性用シェーバーのCMに すべすべ美脚に「つるつる~!」 [04:00 2/9] エンタメ |
|
[高島彩]“すっぴん”大好き宣言 自宅でも“すっぴん”で「家族からも評判」 [04:00 2/9] エンタメ |
|
[ONE PIECE]最新65巻が首位 コミック部門16作連続 64巻も連続8作目の累計300万部突破 [04:00 2/9] ホビー |