Macのクリーンなセットアップから、Rubyの開発環境構築まで

家のMacで少し不具合が出てしまっていたので、思い切ってクリーンインストールを実行。
実は数週間、休日の時間を割いてバックアップ作業やらをしていましたw

ToDo

  • バックアップ
  • クリーンインストール
  • ソフトウェアアップデート
  • システム環境設定・その1基礎設定編
  • システム環境設定・その2拡張設定編
  • ソフトウェアインストール
  • 開発環境

バックアップ

バックアップは以下の方法で

  • ファイルサイズの大きい物は、外付けハードディスクへ。
  • ファイルサイズの小さい物は、Dropboxに移動。
  • ブラウザのブックマークはxmarksを利用。
    • アドオンはそんなに使ってないので、Evernoteのメモで済ませる。
  • 開発環境の設定ファイル(zshrcとか)はgithub経由で。
  • インストールしていたアプリケーション+環境設定項目は、Evernoteにメモする。

クリーンインストール

id:amachangの記事を見ながらクリーンインストール。
OSのバージョンが違うけど、気にしない。
Macbook (with Snow Leopard) 買った後にやったことまとめ
http://d.hatena.ne.jp/amachang/20090926/1253982602

  • 自分メモ
    • (なぜか)自分は英語環境を好んで使っているので、キーボードはU.S.キーボード、言語環境は英語、という設定
    • はっきり言って何も困らない。
    • 特にMacだと、英語環境でセットアップしても、日本語も対応している。
    • むしろシンプルになる。
    • 日本語未対応のソフトウェアをインストールすることもあるので、環境は日本語でなくて良い。

ソフトウェアアップデート

これもid:amachangの記事そのまま。
セキュリティアップデート含め、色々とアップデートされるので必須。
時間はめっちゃかかる。その間に寝てしまえ!

システム環境設定・その1基本設定編

これもid:amachangの記事をそのまま参考に。
設定値はお好みで。
OSのバージョンが違うので、設定値、設定項目にすこし差異があるけど、気にしない。

CapsLockキーは基本使わないので、速攻ctrlキーへリマップ。キーボードとマウスの設定から変更。
外付けハードディスクにパーティションを切って、TimeMachineの設定もしておく。

システム環境設定・その2拡張設定編

キーリピートを早くする環境設定項目や起動音を消す環境設定を入れる。

  • Growl
    •  http://growl.info/
    • アプリケーションと連動していろんなことを通知してくれる便利な子。
    • dmgパッケージ内のextrasディレクトリにあるgrowlnotifyを追加でインストールしておくと、コマンドラインやら自作プログラムからも通知できるようになる。
  • StartupSound.prefPane
    •  http://www5e.biglobe.ne.jp/~arcana/StartupSound/BETA/
    • Macが起動するときの「ジャーン」っていう起動音を消してくれるイケてる子
    • 勉強会とかに行って、Mac起動して「ジャーン」とか結構ハズイです

ソフトウェアインストール

いろいろとソフトウェアを入れていく

効率化系
  • InputSwitcher
    •  http://limechat.net/inputswitcher/index_ja.html
    • MacOSX10.5とかだと、IMEの入力ソースの状態をアプリケーション毎に保持してくれていない
    • Quicksilver使うときとか、これないといけてない。
    • それをうまく保持しておいてくれるいい子。
    • SIMBLプラグインなので、SIMBLを先にインストールします。
  • バッドハック的なTips
    • QuicksilverでIMEの入力ソースの状態を保持させようとすると、最初うまくいかないことがある。
    • Quicksilverのアイコンをdockに表示しておくようにすると、問題なく保持しておいてくれる。
  • iStat Menus
    •  http://bjango.com/mac/istatmenus/
    • MenuバーにCPUの状態やら、温度やら、メモリの使用量やらを表示してくれる。
    • 有料版だけど、個人的には納得の値段。
  • Dropbox
    •  http://www.dropbox.com/
    • ファイル共有のあれですね。
    • 自分なぜかSugarSyncがうまくいかなかったので、Dropbox使ってます。
  • Evernote (using beta version)
    •  http://www.evernote.com/
    • 有名なあれですね。
    • インストールしたらEvernoteの環境設定からソフトウェアアップデートの設定で、betaバージョンを使う的な設定をしておくと、勝手にbetaバージョンにしてくれる。
  • Divvy
    •  http://mizage.com/divvy/
    •  ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã®ã‚µã‚¤ã‚ºã‚’グリッドを選んで変更できる、といういい感じのもの
    • 有料版だけど、起動時にDemoを押すことで、(多分)ずっと無料で使える
    • ショートカットキーも設定できるので、いい感じ。
  • DejaMenu
    •  http://homepage.mac.com/khsu/DejaMenu/DejaMenu.html
    • Macだと画面上部に表示されているメニューバー。
    • その項目をショートカットキーを使って、ポップアップでその場に表示してくれる優れもの
    • ログイン時に起動を自分で設定しなきゃいけないので、環境設定からアカウントへ進んでログイン項目に追加します。
ユーティリティ系
  • ClamXav
    •  http://www.clamxav.com/
    • 無料でかつイケテル、ウィルススキャナー
    • 駐屯させておく場合、いくらか設定を変更します。
      • ログファイルは見ないので、オフします。
      • すべてのディレクトリを監視対象にしてしまうと、メモリをやたらと喰うので、絞って設定します。
  • Macにはパッケージ管理、という考え方はないので、アップデートの一括管理とアンインストールユーティリティをインストールしておきます。
  • AppCleaner
  • AppFresh
  • 圧縮ファイルの解凍ユーティリティもいれておきます。
  • StuffItExpander
  • The Unarchiver
    •  http://wakaba.c3.cx/s/apps/unarchiver.html
    • たまにStuffitで解凍できないものもあるので、一応いれてあります。
    • StuffitExpanderの方が有名だけど、Unarchiverだけで実はOKだったりするのかな?
ブラウザ
  • Firefox
    • vimperatorを使いたいがために、まだfirefox4には移行しない
    • add-onsは以下のような感じ。
Office作業系
  • iWork
    • Keynote(officeでいうところのパワーポイント)は抜群にイケテます。
    • 有料でも買う価値あり
メディア系(非必須)
  • Tune-up iTunes
    •  http://desireforwealth.com/software.shtml
    • "かゆいところに手が届く"設定系のアプリケーション
    • iTunesの設定ができます。
    • 個人的には、iTunesがジャンルとかを勝手にローカライズ(「Rock」を「ロック」にかえたりとか)するのが嫌いなので、それをオフにしてしまいます。それだけに使ってます。
  • VLC
    •  http://www.videolan.org/vlc/
    • かなりイケテルビデオ再生アプリケーション。
  • perian
    •  http://perian.org/
    • quicktimeプレイヤーにCODECを追加してくれるイケテル子。

開発環境

せっせとセットアップしていきますよ

ColorPreference

http://niw.at/articles/2007/11/02/TerminalColoreopard/ja
TerminalのANSIカラーを変更して自分好みに見やすくしてくれるいい感じの設定プラグインです
個人的には、Brightで設定されている色をドラッグドロップで、Brightでない色にも設定してしまうことで見やすくなる気がします
SIMBLEプラグインなので、SIMBLのインストールがまだの場合、先にSIMBLをインストールします
REDと、BLUEの色を調整してあげると、だいぶ楽(terminalのウィンドウ設定がproの場合)

Xcode

OSXのDVDからXcodeToolsを入れておきます

zsh

http://www.zsh.org/
とりあえず、shellの環境をbashからzshに変えたいので、zshから作業します。
source forgeからzshの最新版をダウンロード
terminalを立ち上げて以下のようにインストール

% cd ~/src
$ tar xzvf zsh-4.3.10.tar.gz
$ cd zsh-4.3.10
$ ./configure --enable-multibyte --enable-locale
$ make
$ sudo make install

zsh-4.3.10が/usr/local/binあたりにインストールされます。
そうしたら、shellを変更します。

$ chsh

パスワードを求められるので、入力
エディタ画面で、Shell: のところに、zsh-4.3.10のパスを入力して保存。

# Changing user information for takayukisugita.
# Use "passwd" to change the password.
##
# Open Directory: /Local/Default
##
Shell: /usr/local/bin/zsh-4.3.10
Full Name: takayukisugita
Office Location:
Office Phone:
Home Phone:

terminalを起動しなおしてzshになっていれば完了。
一応確認として以下のコマンドで今のshellがなんなのかを確認。

% echo $SHELL
paco

http://paco.sourceforge.net/
package管理をしてくれるイケテル子
と思ったら、macだと動かない?
http://d.hatena.ne.jp/mickey24/20081210/1228851077
今回は使わないことに。

wget

http://www.rokujyouhitoma.com/javapg/2008/01/mac_os_x_105wget.html
macには(BSDには?)wgetがデフォルトでは入っていないので、wgetを入れていきます。便利なので

% cd ~/src
% curl -O http://ftp.gnu.org/pub/gnu/wget/wget-1.9.tar.gz
% tar xzvf wget-1.9.tar.gz
% cd wget-1.9
% ./configure
% make
% make install
git

http://git-scm.com/
githubで設定ファイルの多くを管理しているので、さっさとgitをインストールします。
といいつつも、やはりそこは、sourceからいんすとーるしませう。
参考にしたのは、http://www.msng.info/archives/2008/10/_git_mac_os_x.php

% cd ~/src
% wget http://kernel.org/pub/software/scm/git/git-1.7.3.5.tar.bz2
% tar xvf git-1.7.3.5.tar.bz2
% cd git-1.7.3.5
% ./configure
% make prefix=/usr/local all
% sudo make prefix=/usr/local install
秘密鍵と公開鍵

githubにアクセスするために、秘密鍵と公開鍵をつくります。

% cd ~/.ssh
% ssh-keygen -t rsa -C "hoge@fuga"

公開鍵をコピーして、githubのサイトに設定します。
http://github.com

% cat id_rsa.pub | pbcopy  

ちなみに僕の設定ファイルはhttps://github.com/sugilog/dotfilesにあります。

% cd ~
% git clone [githubのsshアドレス]
設定ファイル

zshとかvimとかほかいろいろで設定ファイルを反映させたいのでgithubで管理していたdotfilesにシンボリックリンクをはります。
具体的には、ホームディレクトリ直下に、.なんとかrcってファイルがある状態にします。

% ln -s dotfiles/.zshrc

terminalを再起動してあげると、.zshrcが反映されています!いえい
ちなみに複数環境を使っている関係で、環境に合わせた設定は、.zshrc.localというファイルに切りだしています。
故に、以下のコマンドを追加でしておきます。

% touch .zshrc.local
vim

これは自分のブログに残してあった。
http://d.hatena.ne.jp/sugilog/20100909/1284037843
最新のVimを使いたい!

% cd ~/src
% wget http://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
% tar jxfv vim-7.3.tar.bz2
% mkdir vim73/patches
% cd vim73/patches
% wget http://ftp.vim.org/pub/vim/patches/7.3/7.3.{001..107}
% cd ../
% cat patches/7.3.* | patch -p0
% ./configure --prefix=/usr/local --enable-multibyte --with-features=huge
% make
% sudo make install
tscreen

http://d.hatena.ne.jp/willnet/20090714/1247564755
http://d.hatena.ne.jp/LukeSilvia/20090713/p1
縦分割もできるscreenを入れておくと結構便利なので、いれておきます。

% cd ~/src
% wget http://www.steve.org.uk/Software/tscreen/dist/tscreen-0.4.9.tar.gz
% tar xzf tscreen-0.4.9.tar.gz
% cd tscreen-0.4.9

上のid:lukesilviaさんのブログで紹介されているpatchを当てます。
そしたらあとは

% ./configure --prefix=/usr/local
% make
% sudo make install
MacPorts

http://www.macports.org/install.php
http://lapangan.net/darwinports/index.php?TheMacPortsWiki/InstallingMacPorts
MySQLのインストールは、MacPortsを使ったほうが楽(コケない)ので、portを入れておく

% vi .zshrc.local

環境変数を設定します

export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export DISPLAY=:0.0

MacPorts本体をソースからいんすとーるしませう

% cd ~/src
% wget http://distfiles.macports.org/MacPorts/MacPorts-1.9.2.tar.gz
% tar xzvf MacPorts-1.9.2.tar.gz
% cd MacPorts-1.9.2/
% ./configure
% make
% sudo make install

インストールできたら、updateしてあげます。

sudo port -v selfupdate
mysql

portでがしがしいれていきます

sudo port install mysql5-server
sudo port load mysql5-server #startupの設定
sudo -u _mysql mysql_install_db5 #データベースの初期設定

mysqlで起動しなくて、mysql5で起動する場合、シンボリックリンクをはってあげます。

which mysql5
#=> /opt/local/bin/mysql5だったとして、
sudo ln -s /opt/local/bin/mysql5 /opt/local/bin/mysql 
ruby

http://blog.s21g.com/articles/1600
本体のrubyを入れる。とりあえず1.8.7で。

% cd ~/src
% wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p330.tar.gz
% tar xzvf ruby-1.8.7-p330.tar.gz
% ./configure --enable-shared --enable-pthread --with-readline-dir=/usr/local CFLAGS=-D_XOPEN_SOURCE=1
% make
% sudo make install

日本語入力まわりでこけたので、portからreadlineを入れてみる。

% sudo port install readline

けど、まだこけるので、レオさんの言うとおりに入れてみる

% wget ftp://ftp.cwru.edu/pub/bash/readline-6.1.tar.gz
% tar xzf readline-6.1.tar.gz
% cd readline-6.1
% ./configure --enable-multibyte --enable-shared
% make
% sudo make install

再度rubyを./configureからはじめる。
と、なにやら./configureでWARNINGが

configure: WARNING: unrecognized options: --with-readline-dir

http://d.hatena.ne.jp/willnet/20090131/1233411175
いらなくなった?

ちなみに、irb --noreadline -Ku、で実行してみたらうまく日本語入力ができた
readlineまわりでしくったなm(__)m(あとでrvmいれるのでそちらを参考に)

gem

デフォルトでインストールされている?gemがちょっとおかしい気がするので、こちらもいれていきます。
なぜか、gem envとうって、でてくるrubyのバージョンが1.8.6!!!がーん

RubyGems Environment:
  - RUBYGEMS VERSION: 1.0.1 (1.0.1)
  - RUBY VERSION: 1.8.6 (2009-06-08 patchlevel 369) [universal-darwin9.0]

とりあえず、今入っているgemをのけておきます

% sudo mv /usr/bin/gem /usr/bin/gem_origin

あとはRubyGems.orgからダウンロードしてインストール

% cd ~/src
% wget http://production.cf.rubygems.org/rubygems/rubygems-1.5.2.tgz
% tar xzvf rubygems-1.5.2.tgz 
% cd rubygems-1.5.2
% sudo ruby setup.rb

最新版のgemになりました

rvm

railsを入れる前に、そうだ!と思い出して、rvmを入れてみることに。
http://d.hatena.ne.jp/hrsth/20100523/1274590336

ほとんど、そのまんま実行して完了
shellの設定ファイルに追記する内容が少し変わっていた。
-s "$HOME/.rvm/scripts/rvm" && source "$HOME/.rvm/scripts/rvm"  # This loads RVM into a shell session.

こちらもそのままでいけました(失礼しました)

if [[ -s ${HOME}/.rvm/scripts/rvm ]] ; then source ${HOME}/.rvm/scripts/rvm ; fi

gihyoさんのこんな連載も
ちなみに誤解を生まないために、bashスクリプトって書いてあるけどzshでも使えます
http://gihyo.jp/dev/serial/01/ruby/0039

ためしに、rvmでrubyのインストールしてみる。

% rvm list known

ruby-head(最新)を入れてみる

% rvm install ruby-head -C "--enable-shared=true,--with-opt-dir=/opt/local"

irbの日本語入力もちゃんといけてます〜
ここからはGemSetsを利用してrails環境を作ります

rails

http://gihyo.jp/dev/serial/01/ruby/0040
引き続きgihyo.jpの記事を参考に。

rvmにいれたruby-1.8.7-p330のrails2用のgemsetを作ります

% rvm --create use ruby-1.8.7-p330@rails2

あとは通常のgemの操作

% gem install rails2
% rails -v
Rails 2.3.11

無事完了です!