いろいろ備忘録日記

主に .NET とか Go とか Flutter とか Python絡みのメモを公開しています。

Goメモ-331 (go install したものを最新にする)

関連記事

Goメモ-107 (go getで参照しているパッケージを一括更新) - いろいろ備忘録日記

GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ

概要

以下、自分用のメモです。忘れないうちにメモメモ。。。

個人的に、以下のTaskというツールをよく使っていまして

taskfile.dev

Goで作られたツールなので、いつも go install で入れてます。

で、アップデートするためには、再度 go install する必要があるのですが、パッケージ名とかを覚えているわけないので、毎回上のサイトいってコマンドラインをコピーして使っていました。

いちいち、それも面倒なので一発でできないかなーって情報探していたら、参考情報の記事に到着。なるほど、go version -m で調べれば分かるんですね。

下記の参考情報の記事の方は、$(go env GOPATH)/bin 全部を一括でアップデートする方法を記載されています。

私の場合は、特定のツールで良いので以下のようにして使っています。

$ go version -m $(command -v アップデートしたいやつ) | grep -F 'path' | xargs echo | cut -d ' ' -f 2 | xargs -i -t go install $(printf "%s@latest\n" {})

途中の xargs echo は、連続する空白を除去したいためです。

試してみる

今のTaskのバージョンを表示してみます。

$ task --version
Task version: v3.26.0 (h1:NfYktTh/XXJUFtUFdle+BZFtvGlmhk4Q7YfoeOBLPlE=)

v3.26.0 ですね。最新版は、v3.27.1 です。

んで、おもむろに上記のコマンドを実行

$ go version -m $(command -v task) | grep -F 'path' | xargs echo | cut -d ' ' -f 2 | xargs -i -t go install $(printf "%s@latest\n" {})
go install github.com/go-task/task/v3/cmd/task@latest

$ task --version
Task version: v3.27.1 (h1:cftsoOqUo7/pCdtO7fDa4HreXKDvbrRhfhhha8bH9xc=)

おけ。ちゃんと最新版になりましたね。

参考情報

zenn.dev

勉強になりました。ありがとうございます。m( )m

Goのおすすめ書籍

Go言語による並行処理

Go言語による並行処理

Amazon


過去の記事については、以下のページからご参照下さい。

サンプルコードは、以下の場所で公開しています。