Goの特定のバージョンをインストールして切り替えるシェルスクリプト
概要
が、この手の類のツールのセットアップがだるい時はこれで済ませてる
やること
以下のシェルスクリプトをinstall_go.shとして保存する
code:install_go.sh
set -eu
if $# -lt 1 ; then
echo "ERR 第一引数(バージョン)は必須です" >&2 exit 1
fi
readonly GO_VERSION="$1"
readonly GO_CMD="go${GO_VERSION}"
go get "golang.org/dl/${GO_CMD}"
${GO_CMD} download
${GO_CMD} version
ln -sfn "$HOME/go/bin/${GO_CMD}" "$HOME/go/bin/go"
echo "INFO 新バージョン(${GO_VERSION})のインストールは正常に終了しました" go version
以下のように呼び出すだけ
code:sh
install_go.sh 1.17
やってることは単純で、$HOME/go/bin/go1.17のシンボリックリンクを$HOME/go/bin/goとして作ってるだけ
当然$HOME/go/bin(いわゆる$GOBIN)にたいしてPATHが通ってないとダメ
いわゆるグローバルインストールを期待してるので、go.mod管理化で実行してはいけない