まっさらなMacに開発環境を構築する(個人的な備忘録


自分が行う設定や、インストールするソフト類を記録する。
みんなもどこかしら役に立ったら、いいね👍しようね(請求)。
記事書くひとのモチベーションになる上、参考になった記事がちゃんとバズるようになるので、
いい情報を得るために積極的にいいねしよう(提案)。
こんな記事にはLGTMしなくていいから(良心)

環境

小生のメイン環境
- MacBook Pro 15-inch (Mid 2014)

システム環境設定

Dock

下にあるとスペースを無駄にしている気がするので、小生は左で自動で隠す派。周りは右に置く人が多い気がする。
そして、昔からの癖でアプリケーションフォルダがないと落ち着かない。
右クリック > 表示形式 > フォルダ で昔のようにタイル状に並ぶ。

正直、だいたい後述のAlfredで起動できるのでそれで済むが、
アプリの一覧としては、4本指でトラパをつまむと出てくるメニュー(Launchpad)よりも、これのほうが落ち着くからである。
レガシーは遺してはならないので、この時代を知らない人は、忘れよう(戒め)。

ホットコーナー

使ってる人見たことないけど、大学院の恩師から伝授されて今でも愛用している設定。
画面の四隅にカーソルを当てると、所定の動作を割り当てられる。
システム環境設定 > デスクトップと〜 > スクリーンセーバー > ホットコーナー...

以下、小生の設定例
右上: デスクトップ
(ファイル掴んで右上に当て、一旦デスクトップに置く、とかいうときに重宝)
右下: ディスプレイをスリープさせる
(ディスクまでスリープさせたりはしないので、席を立つときにディスプレイだけサッと落とせて便利)

ソフト

AppStoreで落とせるものはなるべくAppStoreのリンクを張った。
分類はなんか百貨店のフロア名みたいになってしまった。

ライフスタイル

  • Chrome
    説明不要。問答無用。小生有自信推奨此品。美味、健康。

  • Spark
    ちょっと前までAirMailのβ版を使っていたが、有料に移行したというセコい理由で乗り換え。
    HTMLメールしかなくてプレーンテキストが打てなくて困るなど。純正のメーラーでもいいかなと思い始めている。

ユーティリティ

  • Alfred
    ランチャ。これがないともうだめ。フォルダもアプリも大体ここから呼び出して済ませる。
    ちなみにこれはAppStoreにもあるが、課金して便利に使う場合は公式サイトから落とさないといけなかったはずなので、公式のURLを記載。

  • MagicPrefs
    中クリック(ミドルクリック)を、トラックパッドの3本指クリックで代用したいので、これを導入。
    主にブラウザのタブ管理するときに効率爆上げ。
    上記設定だけで、
    リンクを3本クリックすると新規タブで開く、
    タブを3本クリックで閉じる。
    とか設定できる。

ただし、このツールは相当古く、管理もされていないツールなので、
気にする方は使わないように。

  • The Unarchiver
    昔から解凍用に使っている。知らないうちにダークモード対応なんてしてた。
    もし他に良いものがあれば情報ください。

  • WinArchiver Lite
    Windowsとzipデータをやり取りするときのマナー。
    文字化けさせない、余計なファイルを固めないために、このアプリを使う。

  • f.lux
    ブルーライトヨコハマカットアプリ
    これがないとおめめがしんどい。
    これの良いところとしては、普通はON、正しい色がほしいフォトショイラレのときはOFF、みたいにアプリ毎設定ができるところ。

  • PicGIF Lite
    Gif作成ツール。
    Cmd+Shift+5 とかQuickTimeとかで録画したものをgifアニメにして貼り付ける、のが主目的。

  • Skitch
    スクショやそこいらの画像に、ちゃちゃっとキャプションつけられるもの。
    Macのプレビューでもサクッとできたりするが、こちらの方が直感的なので好き。

  • Karabiner
    キーバインドの変更ができるツール。デフォのmacならあまり要らないが、
    外付けkeyboardとかのキーバインド変更や、
    その外部キーボード接続時にmac本体のキーボードを無効にする設定など(これでHHKBとか乗っけて仕事するひとも多い)につかう

メディア系

  • MPlayerX, VLC
    動画再生はこれ2つだが、大概MPlayerXでOK。ダメならVLCで見る。
    MPlayerXは上下左右キーで1分、15秒、単位での送り戻しができるのでいい。その他も実にシンプル。
    VLCは機能豊富なので小難しいことやりたいとき用。まれにお鉢が回る。

    MPlayerXはここ数年更新されていないので、気になる方は使わないほうがいいかも。
    また、余計なソフトをインストールするようしつこく言ってくるので、間違えてインストールしないよう注意。
    ★ 2020/01/06 追記
    最近、macOSをCatalinaに上げたら、音だけ再生されて、画像は最初のフレームから動かなくなりました。
    多分設定が悪い気はする。けど使えなくなったので、メインでQuickTime、サブでVLCに変更。

  • Adobe CC
    言わずもがな。

開発環境(ほぼターミナル)

はい、ここからが本番。

Command Line Tools

ひとまずXCodeは初手でインストール。
初期で入っているコマンド類は少ないので、ひとまず諸々まとめて入れるために、これを適用。
gitを使おうとしてbashに「ないよ。」と怒られて気づいた。そりゃそうか。
大体下記を実行すれば入るかと思うが、

$ xcode-select --install

今回ちょっとできなさそうだったので、Apple Developerとかで、xcodeやosのバージョンに合うCommand Line Toolsを落として入れた。

Homebrew

パッケージツール。大体これでいれるので、上記リンクの通り、rubyのワンライナーを実行。

# 下記は記事執筆時点。上記リンク参照のこと。
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Shell

いつもzshではなくfishを使うので、以下大多数はあまり参考にならないと思う。
わからない方はfishは入れずに。どうぞ。

tmux (ターミナルマルチプレクサ)

iTermがあれば複数のプロンプトをタブ管理できるが、
Linuxを扱うときに使い慣れていたので tmux を使う。
このtmuxは仮想端末というもので、サーバーで使った場合、セッションを起動したらウィンドウを閉じても処理し続けてくれるので、すこ。

$ brew install tmux

fish shell

不親切なbashは使いたくないけど、zshをゴリゴリいじるのもつらそう。
妥協点としてfishを使っている。
tabでの補完も効くし、オプションやパスのサジェスチョンもわかりやすい。
難しいことをしないなら、とても親切なshell。

Homebrewのfishのバージョンが3に上がってた。
前は自分でビルドしていたが、brewからでいいでしょ。

$ brew install fish

fishをログインシェルに登録

fishはこの段階ではログインシェルとして登録されていないので、 chsh すると fish: non-standard shell と怒られる。

まずfishの場所を確認。

$ which fish # これの出力をメモる

エディタでもvimでも良いが /etc/shells を開いて上記コマンドで出たパスを新しい行に追記。(vimの場合 sudo で開くのをお忘れなく。)

ログインシェルを変更

$ sudo chsh -s $(which fish) ユーザ名

fisherman(プラグインマネージャ)

fishのプラグインマネージャ。
前はoh-my-fishという、zshでいうところのoh-my-zshみたいなものがあったが、最近はfisherを使っている人をよく見る。
githubから丸写し。
実際、fishのfunctionを入れているフォルダにfish scriptを入れるだけのようなので、違う場所に保存している方は読み替えて、どうぞ。

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

みため (Powerline類)

カラースキーム

最近好きで使っているJapanesqueをいれておく。Draculaみたいなカラーリングかな?
https://this.aereal.org/entry/2013/01/02/222304
上記からgithubに飛び、iterm用のJapanesque.itermcolorsをもらってくる。

tmux powerline

以下参照しながらtmuxのステータスをpowerline系にする。
https://qiita.com/yukirii/items/92c9ceedd26f168c87dc

※注意
今回、参照元どおり、pythonのパッケージマネージャである pip を使っているので、先に後述のpythonを入れておく。
なお、homebrewからのインストールでは現在(2019.09)pythonは3系が入るので、 pip3 コマンドが使える。
いちいち 3 をつけるのが面倒なら、shellの設定に以下のaliasを追加するといいかも

alias pip='pip3'

その他個人的に使うものを入れておく

$ brew install fzf go wget

wgetって標準で入ってないのね...。
以下、その他諸々作業の必要なもの

Python(3系)

pythonは書けないのだが、パッケージマネージャ pip でインストールする物があるので導入。
あと、初期でmacにはpythonが入ってるが、pipはない & 2系なので、3系を入れる。

バージョン管理ツールは...ひとまずpythonは仕事で使わないなら要らなさそうなので、ナシで。

$ brew install python

上記ではpipでインストールしたツールが使えないので、pipのPATHを通す。
(記事書いてる当初はpythonは3.7だったので、適宜読み替えていただいて)
以下はfish shellでのPATH通しなので、

fish用(~/.config/fish/config.fish)
# python pip用PATH
set PATH $HOME"/Library/Python/3.7/bin" $PATH

bashやzshの方はそれぞれのconfigに以下でPATHを通しておく。

export PATH=$PATH:$HOME/Library/Python/3.7/bin

node.js

nで管理してみる

$ brew install n
$ n -V #インストールされているかバージョン確認

ここで $ n latest を実行すると最新のnodeが入るが、sudoをつけてねと怒られるので

$ sudo n latest
globalで権限エラーを出さないように

$ npm config get prefix を叩くと、globalでインストールしたときのパスが見られるが、
このままnpmでglobalにインストールすると、write権限が無いとエラーが出る。
(一例として、 permission denied, access '/usr/local/lib/node_modules/' など)
ので、そのディレクトリの所有者を chown して、普段のユーザーに変える。
ついでにbinとshareも chown しているので、要らない方は適宜とるようにどうぞ。

# 以下、fish shell向け。bashなどPOSIX互換shellは、$(whoami)とする
$ sudo chown -R (whoami) (npm config get prefix)/{lib/node_modules,bin,share}

neovim

エディタはvimでも良いのだが、neovimを使っているため、別途いれる

$ brew install neovim

設定ファイルはdotfilesがあるので、プラグイン管理のdein.vimを入れて起動すればおわり。
下記はgithubで書かれているインストール手順。
一応、 ~/.cache/dein にインストールするのがおすすめのようで、特にこだわりがないのでその通り入れる。

$ curl https://raw.githubusercontent.com/Shougo/dein.vim/master/bin/installer.sh > installer.sh
$ sh ./installer.sh ~/.cache/dein

あとは、ここをコピペしてね〜という文章が出てくるので、 init.vim に追記する。
私の場合はdotfilesに追記済みなので、これで終了。

dotfilesを参考にされたい奇特な方はこちらをどうぞ

docker

Docker Desktopのインストールをしておく。
Docker Desktopの初回起動時にdocker系のコマンドが入るので、使えるか確認。

$ docker --version
$ docker-compose --version
$ docker-machine --version

それぞれバージョンが表示されればOK

Amethyst(ウィンドウマネージャ)

Linuxでいうawesomeみたいなウィンドウマネージャ。

$ brew cask install amethyst

brew cask って初めて使った。GUIアプリをコマンドラインからインストールできるらしい。
夢が広がってないか?

今後の展望

こうやって書き残すのはいいが、そのうちshell scriptにでもして、環境構築を自動化できるところはしていきたい。