はじめに
先日Macbook Proを新しく買ったので、環境構築について自分なりにまとめてみました。
後々の自分や、似た方々のためのHow To記事ぐらいにするつもりだったのですが作業量が多かったので途中からただのメモ書きになっており、後半読みにくくなっているのは予めご理解ください。
また自分がもろもろ手を出しがちな人なので、人によってはこの通りにすると余計なものがたくさん入ってしまうということがあります。これに沿って環境構築をしたいという方はそちらも念頭において使用してください。
環境構築
購入したもの
- Macbook Pro 15inch 2017 フル積み
- 英字キーボード、Touch Bar
手順
1. GUIソフトのインストールその1
以下のあたりをとりあえず入れていく
- Xcode
- 再起動するフェイズが入る、多分ここはバージョンとか時期によりそう
- GitHubとデベロッパーアカウントにはログインしておくとよい。
- Chrome
- 起動してデフォルトのブラウザに
- ログインして設定は引き継ぐ
- Google日本語入力
- 入れた後、デフォルトの日本語を削除
- Karabiner Elements
- 設定画面を開きANSIを選択
- Simple Modificationsにcaps_lock -> left_controlを設定
- Complex Modificationsのimport more rules from internetからfor japanese (rev. xxx)を探してimport
- 「コマンドキーを単体でおした時〜」をEnableに
- Karabiner-Elements - 左右commandキー単独をかな英数キーにGUIで設定できるようになってた! - ngzmのブログ
- iTerm2
- オフィス関連などApple純正アプリ
- 実はAppStoreの購入済みの画面にいって「受け取る」をクリックする必要があるみたい
これで設定がしやすくなる。IMEまわりは標準の日本語入力は使いにくいのと、英字キーボードのため。
2. コマンドラインの設定以外を整えていく
設定はこだわりたいので後回しで、ひとまず入れていく。こっちはそこそこ手順が決まる
2-1. Homebrewとzshの投入
- homebrewをまず検索してホームページからインストールスクリプトをコピー&実行
-
brew install zsh
を実行。もともと入ってるそうだけどbrewで管理するとアップデートができるのでこちらにしてみる。 - zshをプライマリにしたいのでシステム環境設定のユーザーとグループからユーザーを右クリックして詳細オプションを表示。ログインシェルを
/usr/local/bin/zsh
にする。 - 【Mac】ログインシェルの変更方法について (chsh, chpass) - TASK NOTES
- brew caskを使うため
brew tap caskroom/cask
もついでにしておく
これがベースになる。Preztoなども設定したいがそれは設定フェイズにまわして次に進んだ。
2-2. 各種プログラミング言語の環境をセットアップしていく
新Macbook環境構築計画&メモ一覧 · GitHubにまとめているリンクを参考に主要言語のパッケージマネージャ的なものたちを入れた。
ひとまず2018年時点でPython,Ruby,Haskell,OCaml,Goを使う場合は以下のコマンドを叩く。
brew install python python3 rbenv ruby-build haskell-stack opam go
Rustに関してはrustp
というのを入れるといいらしいのでそのために以下を実行する(面倒ならbrewでもよさそう)
curl https://sh.rustup.rs -sSf | sh
こちらはRust の初期環境構築 【2017年版】 - A Memorandumを見ながらやるとよさそう。
TeXに関してはbrew install ghostscript
とbrew cask install mactex
を実行する。そして最後にsudo tlmgr update --self --all
でオーケー。
(2018/04/18 更新)上の方法だと日本語が入っていなかったり確かにGUI使わないんだよなぁという気分になったのでここを参考にするように変更した。
日本語も使う場合はこの記事がよい
(2018/04/30 更新)basictexがアップデートされるとそのたびにパッケージが更新されてしまうらしい(?)
なので、TeXのアップデートが走ったら
sudo tlmgr update --self --all
sudo tlmgr install uplatex latexmk collection-langjapanese latexindent
を行う。ちなみにlatexindent
はPerlのライブラリへの依存が高く、しかも普通のCPANでは解決できないので
brew install cpanm
をしてsudo cpanm Hoge::Hoge
を必要なものに対して行わなければならない。そこらへんの詳しい必要なものはlatexindentのリポジトリに記載されている。
(2018/05/15 更新)LaTeXのバージョンが上がると時々latexmk向けの環境が壊れる場合がある(フォーマットファイルとかが古いバージョンのまま更新されてくれない)
その場合は環境の設定にもよるが、以下のコマンドを実行する
fmtutil-user --all
ここまでできたら、各環境をより細かく入れていきたいので編集用にまずbrew install vim --with-lua
でvimを一旦導入。一旦というのはカスタマイズに応じてもう少しオプションが必要な可能性もあるから。
そして.zshrcをいじりたいのでこの時点でPreztoを設定してしまうことにした。コマンド的には以下
$ git clone --recursive https://github.com/sorin-ionescu/prezto.git "${ZDOTDIR:-$HOME}/.zprezto"
$ setopt EXTENDED_GLOB
for rcfile in "${ZDOTDIR:-$HOME}"/.zprezto/runcoms/^README.md(.N); do
ln -s "$rcfile" "${ZDOTDIR:-$HOME}/.${rcfile:t}"
done
これは基本的にzpreztoのREADMEからとってくればいいが、lnを走らせる時すでに.zshrcなどがあるとpreztoが自動生成してくれる.zshrcを使えないので一回削除してから入れると便利
そうしたらパスを順次追加していく。zshだとパスは以下のように.zshrcに追加していくと便利。GOPATHはこれからGoを始める人のためのTips集 | The Wacul Blogの通りにすると後々いいらしい。
export GOPATH=$HOME/.go/lib:$HOME/.go/projects
path=(
$HOME/.rbenv/bin(N-)
$HOME/.cargo/bin(N-)
$HOME/.go/lib/bin(N-)
$HOME/.go/projects/bin(N-)
$path
)
他にはPythonの環境として、2系はvirtualenvが別途必要になるのでpip install virtualenv
だけ走らせた。
またHaskellはstackのみ入れたのでstack setup
で必要なものをいれてあげる。
OCamlに関してはbrew install hg darcs
をやった後にopam init
を実行してあげる。ここでopamは勝手にzshrc
に追記してくれる。その後
eval `opam config env`
する。
あとは追加でbrew install rlwrap
してOCamlのエイリアスを貼っておくと使いにくいインタプリタが使いやすくなる。
OCamlの環境構築[Mac OS X] - Qiitaに基本従って最後まで設定しきった。
(追記:2018/03/11)
gccがMacはclangのエイリアスになってしまっているので、bits/stdc++.hなどが使えない。
その為brewでgccを入れ直すとよく、今現在brewで入れられる最新バージョンbrew install gcc6
をする。macにgcc5.3をインストール - Qiitaを参考にした。
最後、シンボリックリンクをつけてあげるが。現在は以下。
ln -s /usr/local/bin/gcc-6 /usr/local/bin/gcc
ln -s /usr/local/bin/g++-6 /usr/local/bin/g++
ただ、これでもまだgccはclangエイリアスのままになってしまう。パスを入れ替えても効きそうにない上、全体で優先順位が変わってしまうとXcodeでCを使うときが怖い気がしたのでzsh上のエイリアスにすることにした。つまり.zshrcに以下を追記した。
alias gcc='/usr/local/bin/gcc'
alias g++='/usr/local/bin/g++'
もちろんもとからこれをするというならシンボリックリンクの過程はいらないかも。
(2018/05/15 追記)
最初からそもそも
alias gcc='/usr/local/bin/gcc-8'
alias g++='/usr/local/bin/g++-8'
とやるほうがバージョンが変わったときに気づきやすくてよい。
3. もろもろインストール祭り
ちょっと複雑なフェイズが終わったのでCUI/GUIともにもろもろを入れていく。多分順番をつけるのが面倒になっただけ。
- GUI
- virtualbox, FileZilla ... ここらへんはCaskでインストール管理ができる。なので
brew cask install virtualbox filezilla
とする。VirtualBoxは途中で設定のセキュリティとプライバシーに出てくる許可ボタンを押してやらなきゃならないから、コマンド実行してからまた再度実行しなおすみたいなフローが発生した。 - Android Studio ... かなり便利になったのでダウンロードした後は起動して進めていけばいいっぽい。最後に設定からGitHubにだけログインした。
- Unity ... VSCodeが使えるのでMonoDevelopを外して代わりにAndroidとiOS、WebGLのサポートを追加した
- さらにVSCodeでIDE的機能を使うためには
brew cask install dotnet
、brew install mono
を入れておく必要がある
- さらにVSCodeでIDE的機能を使うためには
- Processing ... 入れるだけ
- Sketch.app ... 少しライセンスの移動などを考えれば良い。
- Atom, VSCode, Franz, Mendeley, Boostnote、Abstract, AppCleaner ... ノー思考
- Evernote, Affinity, One Drive, Memory Cleaner, Alfred, Disk Diag, Display Menu, LadioCast ... ここらへんは本当にAppStoreから入れるだけなのでもっとノー思考
- Zeplin ... 一旦ログインしてから浮き輪をクリックするとダウンロードする場所へのリンクがある
- Maya ... ライセンスを持っている場合、ログインするとダウンロードできる
- Adobe ... とりあえずライセンスを購入するまではCleative Cloudのマネージャーだけ入れておく
- virtualbox, FileZilla ... ここらへんはCaskでインストール管理ができる。なので
- CUI
- Pod ...
sudo gem install cocoapods
- Carthage ...
brew install carthage
。最初実行するとxcodebuildのパスがうまく設定できてなくてsudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
とすることで治った。 - carthage-input-files ... GitHub - ken0nek/CarthageInputFiles: You don't have to type framework paths each time when using Carthageを見る。これはCarthageを便利に使うため。インストールにswift package managerを利用しているため、インストールする前にXcodeを一度開いてコマンドラインツールなどが使える状態にしておく必要がある。また一度デバッグしないとデベロッパー使用の許可のポップアップが出てこないので何かしらをビルドして許可することでインストールできる状態になる。
- SwiftLint ...
brew install swiftlint
- brew rmtree ...
brew tap beeftornado/rmtree
。これはBrewの依存関係をうまく扱いつつ整理できる便利ツール。 - brew-file ...
brew install rcmdnk/file/brew-file
としてその後.zshrcに以下を追記する。
if [ -f $(brew --prefix)/etc/brew-wrap ];then source $(brew --prefix)/etc/brew-wrap fi
- nodebrew ...
brew install nodebrew
- node.js ...
nodebrew install-binary latest
をする。買いたてのMacにNode.jsとnpmをインストール - Qiitaここを見ればわりと安心。 - Commitizen by commitizen ... なんで急にnodeを入れだしたかというとこれのため。意外と使えるgitのツール
- tig, gibo...gitのブランチをコマンドライン上で見れるtigとgitignore生成のgiboはどっちもbrewで入れられるので
brew install tig gibo
で。 - hub ... GitHubにリポジトリを作成できるhubもbrewで入れる
- Docker ... Docker for Macがあるので
brew install docker
とbrew cask install docker
を両方実行する - deploygate ...
sudo gem install deploygate --no-document
- clang-format ...
brew install clang-format
で。C/C++のコード整形を行うため。 - lolcat ...
brew install lolcat
で。ただただ楽しいやつ。 - swiftenv ... 基本ここを見る。他のバージョンも入れたくなった事態が発生したため。
- OpenMPI ... ここを参考に。ただ、Brewだとなにやらうまくいかなかったので手動makeのほうをおこなった。
- Pod ...
インストールしたものは立ち上げていってログイン処理などを行った。特にWebからのは一度許可を出さなければなので開いておくとよいかも。
Franzはログインするとタブは復元してくれるが、中身のログイン情報は引き継いでくれないのでそこもコツコツとする。
4. 設定祭り
ここまででかなり環境として整ってきた。ライセンスなどは一応やるだけなのでまた厄介な設定に入っていく。
まずPowerlineが好きなのでそれのセットアップをする。Zsh+Preztoを設定し、powerline対応のthemeを設定する - Tbpgr Blogにやり方は載っているのでこれをそのままやっていく。最後にバージョン依存らしきコピーコマンドを実行しているが、これは代わりにインストール後これを実行してねとメッセージがでてくるのでそれをコピーして実行すればいい。
zprezto側は.zpreztorcで設定する。これはもともとsorinというテーマになっているのでこれで検索してあげて、themeっていういかにもそれらしき所のsorinをpowerlineに書き換えてやればいい。
ついでにここで必要な設定をコメントアウトしてあげるとzshがより便利に使える。
特にmoduleは便利でPreztoでzshをいい感じに使う - スプーキーズのちょっとTech。にあるように自分の好きなものをとりあえず有効にしておけば後々感動することになるかもしれない。
GitHubとパソコンのSSHの紐付けはすごく簡単になっていて、XcodeでGitHubアカウントにログインすると紐付けする方法がHTTPかSSHか選べて、そこでSSHを選択するとなんとGUI上で鍵を生成することができてしまう。元々GitHubとのヒモ付のためのSSH Keyなのでこれを設定しておけばターミナル上のgitでもGitHubとつながっているということになる。
ただ、別にこれでgit全体の設定が終わったということではないらしく、Gitをインストールしたら真っ先にやっておくべき初期設定 - Qiitaはやっておく必要があった。
色味も設定してあげたいが、Railscastsがなんとなく好きなので、それを使用していく。まずiTerm2用にGitHub - therealechan/railscasts-iterm2: railscasts color for iterm2があるのでダウンロードしてきてプロファイルのカラー設定からインポートし設定する。
GitHub - mbadolato/iTerm2-Color-Schemesでまとめてダウンロードしてきて好きなものを設定するでもいいと思う。
XcodeにもGitHub - skywinder/xcode-themes: Color themes for Xcodeのようなリポジトリがある。こちらの追加はちょっとだけ面倒で自分でフォルダをつくり、そこにコピーしてやらなければならない。ここらへんのやり方はリポジトリのREADMEの一番下を見てやればいい。
ちょっと脇道にそれてiTunesについて、CDで入れた曲がいっぱいあったのでそれを入れたかったけど、Automaticary Add to iTunesっていうそれっぽいフォルダに入れると日本語がことごとく文字化けしていく(英語設定にしてたからかも)
なのでこの場合はMusicというフォルダを自分でつくってしまい直接放り込むほうがよさそう。それが一番はやい。
またカラーパレットとしてはSome color pallets with Apple Color List (.clr) format · GitHubを導入しておくと一気にいろんな色がいろんなアプリケーションで使えるようになっていい。
Unityに関して、エディタをVSCodeにする場合C#のプラグインには.NET and C# - Get Started in 10 Minutesが必要になる。
5. 最大の難関vim
まずひとまずdeinを入れる。これはREADMEに従えば大丈夫。
そしてプラグインの管理はdein.vimでプラグイン管理のはじめ方 - Qiitaなどを参考にtomlファイルに外出しするとよい。
プラグインとしてはまず見た目まわりとしてnerdtree,devicon,railscats theme,airlineなどを入れた。Airlineに関してはvim-airlineを入れる - Qiitaとかマイvim設定を修正(vim-airlineで格好いいvimライフ) - Qiitaを見るといいかも。
そして.vimrcはdotfiles/.vimrc at master · touyou/dotfiles · GitHubのようになった。もともと使ってたやつを整理しつつバグを目でつぶした感じ。
$MY_VIMRUNTIME
やfileTypeIndent
あたりは便利。
6. なんだかいろいろやったけど...
ひとまずはGitHub - touyou/dotfilesを更新したのでこちらに大体はのっている。zpreztoの管理だけ面倒だったが、forkしてoriginとは別にtouyouという名前でリモートリポジトリを登録し、コミット&プッシュした状態をsubmodule化することで解決した。