MacBook Pro 購入時に申し込んでいた Snow Leopard が届きました。ヤマトのメール便で到着は9月1日。
さっそくインストールしてみました。更新作業は約1時間で終了、再起動時に、再びウェルカム動画が流れます。
使い込んでないので何が変わってるのかわかりませんが、ニュース記事を読んでると、HDDスペースがだいぶ数ギガバイト?空いて、速度的にも快適になってるんだだそうです。
わかっている不具合というか、うまくいってないことは、ローカルの Rails 環境がこけてるっていうこと。
以下に解説に従って対応。
XCode の更新
Snow Leopard の DVD のオプショナルインストールから XCode.mpkg を実行して更新。
passenger の更新
$ sudo gem uninstall passenger $ sudo gem install passenger $ sudo passenger-install-apache2-module
httpd.conf にコピペしろと書いている3行を /etc/apache2/httpd.conf に書き込む。
64ビット版の mysql に更新
Snow Leopard に更新した後は MySQL が停止していた。Leopard のときは 64ビット版の MySQL と Rails の相性がよくなかったので 32ビット版を入れていたんだけど、Snow Leopard では 64ビット版で良いらしい。
から、Mac OS X 10.5 (x86_64) をダウンロードして、mysql-5.1.37-osx10.5-x86_64.pkg、MySQLStartupItem.pkg、MySQL.prefPane の順番で実行してインストール。最後のはシステム環境設定に MySQL の管理アイコンを追加するもので、既にインストールされているものがあれば置き換えるようにする。
gem の mysql の更新
$ sudo gem uninstall mysql $ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
Apache と MySQL の再起動
コマンドラインからでもよいけど、システム環境設定からがお気楽。Apache は「システム環境設定>共有>Web 共有」から、MySQL は「システム環境設定>MySQL」から。
これで、http://localhost/ を参照すると、何か表示されるようになります。
…のはずですが、
Forbidden You don't have permission to access / on this server.
Rails の画面が表示されずにエラーが出てます。
apache2 の Virtual Host 設定の再作成
アクセスできないと怒られて、あれこれ調べてたら、http://localhost/~ユーザー名/ にはアクセスできた。何もコンテンツを置いてないけど「あなたの Web サイトです。」という表示が出るので間違いない。エラーがでないのはここだけ。
apache2 の設定ファイルを眺めていると、/etc/apache2/extra/httpd-vhosts.conf が、すっかりデフォルトのダミーサイトのデータで上書きされてしまっている。
設定メモもバックアップもとってないので、思い出しつつ順番に設定していくことにする。
Rails 開発用のホストの設定は置いといて、通常サイトの設定。ここには MySQL をブラウザで管理するための phpMyAdmin を置いている。/etc/apache2/extra/httpd-vhosts.conf をエディタで開いて、dummy の VirtualHost の設定を全部削除なりコメントアウトするなりして、代わりに以下を記入。
<VirtualHost *:80>
ServerName localhost
DocumentRoot "/Library/WebServer/Documents"
ErrorLog "/private/var/log/apache2/localhost-error_log"
CustomLog "/private/var/log/apache2/localhost-access_log" common
</VirtualHost>
apache を再起動する。
$ sudo apachectl restart
http://localhost/ にアクセスすると、今度はエラーではなくて、「It Works!」の文字が表示され、http://localhost/phpMyAdmin/ で phpMyAdmin にアクセスできるようになった!
MySQL のデータの移動
やっと、phpMyAdmin の画面を表示できたんだけど、今度はログインができない!
MySQL を更新したときにパスワードがリセットされてんのかとか思いながらコマンドラインから、
$ mysql -u root -p
でパスワード無しで入れて、パスワードの再設定をしたり、データベースを眺めたりしてたら、またまたショッキングなことを発見。今度は、自分で作成したデータベースとかテーブルとかすっかりなくなってる。
もしかして削除されたの?ダンプもとってないんだけど作り直し?とかドキドキしながら、データの場所を探してると、どうも MySQL の各バージョンのインストール先の中の data フォルダに DB データがあるらしい。
旧バージョンのディレクトリを確認すると、
$ cd /usr/local $ sudo ls -l mysql-5.0.83-osx10.5-x86/ total 0 drwxr-x--- 10 _mysql wheel 340 9 1 18:43 data
ほとんど削除されて空だけど、data フォルダだけが残っている。これを丸ごと新しい方にコピーする。以下の作業の前には、システム環境設定から MySQL を停止しておくこと。
$ cd /usr/local $ sudo mv mysql-5.1.37-osx10.5-x86_64/data mysql-5.1.37-osx10.5-x86_64/data.backup $ sudo mv mysql-5.0.83-osx10.5-x86/data mysql-5.1.37-osx10.5-x86_64/
data フォルダ以下はオーナーが _mysql ユーザでないと駄目なので、それも変更。
$ sudo chown -R _mysql mysql-5.1.37-osx10.5-x86_64/data
ここまで済んだら、MySQL を起動する。
phpMyAdmin にアクセスすると、Snow Leopard にアップデートする前の状態に戻った。
MacPorts のアップデートと imagemagick と RMagick の再インストール
Rails 用の apache の設定をする前に、MacPorts も壊れてるので修正しておく。imagemagick が MacPorts でインストールされてて、Rails で RMagick を使っている関係のためです。
port コマンドを打ってもエラーばかりでまともに動いてくれないので、これも MySQL のときと同じように再インストールします。
の Installing MacPorts から SnowLeopard 用のイメージをダウンロードしてインストールを行う。
これで、port コマンドが使えるようになる。
次に Leopard の port でインストールしたパッケージは全部再インストールする。ただし、アップグレードはうまくいかないことがあるので、今回は全部削除する。
$ sudo port deactivate active $ sudo port -uf uninstall $ sudo rm -r /opt
ディレクトリ毎削除したので、先ほどインストールした Snow Leopard 用の MacPort をもう一度インストールする。
全削除前にインストールしていたパッケージを新しい Ports で再構築する。私がインストールしていたのは、wget コマンドと imagemagick だけ。
$ sudo port selfupdate $ sudo port sync $ sudo port install wget $ sudo port install imagemagick
ここまでで、MacPorts 関連は終了。ImageMagick もリフレッシュしたので、次は RMagick を更新します。
$ sudo gem uninstall rmagick $ sudo gem install rmagick
Rails 開発用の apache2 の Virtual Host 設定の再作成
このブログっぽいサイトの開発用に、http://app.localhost/ にアクセスすると、ブログの Rails アプリが参照されるようにする。
Virtual Host 以外の設定は問題ないことを確認。/etc/hosts ファイルの確認。次のようにしておけば、app.localhost でローカルウェブサーバーにアクセスしてもらえる。
127.0.0.1 localhost app.localhost
/etc/apache2/users/kagayoshito.conf に Rails ディレクトリの設定の確認。
<Directory "/Users/kagayoshito/Sites/">
Options All
AllowOverride All
Order allow,deny
Allow from all
AddHandler cgi-script .cgi
PassengerEnabled On
</Directory>
<Directory "/Users/kagayoshito/Rails/">
Order allow,deny
Allow from all
RailsEnv development
PassengerEnabled On
</Directory>
ここまでは確認で、以下が修正。/etc/apache2/extra/httpd-vhosts.conf に Rails サイトの設定を追記する。
<VirtualHost *:80>
ServerName app.localhost
DocumentRoot "/Users/kagayoshito/Rails/myblog/public"
ErrorLog "/private/var/log/apache2/app.localhost-error_log"
CustomLog "/private/var/log/apache2/app.localhost-access_log" common
</VirtualHost>
apache を再起動する。
$ sudo apachectl restart
これで、http://app.localhost/ にアクセスしたときは、Rails アプリケーション myblog が表示される。http://localhost/ の場合は通常のホームページ領域と phpMyAdmin。
複数の Rails アプリケーションを開発したい場合も、同じように VirtualHost を追加するだけで対応できる。
だいたい終わりましたが、もう少しだけ続きます。
iPhone SDK の更新
Rails 環境は一段落して、次は iPhone の開発環境です。過去に作ったアプリケーションをビルドしようとすると、案の定、全然駄目状態なので、iPhone SDK のホームページを確認してみます。
Snow Leopard 用のパッケージをインストールしろと書いているのでインストールします。
以上で iPhone SDK の更新は終了。
Flash Player の更新
ということですので、Adobe の Flash Player のページから最新版をインストールしておきます。
まとめ
芋づる式に作業が修正箇所が増えてきて、かなり大変でした。バージョンアップの度にこんな作業をしなくちゃいけないのかと思うとぞっとします。今回は PowerPC サポートを打ち切って、本格的に 64bit 化に移行するから、特別なんだろうと思いたいです。












