fish shell + anyenvというパターンでのGoの環境構築の記事がなかったので、備忘録としてまとめます。
実行バージョン
fish 3.0.2
anyenv 1.1.1
anyenvでのgoenvのインストールと設定
まずanyenvでGoのバージョン管理システムのgoenvをインストールします。
$ anyenv instal goenv
そして、goenv用の環境変数やaliasの設定をfish shellの設定ファイル~/.config/fish/config.fish
に追記します。この部分がzshやbashとは違うので注意です。
set -x GOENV_ROOT "$HOME/.anyenv/envs/goenv"
set -x PATH $PATH "$GOENV_ROOT/bin"
set -gx PATH "$GOENV_ROOT/shims" $PATH
set -gx GOENV_SHELL fish
source "$GOENV_ROOT/libexec/../completions/goenv.fish"
command goenv rehash 2>/dev/null
function goenv
set command $argv[1]
set -e argv[1]
switch "$command"
case rehash shell
source (goenv "sh-$command" $argv|psub)
case '*'
command goenv "$command" $argv
end
end
これで準備は出来たのでfish shellを再起動して、goの指定バージョンをインストールしましょう。
# インストール可能なバージョンを取得
$ goenv install --list
# 指定バージョンのインストール
$ goenv install 1.14.3
# デフォルト利用バージョンを指定
$ goenv global 1.14.3
一応go env
で環境変数を出力して各種設定が正しく出来ていることを確認しましょう。
$ go env
無事出力されれば完了です。
VSCodeでの設定
VSCodeでのGoを開発する場合は以下エクステンションをインストールします。
anyenv利用の場合は環境変数が通常と異なり、このままでは動作しないのでVSCodeのsetting.json
に以下を追記します。
go.gopath
はgo env | grep GOPATH
の値、
go.goroot
はgo env | grep GOPATH
の値です。
"go.gopath": "/Users/<ユーザー名>/go/<Goバージョン名>",
"go.goroot": "/Users/<ユーザー名>/.anyenv/envs/goenv/versions/<Goバージョン名>"
最後go関連の各種ツールをインストールします。
補完やデバッグ関連に必要です。
command + shift + p
でコントロールパネルを開き、Go: Install/Update tools
を選択します。
ダイアログが開くので全てチェックを入れてOKでインストールが始まります。
VSCodeでのGo開発環境構築も完了です。
参考