ターミナルがダサいとモテない。gobrewからgvmに変えたの巻

Photo by Maarten Scheel on Unsplash
Changed the Go version manager from gobrew to gvm.
恵比寿でIT企業をやっているとモテると聞いて創業しましたが早いことありがたいことに10年目に突入した長谷川です。
まだモテる成果は出ていません、、、これからです!(もうめんどくさいのでカウントやめました😆)
gobrewを使ってましたが、コンパイルエラーが出てどうにもこうにも辛いのでgvmに変えました😂
gobrewの記事は以下
ターミナルがダサいとモテない。gobrewでgoのversion管理。goenvを廃止するぞ編
goenvをやめたい。anyenv依存をやめたい。
medium.com
gvmはこちら
GitHub - moovweb/gvm: Go Version Manager
Go Version Manager. Contribute to moovweb/gvm development by creating an account on GitHub.
github.com
Requirementでbisonが必要みたいです。
GitHub - moovweb/gvm: Go Version Manager
Go Version Manager. Contribute to moovweb/gvm development by creating an account on GitHub.
github.com
ここでも紹介があるようにbisonをInstallしてください。
sudo apt-get install bisonmacOSでもbrewにあります。
brew search bison
brew install bisonで早速、Installなのですがめっちゃ簡単です。
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)これで入ります。
ただし読み込まれていないため以下を実行します。
source ${HOME}/.gvm/scripts/gvmこちらは.bashrc/.zshrcなどShellに組み込んでおいた方が良いです。
Usage
まずは実行してみます。
> gvm
Usage: gvm [command]
Description:
GVM is the Go Version Manager
Commands:
version - print the gvm version number
get - gets the latest code (for debugging)
use - select a go version to use (--default to set permanently)
diff - view changes to Go root
help - display this usage text
implode - completely remove gvm
install - install go versions
uninstall - uninstall go versions
cross - install go cross compilers
linkthis - link this directory into GOPATH
list - list installed go versions
listall - list available versions
alias - manage go version aliases
pkgset - manage go packages sets
pkgenv - edit the environment for a package set
applymod - apply the go version in go.modgvm listall
listallでAvailableなgo versionの一覧を出力できます。
gvm listall
~~ 省略 ~~
go1.23.2
go1.23.3
go1.23.4
go1.24rc1
release.r56
release.r57
release.r58
~~ 省略 ~~こんな感じで最新板が取れるかと・・・
gvm listall | sed -e 's/^ *//g' | grep -v rc | grep ^go | tail -1
go1.23.4gvm install
installにはいくつかのオプションがあるので事前に確認しておいてください。
gvm install --help
Invalid version: --help
Usage: gvm install [version] [options]
-s, --source=SOURCE Install Go from specified source.
-n, --name=NAME Override the default name for this version.
-pb, --with-protobuf Install Go protocol buffers.
-b, --with-build-tools Install package build tools.
-B, --binary Only install from binary.
--prefer-binary Attempt a binary install, falling back to source.
-h, --help Display this message.それでは実際にinstall
go_version=$(gvm listall | sed -e 's/^ *//g' | grep -v rc | grep ^go | tail -1)
gvm_options=(--with-protobuf --with-build-tools --prefer-binary)
if command -v gvm &> /dev/null; then
gvm install ${go_version} ${gvm_options[@]}
gvm use ${go_version}
gvm list
fiOptionは適当に選んでください。
gvm useでgvmで利用するgoのversionを指定できます。
gvm listはxxenvでいうところのsub-command versionsと同じ挙動で、Installされているgo versionの一覧とそのデフォルトで利用するgo versionの指定の状態を確認するコマンドになっています。
gvm list
gvm gos (installed)
=> go1.23.4
system自分の場合は、go_versionに最新のgo version番号をセットし
環境変数でinstall ${go_version}したものを、そのままuse ${go_version}しているので上記のようになっています。
which go
/Users/yusukeh/.gvm/gos/go1.23.4/bin/go使えそうですね
go install
lazygitを入れてみましょう。
go install github.com/jesseduffield/lazygit@latest自分の環境では無事lazygitがInstallされました。
which lazygit
/Users/yusukeh/.gvm/pkgsets/go1.23.4/global/bin/lazygit自分はGolangを書くわけじゃないですが、ちょっと新しいModernなShell Environmentを構成するためにgoの環境をセットアップすることは必須🤣
とくにlazygitがないと・・・めんどくさくてやってられません😅
goってrustでいうcargo backupやpythonでいうところのpip freezeなものが存在しないけど、みなさんどうやってるんですかね?🤔
自分はgo_installなるテキストファイルを保存して、マニュアルで管理・・・
github.com/Gelio/go-global-update@latest
github.com/tomwright/dasel/v2/cmd/dasel@latest
github.com/jesseduffield/lazygit@latest
github.com/jesseduffield/lazydocker@latest
github.com/jorgerojas26/lazysql@latest
github.com/kndndrj/nvim-dbee/dbee@latest
github.com/dundee/gdu/v5/cmd/gdu@latest
github.com/projectdiscovery/pdtm/cmd/pdtm@latest
github.com/mah0x211/lenv@latest
github.com/charmbracelet/gum@latest
github.com/charmbracelet/glow@latest
github.com/mingrammer/flog@latest
github.com/muesli/duf@latest
github.com/rs/curlie@latest
github.com/mr-karan/doggo/cmd/doggo@latest
github.com/xo/usql@latest
github.com/gohugoio/hugo@latest
github.com/k1LoW/runn/cmd/runn@latest
github.com/xo/xo@latest
......for g in $(cat [go_install] | grep -v ^#)
do
go install ${g}
done以上gvmでした。
ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください!
『ターミナルがダサいとモテない』シリーズ一覧
転載:ターミナルがダサいとモテない。gobrewからgvmに変えたの巻
この記事は Medium(@yusuke_h) からの転載です。
