Mac OS X LionでスクラッチからRails + Passenger + MySQL環境を構築する(その2:MySQLのインストール)

前回の記事で,XCodeとHomebrewのインストールまではできたので,次はMySQLのインストールをしてみます.


HomebrewMacPortsのようなパッケージマネージャで,RedHat系Linuxで言うyum, up2date,Debian系Linuxで言うaptのようなものです.
MacPortsと決定的に違うのは,MacPortsが全てのパッケージをPorts由来のものを1からコンパイルするのに対し,HomebrewはできるだけMac標準のコマンドを使うというところです.

例えば,MacPortsでソフトウェアをインストールすると,/opt/local/bin辺りに大量にソフトがインストールされます.
具体的には,OpenSSHなんかをPortsでインストールしていると,/opt/local/bin/sshにはMacPortsからインストールしたOpenSSHが,/usr/bin/sshにはMac OS Xに標準で入っているOpenSSHが重複してインストールされた状態になります.
これはApacheやらライブラリ群なども同じなので,MacPortsで開発環境を揃えると,たくさんの重複したプログラム(バージョンやコンパイルオプションは違う)ができてしまう事になります.

これだと容量のムダなので,HomebrewではできるだけMac OS Xに標準でインストールされているパッケージはそのまま使うという方針だそうで,その分コンパイルするプログラムの数も少なくなり,容量的にも有利というのが最近流行っている理由の様です.

Homebrewをコマンドラインから呼び出すときはbrewコマンドを使い,

$ brew search HOGEHOGE

でパッケージの検索,

$ brew info HOGEHOGE

でパッケージの詳細情報を得ることができます.

また,MacPortsではパッケージに対してオプションでVariantsを付けてインストールすることで(+HOGEHOGE),よく使うコンパイルオプションを設定することができましたが,Homebrewでは代わりにFormulaという設定ファイルを編集することで設定を行います.

$ brew edit HOGEHOGE

とやるとHOGEHOGEパッケージのFormulaを編集できます.FormulaはRubyのスクリプトなので,何となく編集出来る人は編集した後,

$ brew install HOGEHOGE

でインストールできます.

というわけで,MySQLをインストールするには,

$ brew install mysql
$ unset TMPDIR
$ mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp

で,その後

$ mysql.server start

でMySQLdが起動します.
Mac OS X起動時に自動的に起動させたい場合は

$ mkdir -p ~/Library/LaunchAgents
$ cp /usr/local/Cellar/mysql/5.5.14/com.mysql.mysqld.plist ~/Library/LaunchAgents/
$ launchctl load -w ~/Library/LaunchAgents/com.mysql.mysqld.plist

とやっておけば良いです.
他にも,通常のサーバの様にdaemon専用のmysqlユーザーを作成して設定する方法なども,brew info mysqlすると見られます.

Homebrewを使ってみた感想ですが,MacPortsに比べてパッケージの数がまだ少ないという印象です.例えば,MacPortsを使っていたときはscreenのvertical-split版をインストールしていたのですが,Homebrewだと今のところデフォルトではscreenのFormulaがありません.
恐らくMac OS Xにはscreenがプリインストールされているのが原因だと思うのですが,最新の機能をどんどん使いたいというユーザにはHomebrewは向いていない(というかFormulaを探すor書くのが面倒)のかもしれません.
(もちろん,自分でFormulaを書けばインストールすることもできます→screen で縦分割したい

MySQLのインストールというよりもHomebrewの解説がメインになってしまいましたが,今回はここまでで.次はApacheの設定に入って行きます.多分.

Ruby on RailsによるWEBシステム開発、Android/iPhoneアプリ開発、電子書籍配信のことならお任せください この記事を書いた人と働こう! Ruby on Rails の開発なら実績豊富なBPS

この記事の著者

morimorihoge

高校卒業後,学生をやりながらずっとWebアプリ開発に携わってきました.2010くらいまではPHP/Symfonyプログラマでしたが,それ以降のWeb開発はRailsほぼ一本に宗旨替えしました.開発とは別にサーバ構築・運用も10年以上やってきているので,要件定義から設計・実装・環境構築・運用まで一通り何でもこなせます.開発以外では季節により大学でWebサービス開発やプログラミング関連の非常勤講師もしており,技術の啓蒙・教育にも積極的に関わっています.最近はPM的な仕事が増えていますが,現役開発者としていつでも動ける程度にはコードもサーバも弄る日々を送っています.AWS 認定ソリューションアーキテクト – アソシエイトレベル取りました

morimorihogeの書いた記事

BPSアドベントカレンダー

週刊Railsウォッチ

インフラ

BigBinary記事より

ActiveSupport探訪シリーズ