1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Golang】Go の最新リリース・バージョンの確認・取得【cURL】

Last updated at Posted at 2024-06-26

Go 言語(以下 golang)の最新リリース・バージョンを取得するエンドポイントが知りたい。

golang 本体の更新をパッケージマネージャでなく俺様スクリプトで行っているため、バージョン情報を cURL などで取得できるエンドポイントが欲しかったのです。

ぶっちゃけ https://go.dev/dl/ を覗きに行けばいいのですが、スクレイピングするのも面倒です。

golang 最新リリースバージョン 確認 curl でググっても、スクレイピングしろだの、https://go.dev/VERSION?m=text を使った方法だの、ピンポイントでヒットしなかったので、自分のググラビリティとして。

TL; DR (今北産業)

  1. Go の最新リリース・バージョン確認用 URL エンドポイントが提供されている

    • https://go.dev/dl/?mode=json

  2. レスポンスは JSON なので jq コマンドなどで抜き出す必要がある

    最初のstableバージョンを抜き出す
    LATEST=$(curl -sSL https://go.dev/dl/?mode=json | jq -r ['.[] | select(.stable == true)'][0].version)
    
    実行例
    $ curl -sSL https://go.dev/dl/?mode=json | jq -r ['.[] | select(.stable == true)'][0].version
    go1.22.4
    
  3. よく見かける https://go.dev/VERSION?m=text は、https://go.dev/ のバックエンドで動いている golang のバージョン1で、最新と異なることがある

ちなみに、最新ではないものの go.dev のドキュメントで生成されるサンプルの動作と合わせたい場合は、https://go.dev/VERSION?m=text の最初の行だけを取り出すと、バージョンを合わせられます。

go.devのgoバージョンを取得
CURRENT=$(curl -s https://go.dev/VERSION?m=text | head -n 1)
実行例
$ curl -s https://go.dev/VERSION?m=text | head -n 1
go1.22.1

参考文献

  1. https://github.com/golang/go/issues/51135#issuecomment-1035545489

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?