Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save okunokentaro/2087b18c2644f83b46ce9b7f93ecee64 to your computer and use it in GitHub Desktop.
Save okunokentaro/2087b18c2644f83b46ce9b7f93ecee64 to your computer and use it in GitHub Desktop.
俺流MacBook Proインストールまとめ
2015/05/28 にQiitaに投稿した記事のアーカイブです
---
@armorik83です。新MacBook Pro 15"が発売され、長らくの相棒MacBook Proも6年選手だったため、めでたく引退となった。今日は個人の日記レベルで新しいMacをセットアップしていく。
OSを丸ごと再インストールする機会自体あまりないが、私は儀式的にOS Xをアップグレードする度にクリーン・インストールする癖があり、次の機会に備えてメモを残す。(未だにクリーン・インストール儀式を執り行うが、周りはどうなんだろう)
# 購入時点の環境
2015年5月28日、開封直後の状態。
- MacBook Pro 15" Mid 2015
- 2.8GHz Core i7
- 16GB DDR3
- 500GB Storage
# 電源投入
- `cmd-R`を押しっぱなし
- Disk Utilityでプリインストールを削除
- Yosemite再インストール(要Wifi)
# 確認
「Yosemite 10.10.3だとこうなってるのかーなるほどー」などと言いながら。
```
bash --version
# 3.2.57
ruby -v
# 2.0.0p481
python -V
# 2.7.6
php -v
# 5.5.20
node -v
# node: command not found そりゃそうだ
git --version
# この辺からXcodeを求められる
```
## Xcode必須
`command line developer tools`の兼ね合いでOS X, iOSエンジニアでなくともXcodeは必須。App Storeからサクっと落とす。これがまた長い。待ってる間に他の作業を進める。
# Dropbox
色々自動化したいところだが、この記事を旧Macで書いている都合でデータのやりとりが必要だったので、Dropboxは手動インストールで妥協した。2段階認証の端末が手元にないと詰む。
# システム環境設定
**Mission Control**
- Mission Control: F12
- Application windows: F13
- Show Desktop: F11
- Show Dashboard: -
手癖。
**Keyboard**
- Use all F1, F2…
- ControlとCaps lockを入れ替え
- Show Spotlight searchのショートカットを`ctrl-A`に
US配列なのでControlをAの左隣に入れ替える。これも手癖。
**Trackpad**
追加でONにするもの。
- Tap to click
3本指ドラッグが無いじゃないか! と憤慨しかけたが、ちゃんと機能自体は残っていた。
## Yosemiteでの3本指ドラッグ
ここにあった、よかった。
![Shot](https://qiita-image-store.s3.amazonaws.com/0/17959/6e1785eb-985c-30d6-d8e7-5d0e8c003a8a.png)
![Screen Shot 2015-05-28 at 2.00.20 PM.png](https://qiita-image-store.s3.amazonaws.com/0/17959/da7024d4-448d-8ff7-8236-bce2a6324774.png)
# Xcode command line developer tools
## 認証
Xcodeのインストールが終わったので続き。Xcodeのライセンス認証はTerminalで。
```
sudo xcodebuild -license
```
```
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]
```
何度か`space`連打して、これが表示されたら`agree`と入力。
## command line developer tools
```
xcode-select --install
```
command line developer toolsをインストール、しばし待つ。インストールが完了したら確認。
```
git --version
# 2.3.2
```
# Homebrew
Homebrewを入れる。コマンドはおなじみのやつ。
```
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew -v
# Homebrew 0.9.5
```
```
brew doctor
brew update
```
`doctor`, `update`は慣習だが、真っさらなので何も起こらなかった(珍しい)。
# Ansible
今回、@t_wada氏の『[Mac の開発環境構築を自動化する (2015 年初旬編)](http://t-wada.hatenablog.jp/entry/mac-provisioning-by-ansible)』を実践すべくこの記事を書いているため、Ansibleに初挑戦する。
```
brew install ansible
ansible --version
# ansible 1.9.1
```
# 自動化開始
元の記事に従ってプロビジョニング用のディレクトリを作る。
```
mkdir .mac-provisioning; cd $_
```
## inventoryファイル作成
ansible用のinventoryファイル(実行対象ホスト指定ファイル)を作る。この辺も元の記事に従う。
```
echo 'localhost' > hosts
```
## playbookファイル作成
次にplaybook(プロビジョニングの内容)を書く…って、ずっと元記事をなぞってますよ。これは面倒だったので旧Macの方で作成。
```yaml:localhost.yml
- hosts: localhost
connection: local
gather_facts: no
sudo: no
vars:
homebrew_taps:
- caskroom/cask
homebrew_packages:
- { name: nodebrew }
- { name: ansible }
- { name: git }
- { name: zsh, install_options: disable-etcdir }
- { name: wget }
- { name: curl }
- { name: tree }
- { name: phantomjs }
homebrew_cask_packages:
- { name: 0xed }
- { name: mongochef }
- { name: atom }
- { name: clamxav }
- { name: cleanarchiver }
- { name: cyberduck }
- { name: daisydisk }
- { name: easyfind }
- { name: firefox }
- { name: flux }
- { name: google-chrome }
- { name: google-japanese-ime }
- { name: imageoptim }
- { name: iterm2 }
- { name: kobito }
- { name: skim }
- { name: skype }
- { name: slack }
- { name: teamviewer }
- { name: timemachineeditor }
- { name: vagrant }
- { name: virtualbox }
tasks:
- name: add tap repos
homebrew_tap: tap={{ item }} state=present
with_items: homebrew_taps
- name: update homebrew
homebrew: update_homebrew=yes
# brew
- name: install brew packages
homebrew: >
name={{ item.name }}
state={{ item.state | default('latest') }}
install_options={{
item.install_options | default() | join(',')
if item.install_options is not string
else item.install_options
}}
with_items: homebrew_packages
register: brew_result
- name: make package info dir
file: path=brew_info state=directory
- name: save package info
shell: brew info {{ item }} > brew_info/{{ item }}
with_items: brew_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list
# cask
- name: install homebrew-cask
homebrew: name=brew-cask state=latest
- name: install packages
homebrew_cask: name={{ item.name }} state={{ item.state|default('installed') }}
with_items: homebrew_cask_packages
register: cask_result
- name: make package info dir
file: path=cask_info state=directory
- name: save package info
shell: brew cask info {{ item }} > cask_info/{{ item }}
with_items: cask_result.results | selectattr('changed') | map(attribute='item') | map(attribute='name') | list
# oh-my-zsh
- name: install oh-my-zsh
shell: curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
args:
creates: ~/.oh-my-zsh/
handlers:
- name: run fc-cache
shell: fc-cache -vf
```
GUI依存率高し、黒い画面に詳しくないのでこんな量。オススメがあったら教えてください。
## 実行
```
HOMEBREW_CASK_OPTS="--appdir=/Applications" ansible-playbook -i hosts -vv localhost.yml
```
あとは:coffee:しながら眺める。`HOMEBREW_CASK_OPTS`は入れたほうがいいみたいだ。Caskのインストール先が`~/Applications`にならないようにするため。
## いくつかコケてた
Caskでコケてるのがあった。もう今回は原因追求せず手動で入れることにした。
# nodebrew
フロントエンドで`node`必須なので。Node.js, io,jsのバージョン管理は[nodebrew](https://github.com/hokaccha/nodebrew)で行う。
```
nodebrew ls-remote
# 最新版のバージョンを確認
nodebrew install-binary v0.12.4
nodebrew install-binary io@v2.1.0
nodebrew use io@v2.1.0
node -v
# v2.1.0
# パスは通っている前提
```
## npm i -g
```
npm i -g npm
npm i -g babel browserify mocha fixpack
```
`npm i -g`は、あまり入れない。
# 残りは手作業
あとはどうしても手作業的な部分があるので、それはチマチマと。今回の自動化も詳しく分かっていないまま試みているので詰めが甘いかもしれない。
しかしこれは早い、Homebrew Caskは是非ともオススメしたい。かつては各種サイトからインストーラをダウンロードして個別に展開していたので隔世の感がある。
---
こういったプロビジョニングを見直し育てることもまた楽しみのひとつだ。あとはこの新しい相棒と共に励み、戦い、稼ぐだけである。以上。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment