Mac
fish
GVM
fisherman
fish-shell
More than 1 year has passed since last update.

gvmでgoを導入しようとしたときに
fish shellが原因で
少しハマったのでメモ

ちなみにgvmはgoのバージョン管理ツールです。

環境

参考

Fish shell環境でgvmを導入する

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