Created
March 25, 2020 16:44
-
-
Save okunokentaro/2087b18c2644f83b46ce9b7f93ecee64 to your computer and use it in GitHub Desktop.
俺流MacBook Proインストールまとめ
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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