Home > Ruby > RVM 使って Mac OS X Lion で Ruby 1.9.x + Rails 3.x + MySQL

RVM 使って Mac OS X Lion で Ruby 1.9.x + Rails 3.x + MySQL

  • 2011-11-21 (月)
  • Ruby
  • このエントリーを含むはてなブックマーク

半年前のエントリ - Mac OS X で Ruby 1.9 + Rails3 の内容アップデート版記事。Mac OS 環境で手軽に Ruby + Rails 開発環境を構築する手順をば。今回はさらに MySQL (あるいは MAMP 版 MySQL) を使う場合の作業・設定手順も追記。現在 2011.11.21 時点での各ソフトウェアの最新バージョンは以下:

  • Mac OS X Lion 10.7.2
  • RVM 1.9.2
  • Ruby 1.9.3p0
  • Rails 3.1.2
  • MySQL 5.5.18 (Community Server 版)

1. RVM の導入

$ bash < <(curl -sk https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
$ echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function' >> ~/.bash_profile
$ echo 'rvm_archflags="-arch x86_64"' >> ~/.rvmrc
$ source ~/.bash_profile
$ rvm -v  # 導入完了

ポイントは ~/.bash_profile に環境設定の行を追記する部分。これを別の類似ファイル .profile なり .bashrc なりに変更すると、ログイン時に以下のようなエラーが出る。必ず .bash_profile に記述するべし。

__rvm_setup: command not found

加えて irb で必要な readline も入れておく:

$ rvm pkg install readline

2. Ruby を入れる

$ rvm list known  # インストール可能な Ruby バージョンが一覧表示される

任意の Ruby バージョンを導入:

$ rvm install 1.9.3-head --with-readline-dir=$HOME/.rvm/usr
$ rvm use 1.9.3-head --default
$ ruby -v  # 導入完了

3. Rails を入れる

$ gem install rails
$ gem install sqlite3
$ rails -v  # 導入完了

続いて任意で MySQL Server の導入をば。

4. MySQL Server を入れる

http://www.mysql.com/downloads/mysql/ にて最新版の x86, 64-bit DMG アーカイブ版を入手。

mysql-5.5.18-osx10.6-x86_64.dmg

上記 dmg アーカイブを解凍、mysql-5.5.18-osx10.6-x86_64.pkg と MySQLStartupItem.pkg を順番に実行してインストール完了。次に mysql2 gem を入れるべし。

5. mysql2 gem を入れる

$ ARCHFLAGS="-arch x86_64" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
$ echo 'export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH' >> ~/.bash_profile

2つめの環境変数 DYLD_LIBRARY_PATH を追加する部分を忘れずに。別途 MAMP 環境等の Apache にて Rails 動かす場合はそっちにも同様の環境変数を通すべし。

導入完了、動作確認

$ cd /tmp
$ rails new myproj --database=mysql
$ cd myproj
$ vim config/database.yml

    # development と test ブロックの username と password を正しいものに設定
    development:
      adapter: mysql2
      encoding: utf8
      reconnect: false
      database: myproj_development
      pool: 5
      username: root    # ココと
      password:         # ココを修正
      host: localhost

$ rake db:create   # エラーが出なければ OK
$ mysql -u root myproj

おまけ: MAMP 環境の MySQL を使いたい場合

別途新に MySQL Server を立てず、MAMP についてくる MySQL Server をそのまま使いたい場合の導入作業手順。いろいろ試したけど、これをやるには以下の問題があって:

MAMP の MySQL には mysql2 gem のコンパイルに必要な各種ライブラリファイルが含まれていない

ゆえに別途ごにょごにょと細工が必要。ググると MAMP 同梱の MySQL 用に別途 lib, include 系リソースを make し直すやり方等々あるも、どれも手間かかる。なので見出した策としては

  • mysql2 gem コンパイル用に、ひとまず別途 MySQL Server をインストール
  • コンパイルに関係無い資源をごそっと削除 (460M -> 22M までファイル量削減)
  • mysql2 gem コンパイル

なステップを踏むとうまくいった。以下手順をば:

1. MySQL Server をインストール

前述同様、http://www.mysql.com/downloads/mysql/ にて最新版の x86, 64-bit DMG アーカイブ版を入手。mysql-5.5.18-osx10.6-x86_64.pkg の方だけをインストール。

2. 不要ファイルをごそっと削除

$ cd /usr/local/mysql
$ sudo du -h -d 1
    138M    ./bin
    1.2M    ./data
     12M    ./docs
    684K    ./include
    181M    ./lib
    660K    ./man
    120M    ./mysql-test 
     16K    ./scripts
    2.4M    ./share
    2.7M    ./sql-bench  
     96K    ./support-files
    458M    .

と、使わない資源が 400MB 以上あるのでこいつらを削除。

$ sudo rm lib/libmysqld*
$ sudo rm -rf docs man mysql-test scripts sql-bench support-files data share
$ cd bin/
$ ls -1 | grep -v -E '^(mysql|mysql_config|mysqldump)$' | xargs sudo rm
$ cd ..
$ du -h -d 1
    7.7M    ./bin
    684K    ./include
     14M    ./lib
     22M    .        # 22MB まで削減された

3. mysql2 gem をコンパイル

ARCHFLAGS="-arch x86_64" gem install mysql2 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
echo 'export DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH' >> ~/.bash_profile

これで導入完了。

4. Rails プロジェクト作って試す

MAMP の MySQL は初期設定だと linux socket 接続のみな点に注意。config はそこを要修正。

$ cd /tmp
$ rails new myproj --database=mysql
$ cd myproj
$ vim config/database.yml

    development:
      adapter: mysql2
      encoding: utf8
      reconnect: false
      database: myproj_development
      pool: 5
      username: root
      password: root
      socket: /Applications/MAMP/tmp/mysql/mysql.sock   # socket 接続方式を指定

$ rake db:create   # エラーが出なければ OK

以上。

Comments:1

ハマダ2 2011-11-21 (月) 22:19

ぼくはMySQLまわりがめんどくさいんでMAMP立ち上げて使っています。

Comment Form

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

Remember personal info

Home > Ruby > RVM 使って Mac OS X Lion で Ruby 1.9.x + Rails 3.x + MySQL

Search
Feeds

Page Top