【Mac】言語パッケージ管理用にasdfを導入する(fish環境)


■環境

macOS Sierra 10.12.6
fish 2.5.0


■手順

Brewでもインストールできるらしいが、公式ページの手順に従った方が良さそう。
公式ページ:https://github.com/asdf-vm/asdf

まず、asdfをgithubからクローンし、fishのコンフィグに追加する。

$ git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.3.0  
$ echo 'source ~/.asdf/asdf.fish' >> ~/.config/fish/config.fish  
$ mkdir -p ~/.config/fish/completions; and cp ~/.asdf/completions/asdf.fish ~/.config/fish/completions  

asdfで必要になるアプリケーションをbrewでインストールしておく。
下記はだいたい公式サイトで記載されているもの。

$ brew install coreutils automake autoconf openssl libyaml readline libxslt libtool unixodbc  

また、言語別で必要になるアプリケーションもある。
詳細は言語別のgithubページを参照
https://github.com/asdf-vm/asdf-plugins

【メモ】
icu4cは2017年10月現在、最新バージョンを入れてしまうとPHPビルドできなくなってしまうので、旧バージョンをインストールした方が良いらしい
参考:https://github.com/phpbrew/phpbrew/issues/899

asdfで管理対象の言語を追加する。

$ asdf plugin-add {任意の名前} {githubリポジトリ}  
===== (例) asdf plugin-add go https://github.com/kennyp/asdf-golang  

上記で設定するリポジトリは以下を参照
https://github.com/asdf-vm/asdf-plugins
もしここでエラーが出てしまった場合は必要なアプリケーションが入っていない可能性があるので、
エラー文言を参考にbrewインストールしておく。

インストールできるバージョン一覧を見る。

$ asdf list-all {さきほどの名前}  
===== (例) asdf list-all go  

上記で確認したバージョンの中から希望のバージョンをインストールし、
利用できるように設定する。

$ asdf install {さきほどの名前} {バージョン}  
===== (例) asdf install go 1.8.4  
$ asdf global {さきほどの名前} {バージョン}  
===== (例) asdf global go 1.8.4  

以上で設定完了です。

その他コマンドは公式ページを参照。チートシートがいらないくらいまとまってます。
https://github.com/asdf-vm/asdf