僕は Dotfile で Rust と Go を自動でインストールするようにしてる(最近は devcontainer を使うこともあるけど)
Rust はこんな感じのスクリプトで最新バージョンを簡単に取ってこれる
curl --proto '=https' --tlsv1.2 -sSf "https://sh.rustup.rs" | sh
しかし、 Go の公式インストールページ にあるインストール方法は、 まず OS ごとのインストールファイルをダウンロードしてから以下のスクリプトで解凍する流れになっている。
# go version 1.20.5をインストールする場合
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz
この方法だと、手動で最新のインストールファイルをダウンロードする必要がある。
解決策
Go の公式ページには最新バージョンを教えてくれる エンドポイント の公式インストールページがあって、
この url に?m=text を渡して curl するとテキストで最新のバージョンを取得できる
curl "https://go.dev/VERSION?m=text" # >> 1.20.5 (2023年6月11日時点)
あとは、このコマンドを wget で指定した url のバージョン指定部分に埋め込んで ( Command Substitution ) インストールすれば終わり
wget "https://go.dev/dl/$(curl 'https://go.dev/VERSION?m=text').linux-amd64.tar.gz"
rm -rf /usr/local/go && tar -C /usr/local -xzf go*.linux-amd64.tar.gz