前回の過去記事、
では、OS X Yosemite / MacBook Pro (Early 2015) の初回セットアップ手順をまとめたのですが、今回はそれに引き続き、開発環境のセットアップ手順をまとめていきたいと思います。主に、Python 系の開発環境のセットアップになります。
参考記事
若干古いですが、すごく参考になった記事です。
<参考>
Introduction | Mac OS X Setup Guide
こちらの記事も参考にしましたが、Brewfile がそのまま使えなくなったので、素の brew コマンドを叩くようにしています。
<参考>
新卒エンジニア向け:Macにインストールすべきアプリ達
環境
- OS X Yosemite 10.10.5
セットアップするもの
- 1. Xcode
- 2. Homebrew
- 3. 開発系パッケージ
- 4. 開発系アプリ
なお、本記事の手順およびアプリのバージョン等は、2015年9月20日時点のものです。
1. Xcode
1.1. Xcode 6.4
Xcode は App Store からインストールします。
が、ここでいきなりハマります。。
Xcode のダウンロードが全然進まず(数十KB/秒くらい?)、結局「Xcode をダウンロードできませんでした」というエラーが出てしまい、何度やり直してもダメ。
いろいろググッた後、ダメ元で Google Public DNS を使うように設定したらすんなりとダウンロードできるようになりました。
設定方法は、[システム環境設定] → [ネットワーク] から、
<参考>
[Mac]Mac でGoogle Public DNS を設定する方法
1.2. Command Line Tools
Command Line Tools をインストールするには、以下のコマンドを実行します。
$ xcode-select --install
ダイアログが出てくるので、「インストール」をクリックします。
Command Line Tools がインストールされると、合わせて、Git などもインストールされます。
$ git --version git version 2.3.2 (Apple Git-55) $ which git /usr/bin/git
ちなみに、Mavericks 以前では、Xcode を起動して、
[Xcode] → [Preferences] → [Downloads]
と操作することでインストールできたのですが、Mavericks 以降はそれができなくなったようです。
<参考>
MavericksでCommand Line Developer Toolsをインストールする方法が変更 | Act as Professional
次に、Xcode/iOS のライセンスに同意しておきます。
理由としては、これ以降の手順で Homebrew を使っていろいろインストールするのですが、その際に、
$ brew install caskroom/cask/brew-cask ==> Tapping caskroom/cask Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo. Error: Failure while executing: git clone https://github.com/caskroom/homebrew-cask /usr/local/Library/Taps/caskroom/homebrew-cask --depth=1
などといったエラーが出ることがあるので、ここで先にライセンス処理を済ませておきます。
Xcode/iOS ライセンスに同意するには、以下のコマンドを実行します。
$ sudo xcodebuild -license Password: xxxxx You have not agreed to the Xcode license agreements. You must agree to both license agreements below in order to use Xcode. Hit the Enter key to view the license agreements at '/Applications/Xcode.app/Contents/Resources/English.lproj/License.rtf' By typing 'agree' you are agreeing to the terms of the software license agreements. Type 'print' to print them or anything else to cancel, [agree, print, cancel] agree
2. Homebrew
2.1. Homebrew
ターミナルで以下のコマンドを実行して、Homebrew をインストールします。
なお、途中で管理者パスワードを聞かれるので、適宜入力します。
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
念のため、コマンドは公式サイトをチェックしておいた方がよさげです(記事によっては公式サイトとは異なるコマンドが記載されている場合があるようです)。
<参考>
Homebrew — OS X 用パッケージマネージャー
$ brew --version 0.9.5 (git revision a2a7; last commit 2015-09-14)
Homebrew は「/usr/local/」以下にファイルをインストールするので、「/usr/local/bin」にパスを通しておく必要があるのですが、最初から「/usr/local/bin」にパスが通っていたので、今回は特に何もしませんでした。
$ env $PATH env: /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin: No such file or directory
もしパスが通っていなければ、以下を実行。
$ echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bash_profile $ source ~/.bash_profile
最後に、Homebrew の診断をしておきます。
$ brew doctor Your system is ready to brew.
使い方
brew search パッケージ名 brew install パッケージ名 brew list
<参考>
Mac OS X YosemiteにHomebrewをインストール - @uents blog
2.2. Homebrew Cask
次に、Homebrew Cask をインストールします。
Homebrew Cask を導入することで、コマンドラインから通常のアプリ(dmgパッケージ)をインストールすることができるようになります。
$ brew install caskroom/cask/brew-cask
【2016/03/10 追記】
Homebrew Cask のインストール方法が変更されました。
手順については、以下を参照。
akiyoko.hatenablog.jp
診断しておきます。
$ brew cask doctor
最後に、appdirオプションの設定をしておきます。
特に appdirオプションについては、設定を強くオススメします。設定しておかないと、アプリケーションによって /Applicationsだったり、 ~/Applicationsだったりにシンボリックリンクリンクが作られてしまいます。
その他、必要に応じてオプションを追加しましょう。詳しくは公式ドキュメントを参照してください。
$ echo 'export HOMEBREW_CASK_OPTS="--appdir=/Applications"' >> ~/.bash_profile $ source ~/.bash_profile
3. 開発系パッケージ
3.1. Python
Macには、デフォルトでも Python 2.7 が入っているのですが、
$ python --version Python 2.7.10 $ which python /usr/bin/python
Homebrew でインストールすることで、より新しいステーブルな Python を入れることができます。
$ brew install python $ python --version Python 2.7.10 $ which python /usr/local/bin/python
でも、結局バージョンは変わらずでした。
<参考>
python - Installing pip on Mac OS X - Stack Overflow
3.2. pip
pip は、Homebrew の formula が用意されていないので、次のようにインストールします。
$ sudo easy_install pip $ pip --version pip 7.1.2 from /usr/local/lib/python2.7/site-packages (python 2.7)
3.3. virtualenv
virtualenv は、pip でインストールします。
$ pip install virtualenv $ pip list | grep virtualenv virtualenv (13.1.2)
3.4. JDK 1.8
Python 開発環境「PyCharm」を起動するには JDK が必要なので、事前に最新版の JDK 1.8 をインストールしておきます。
$ brew cask install java
Java のインストール先を確認します。
$ /usr/libexec/java_home -V Matching Java Virtual Machines (1): 1.8.0_60, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home $ /usr/libexec/java_home -v 1.8 /Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home
パスを通します。
$ cat << EOF >> ~/.bash_profile export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home export PATH=\$JAVA_HOME/bin:\$PATH EOF $ source ~/.bash_profile
バージョンを確認。
$ java -version java version "1.8.0_60" Java(TM) SE Runtime Environment (build 1.8.0_60-b27) Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)
3.5. Git
$ brew install git
Xcode の Command Line Tools でインストールされたバージョン(2.3.2)から、若干バージョンが新しくなりました。
$ git --version git version 2.5.2 $ which git /usr/local/bin/git
初期設定をしておきます。
$ git config --global user.name "akiyoko" $ git config --global user.email "akiyoko@users.noreply.github.com" $ git config --global color.ui auto
<過去記事>
Git はコマンドで使う派なので、SourceTree 等のアプリは今のところ入れていません。
3.6. nodebrew & Node.js
nodebrew は、Node.js を管理するためのパッケージです。
<過去記事>
過去記事の当時は、nodebrew は Homebrew で管理していなかったのですが、今回は Homebrew でインストールすることとします。
$ brew install nodebrew $ nodebrew --version nodebrew 0.8.1
パスを通します。
$ echo "export PATH=\$HOME/.nodebrew/current/bin:\$PATH" >> ~/.bash_profile $ source ~/.bash_profile
Node.js の最新版をインストールします。
$ nodebrew install-binary stable $ nodebrew list v4.0.0 current: none $ nodebrew use v4.0.0 use v4.0.0 $ node -v v4.0.0 $ npm -v 2.14.2
<参考>
Node.jsの管理をHomebrewからnodebrewに変える - Qiita
途中、インストール時にエラーが出て、少しハマってしまいました。。
$ nodebrew install-binary stable fetch: http://nodejs.org/dist/v4.0.0/node-v4.0.0-darwin-x64.tar.gz Warning: Failed to create the file Warning: /Users/akiyoko/.nodebrew/src/v4.0.0/node-v4.0.0-darwin-x64.tar.gz: No Warning: such file or directory curl: (23) Failed writing body (0 != 1033) download faild: http://nodejs.org/dist/v4.0.0/node-v4.0.0-darwin-x64.tar.gz
$ mkdir -p ~/.nodebrew/src
とすると、解消できました。
3.7. wget
OS X には wget が入っていないので、Homebrew からインストールします。
$ brew install wget $ wget --version GNU Wget 1.16.3 built on darwin14.1.0.
3.9. AWS CLI
$ brew install awscli $ aws --version aws-cli/1.8.2 Python/2.7.10 Darwin/14.5.0
aws configure コマンドでアクセスキーの設定をします。
ここでは以前に AWS Management Console で設定した「Admin」のアクセスキーを利用します。
<過去記事>
$ aws configure AWS Access Key ID [None]: AKIXXXXXXXXXXXXXXXXX AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: json
~/.aws/ 以下に 2つのファイルが作成されます。
$ cat ~/.aws/credentials [default] aws_access_key_id = AKIXXXXXXXXXXXXXXXXX aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $ cat ~/.aws/config [default] output = json region = ap-northeast-1
試しに、S3 のバケット一覧を取得してみます。
$ aws s3 ls 2015-06-23 01:27:06 app1-transcoder-in 2015-08-20 00:41:35 app1-transcoder-out
3.10. Ansible
$ brew install ansible $ ansible --version ansible 1.9.3 configured module search path = None
Vagrant で起動した VM(192.168.33.10 で起動中と仮定)に対して、疎通テストをしてみます。
まずは、インベントリファイルを、とりあえず ~/hosts あたりに作っておきます。
$ cat << EOF > ~/hosts [webservers] 192.168.33.10 [all:vars] ansible_ssh_user=vagrant EOF
インベントリファイルを探索するルールについては、以下を参照のこと。
osx - Where to store Ansible host file on Mac OS X - Stack Overflow
実行結果。
$ ansible -i ~/hosts all -m ping -k SSH password: 192.168.33.10 | success >> { "changed": false, "ping": "pong" }
4. 開発系アプリ
開発系アプリのインストール方針として、App Store でインストールできるものは App Store で、インストールできないものは(公式ページから dmgパッケージをダウンロードしてインストールするのではなく)Homebrew Cask からインストールすることとします。
4.1. iTerm2
$ brew cask install iterm2
iTerm を立ち上げて、Profile設定から適宜設定を変更します。
[Profiles] → [Open Profiles...] → [Edit Profiles...] → [Text]
とりあえず、フォントを 10pt くらいに変更。
便利なショートカット
ショートカット | 説明 |
---|---|
cmd + f | 検索 |
cmd + t | 新規タブ |
cmd + w | タブを閉じる |
cmd + ←(→) | タブの左右移動 |
cmd + 数字 | タブ番号を指定して移動 |
cmd + shift + h | クリップボードの履歴表示 |
4.2. Sublime Text 3
Sublime Text 3 はまだベータ扱い?らしく、caskroom/homebrew-versions を tap してからインストールします。
「sublime-text3」ではなく「sublime-text」という名前に変わったようです。(2016/9/2 修正)
(変更前)
$ brew tap caskroom/homebrew-versions $ brew cask install sublime-text3
(変更後)
$ brew cask install sublime-text
以降、Sublime Text 3 の初期設定をしていきます。
<参考>
[tips][Sublime Text] Sublime Text 3をインストールしたらまずやること
4.2.1. License
[Help] → [Enter License]
「----- BEGIN LICENSE -----」から「------ END LICENSE ------」までを貼り付け。
4.2.2. Package Controlのインストール
Console を表示します。
Mac : control + ` (shift + @)
Win : Ctrl + `
Installation - Package Control
の「SUBLIME TEXT 3」タブに記載されているコマンド
import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
をコピペして Enter(上記コマンドは適宜、公式ページを参照してください)。
4.2.3. 日本語のインライン化
「IMESupport」は不要になったようです。日本語入力時にも特に問題はありません。
4.2.4. 文字コード対応
Package Control を開きます。
Mac : command + shift + p
Win : Ctrl + Shift + p
Package Control で「ConvertToUTF8」を検索してインストールします。
4.2.5. 全角スペースの表示
Package Control で「TrailingSpaces」を検索してインストールします。
行末のスペースは表示されているのですが、全角スペースが認識できていないような。。
<参考>
Sublime Text 3でスペース(半角・全角)やタブを可視化する方法
4.2.6. ユーザ設定
[Preference] → [Settings - User]
{ "default_encoding": "UTF-8", // デフォルトのエンコーディングの文字コード "draw_white_space": "all", // タブやスペースなどの不過視文字を表示 "fallback_encoding": "UTF-8", // 文字コードが不明なファイルのエンコーディングの文字コード //"font_face": "", "font_size": 10, "highlight_line": true, // 現在の選択行をハイライト表示 "ignored_packages": [ "Vintage" ], "line_padding_top": 2, // 行間 "show_encoding": true, // エンコーディングの文字コードを右下のステータスバーに表示 "tab_size": 4, "trailing_spaces_highlight_color": "comment", // コメントの色でハイライト "trailing_spaces_regexp": " |[ \t]+", // 全角スペースを正規表現に追加 "translate_tabs_to_spaces": true, // タブをスペースに変換 //"trim_trailing_white_space_on_save": true, // 空白の削除 "word_wrap": true // 自動改行 }
4.2.7. sublコマンドで起動できるように
$ ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/subl
これで、「subl xxx.txt」とコマンドを打つことで、ファイルを Sublime Text 3 で起動することができるようになります。
<参考>
Sublime Text | Mac OS X Setup Guide
4.2.6. 再起動
最後に、Sublime Text 3 を再起動します。
4.3. Vagrant & VirtualBox
Vagrant および VirtualBox をインストールします。
$ brew cask install vagrant $ vagrant --version Vagrant 1.7.4 $ brew cask install virtualbox
VMの管理をしやすくするために、Vagrant-Manage もインストールしておきます。
$ brew cask install vagrant-manager
<参考>
- brew cask で Vagrant 1.6.x をインストール - oooooooo
- MacでのVagrantの使い方とコマンドについて(VirtualBoxに仮想マシンを作成) - TASK NOTES
ちなみに以前は、
という感じで、アプリをダウンロードしてからインストールしていました。
また、Vagrantbox.es というサイトから Box を検索して「vagrant box add」で URL を登録していましたが、現在は Vagrant を開発している本家 HashiCorp が Box を配布するようになっています。
Discover Vagrant Boxes | Atlas by HashiCorp
なので、「Boxを追加する」という作業も不要になりました。
「vagrant init」で名前を指定した後、初回の「vagrant up」実行時にダウンロードが始まります。
$ mkdir -p ~/vagrant/ubuntu14 && cd $_ $ vagrant init ubuntu/trusty64 $ vagrant up
また、Vagrant-Manager のアプリを起動すると、現在 Vagant で起動している VM の数と状態が容易に把握できるようになります。
<SSH で VM に乗り込む方法>
$ cd ~/vagrant/ubuntu14/ $ vagrant ssh
あるいは、IPアドレスを指定してSSHで乗り込む方法もあります。
$ vi Vagrantfile ----- 29 # config.vm.network "private_network", ip: "192.168.33.10" ↓ 29 config.vm.network "private_network", ip: "192.168.33.10" ----- (※コメントアウトを削除) $ vagrant reload ### SSHログインID/Pass は、vagrant/vagrant で $ ssh vagrant@192.168.33.10
4.4. PyCharm
インストールするのは、Professional Edition です。
$ brew cask install pycharm
【2015/10/26 追記】
PyCharm の設定について、記事にまとめました。
4.6. R & RStudio
brew tap homebrew/science ### XQuartz のインストールは不要でした ### brew cask install xquartz brew install r brew cask install rstudio
図のキャプションに日本語を使うと文字化けしてしまう問題への対応方法
~/.Rprofile
setHook(packageEvent("grDevices", "onLoad"), function(...){ if(.Platform$OS.type == "windows") grDevices::windowsFonts(sans ="MS Gothic", serif="MS Mincho", mono ="FixedFont") if(capabilities("aqua")) grDevices::quartzFonts( sans =grDevices::quartzFont( c("Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic Pro W6", "Hiragino Kaku Gothic Pro W3", "Hiragino Kaku Gothic Pro W6")), serif=grDevices::quartzFont( c("Hiragino Mincho Pro W3", "Hiragino Mincho Pro W6", "Hiragino Mincho Pro W3", "Hiragino Mincho Pro W6"))) if(capabilities("X11")) grDevices::X11.options( fonts=c("-kochi-gothic-%s-%s-*-*-%d-*-*-*-*-*-*-*", "-adobe-symbol-medium-r-*-*-%d-*-*-*-*-*-*-*")) grDevices::pdf.options(family="Japan1GothicBBB") grDevices::ps.options(family="Japan1GothicBBB") } ) attach(NULL, name = "JapanEnv") assign("familyset_hook", function() { winfontdevs=c("windows","win.metafile", "png","bmp","jpeg","tiff","RStudioGD") macfontdevs=c("quartz","quartz_off_screen","RStudioGD") devname=strsplit(names(dev.cur()),":")[[1L]][1] if ((.Platform$OS.type == "windows") && (devname %in% winfontdevs)) par(family="sans") if (capabilities("aqua") && devname %in% macfontdevs) par(family="sans") }, pos="JapanEnv") setHook("plot.new", get("familyset_hook", pos="JapanEnv")) setHook("persp", get("familyset_hook", pos="JapanEnv"))
X11 の警告が出るなら、X11 の部分(19〜22行目)をコメントアウト。
参考
RStudio for MacOSX でプロットが文字化けする場合のメモ - 牌語備忘録 -pygo