gvmでgoを導入しようとしたときに
fish shellが原因で
少しハマったのでメモ
ちなみにgvmはgoのバージョン管理ツールです。
環境
- gvm
- MAC
- go 1.9.1
- fish shell ※すでに導入済みとします
- fisherman
参考
gvmをインストール
↓が通常のインストール方法ですが、bashでないため使えません。
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
別方法があるので、この記事を参考にして進めていきます。
fishermanインストール
fish shellを使ってる方なら入ってると思いますが、未導入ならこの先必要になるので↓でインストールしてください
$ curl -Lo ~/.config/fish/functions/fisher.fish --create-dirs https://git.io/fisher
bassインストール
Fish shell環境でbashを利用するためのプラグインをインストールします
$ fisher edc/bass // bassのインストール
$ bash // bash環境に入ります
// 先程のgvmをインストールするコマンドを実行
$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
gvmのインストールが終わったら
~/.config/fish/config.fish に以下を追記します。
function gvm
bass source ~/.gvm/scripts/gvm ';' gvm $argv
end
goインストール
gvmがインストールできたので
goをインストールしていきます
// goのバージョン1.9.1をインストール
gvm install go1.9.1 -B
// goのバージョン1.9.1をデフォルトで使うように設定
gvm use go1.9.1 --default //fish shell だとここでエラー
fish shellだとdefault設定ができません。
ターミナルにログインするたびに↓のコマンドを打たなければなりません。
gvm use go1.9.1
ですので、先程編集した、~/.config/fish/config.fishに追記していきます
function gvm
bass source ~/.gvm/scripts/gvm ';' gvm $argv
end
function go # 追記
gvm use go1.9.1 ';' go $argv # 追記
end # 追記
これでターミナルにログインするたびに、↓のコマンドを叩く必要はありません
gvm use go1.9.1