Mac初心者の方にオススメする大失敗しない環境構築

  • 80
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

この記事では、これから初めてMacを使って開発を始める人を対象に、初歩的な開発用ツールのインストールや、便利なパッケージ管理ツール関連をまとめて紹介したいと思います。

Xcode

とにもかくにも、Xcodeを入れなければMacの開発環境構築は始まりません。やるべきことは次の三つです。
・Apple Developer登録(Apple Developerの"メンバーセンター"から
・AppストアからXcodeをダウンロード
・Xcode command line toolsをインストール

参考
Mac での Xcode コマンド ライン ツールのインストール
MavericksでCommand Line Tools for Xcodeをインストールする

Homebrew

Homebrewは、Mac上で開発用ソフトウェアなどの導入プロセスを簡単にしてくれるパッケージ管理ツールです。え、Macports?知らない子ですね...。
Homebrew公式

terminal
$ ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
terminal
$ brew doctor

brew doctorで警告が出たら、それを1つずつ潰していきます。だいたいはパッケージインストーラで入れたソフトが邪魔だよっていう感じのメッセージだと思うので、必要じゃなければ消してしまいましょう。
いるのかいらないのか分からないときは、エラーメッセージをそのままGoogle先生に投げてみましょう。きっとStack Overflowあたりのなんかの記事がひっかかります。

Homebrewでは、searchコマンドを使って、欲しいソフトがHomebrew経由で提供されているかどうか調べることができます。例えば、Node.jsが欲しいときは

terminal
$ brew search node

という風にやると、提供されている「node」に関するパッケージ一覧を見ることができます。
もし、欲しいものが見つかれば

terminal
$ brew install node

のようにしてあげれば、あとは必要な環境をHomebrewが勝手に整えてインストールしてくれます。

さて、Homebrewで入れる前に元からシステムに入っていたもの(gitとか)をHomebrewで入れ直しても、入れ直した方をシステムが使ってくれないことがあります。こういうときは、大体パスの設定が原因です。「システムデフォルトよりも、Homebrewでインストールしたものを優先して使う」という記述が必要になります。Homebrewでインストールしたものへのパスは大体、/usr/local/binの下にありますので、これを最優先パスとして設定の先頭に持ってきてあげれば解決です。

macはデフォルトがbashなので、今回は~/.bash_profileにパスの設定を書きます。zsh使いの人は~/.zshenvに書いてください。(「~」はmacのホームディレクトリ、つまり/Users/username/を指します)
emacsなりvimなり、好きなエディタをお使いください。

~/.bash_profile
export PATH=/usr/local/bin:$PATH
terminal
$ source ~/.bash_profile

これで、Homebrewから入れた方が優先されるようになりました。
参考
パッケージ管理システムHomebrew

pyenv

pythonの2系と3系の両方使って開発したい、という方にオススメ。pythonがあればいいやという人はhomebrewでpythonを入れるだけで十分でしょう。

terminal
$ brew install python

pythonのバージョン管理ツールはいくつかありますが、pyenvが一番使いやすいのではないかと思います。pythonbrewはサポート終了してて、とんでもないバグのあるpython3.3.1までしか提供されてないのでおすすめしません。pythonzはそもそもちょっと思想が違うので割愛。
pyenv公式

terminal
$ brew install pyenv
terminal
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

(zsh使いの人は、.bash_profileを.zshenvに書き換えてください)

pyenv install -lでインストールできるpython一覧が見れます。

terminal
$ pyenv install -l

たとえば、バージョン2.7.6をインストールしたいときは

terminal
$ pyenv install 2.7.6
terminal
$ pyenv rehash

というようにしてあげればOK

さて、brewでインストールしたものの、pythonのconfigが~/.pyenvの中(つまりhomebrewの外)にあるとhomebrewは嫌がります。あと、homebrewはpythonの2系を使っているので、pyenvでインストールした3系にパスが通っているとそれも嫌がります。

terminal
$ brew doctor

Warning: "config" scripts exist outside your system or Homebrew directories.
`./configure` scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:

    /Users/username/.pyenv/shims/python-config
    /Users/username/.pyenv/shims/python2-config
    /Users/username/.pyenv/shims/python2.7-config
    /Users/username/.pyenv/shims/python3-config
    /Users/username/.pyenv/shims/python3.3-config
    /Users/username/.pyenv/shims/python3.3m-config

こんな感じの警告が出ます。
解決方法としては、普段使いのpythonはhomebrewで入れておいて、開発の時のみpyenvのpythonを使うという方法があります。具体的にすることは、

  • さっき紹介した、brew install python
  • /usr/local/bin/brewに、/Users/username/.pyenv/shimsを抜いたパスを追記

の二つです。

/usr/local/bin/brew
#!/bin/sh

#ここから
PATH=/Users/username/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
#ここまで追記
#(お使いの環境の$PATHから/Users/username/.pyenv/shimsを抜いて追記してください)

BREW_FILE_DIRECTORY=$(dirname "$0")
BREW_FILE_DIRECTORY=$(cd "$BREW_FILE_DIRECTORY" && pwd -P)

##...以下略

これで、brewコマンドを使うときにはPATHからpyenvのpythonが外れるため、brew doctorしてもエラーが出なくなります。

では、pyenvの基本的な使い方をちょろっと紹介します。

pyenv versionsでインストールされたpythonの一覧と現在有効になっているpyhtonが見れます(*が付いているのが現在有効なpython)

terminal
$ pyenv versions
* system (set by /Users/username/.pyenv/version)
  2.7.6
  3.3.5

デフォルトのpythonをpyenvでインストールしたpython2.7.6に設定したいときは

terminal
$ pyenv global 2.7.6

プロジェクトで使うpythonを指定したい時は

terminal
$ cd /path/to/projectDirectory
$ pyenv local 2.7.6

デフォルトを本来(homebrew)のpythonに戻したいときは

terminal
$ pyenv global system

有効になっているpythonの場所は

terminal
$ pyenv which python

参考
Macでpyenv+virtualenv

rbenv

複数バージョンのrubyを使い分けたい、gemでシステム環境を汚したくない、という人にオススメ。ちょっと前のmacはシステムデフォルトのrubyが全然ダメで、rbenvにはそれを補うという暗黙の役割的なものもありましたが、今のMavericksはデフォルトも結構安定しているようです。よくrvmと比べられますが、断然rbenvです。bundlerありますからね。それにpyenvと使い方は一緒なので慣れやすいと思います。
rbenv公式

terminal
$ brew install ruby-build
$ brew install rbenv
terminal
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile

(zsh使いの人は、.bash_profileを.zshenvに書き換えてください)

rbenv install -lでインストールできるruby一覧が見れます。

terminal
$ rbenv install -l

たとえば、rubyのバージョン2.1.1をインストールしたいときは

terminal
$ rbenv install 2.1.1
terminal
$ rbenv rehash

というようにしてあげればOK

rbenv versionsでインストールされたrubyの一覧と現在有効になっているrubyが見れます(*が付いているのが現在有効なruby)

terminal
$ rbenv versions
  system
  2.0.0-p353
* 2.1.1 (set by /Users/username/.rbenv/version)

デフォルトのrubyをrbenvでインストールしたruby2.1.1に設定したいときは

terminal
$ rbenv global 2.1.1

プロジェクトで使うrubyを指定したい時は

terminal
$ cd /path/to/projectDirectory
$ rbenv local 2.1.1

システム本来のrubyに戻したいときは

terminal
$ rbenv global system

有効になっているrubyの場所は

terminal
$ rbenv which ruby

また、rbenvとbundlerを用いた開発環境の構築にはこちらの記事が非常に参考になります↓

Rails開発環境の構築(rbenvでRuby導入からBundler、Rails導入まで)

まとめ

  • まず$PATHを見よ
  • 欲しいものがあったらbrew search
  • pythonはいつも1つ
  • rvmに頼らずrbenv+bundler
  • 基本的に公式docが正義。英語でも敬遠せずに読もう