はじめに
これは KWC Advent Calendar 2022 の記事です。
KWCでバックエンドエンジニア 兼 クイズ作家 をしている広島在住の@nishihama-kwcです!
今回は、一緒に働いているメンバーが使ってたasdfというツールが便利すぎて泣いたので、その感動を共有したいと思います。
asdfとは
プログラミング言語やgitなどのツールを一括でバージョン管理できるコマンドラインツールです。
pyenvなどを使うと言語のバージョンを管理できますが、asdfは複数の言語やツールをまとめて管理できるのでとても便利で使いやすいと思います。
個人的には、ローカルでちょっとしたコードを最新の言語バージョンで実行したい時などに、専用のディレクトリを作って試すという使い方をしています。
使ってみる
インストール手順は公式ドキュメントにわかりやすく書いてありますが、ここではasdfを使ってMacに最新版のGoをインストールする手順を簡単に示します。
MacにHomebrewを入れている方は以下のコマンドでインストールできます。
% brew install asdf
インストールが終わったらバージョンを確認します。
% asdf --version
v0.10.2
Goのインストール
ここからはasdfにプラグインを追加という形でGoをインストールします。
まず、インストール可能なプラグインを以下で確認してみます。
% asdf plugin list all
...
golang https://github.com/kennyp/asdf-golang.git
...
Goのプラグインをインストール。
% asdf plugin add golang https://github.com/kennyp/asdf-golang.git
インストール可能なGOのバージョンを確認します。
% asdf list all golang
...
1.19.3
バージョンを指定してインストールします。
% asdf install golang 1.19.3
※インストール可能な最新バージョンを入れたい場合は以下でOK。
% asdf install golang latest
インストールされたバージョンを確認。
% asdf list golang
1.19.3
特定のディレクトリ(ここでは~/sandbox/golang)のみにGoのバージョンを適用したい場合は以下を実行。
% cd ~/sandbox/golang
% asdf local golang 1.19.3
グローバルに適用する場合は以下を実行。
% asdf global golang 1.19.3
Goがインストールされているか確認。
% go version
go version go1.19.3 darwin/amd64
Goのバージョンを切り替えたい
現在のバージョン1.19.3から1.19.2へ変更したい場合。
% asdf list all golang | grep 1.19.2
1.19.2
% asdf install golang 1.19.2
% asdf list golang
1.19.2
1.19.3
バージョン1.19.2を適用。
% cd ~/sandbox/golang
% asdf local golang 1.19.2
or
% asdf global golang 1.19.2
バージョンもしくはプラグインを削除したい
インストールしたGoのバージョンを削除。(Goの1.19.2を削除)
% asdf uninstall golang 1.19.2
追加したプラグインを削除。
% asdf plugin remove golang
コマンドチートシート
list や allなどややこしいなと感じるところがあるので、表にまとめました。
やりたいこと | コマンド |
---|---|
インストール可能なプラグインの一覧表示 | asdf plugin list all |
プラグインを追加 | asdf plugin add <プラグイン名> |
指定したプラグインのインストール可能なバージョンを一覧表示 | asdf list all <プラグイン名> |
プラグインのバージョンを指定してインストール | asdf install <プラグイン名> <バージョン名>(or latest) |
プラグインを指定してインストールされているバージョンを一覧表示 | asdf list <プラグイン名> |
カレントディレクトリにプラグインのバージョンを適用 | asdf local <プラグイン名> <バージョン名>(or latest) |
グローバルにプラグインのバージョンを適用 | asdf global <プラグイン名> <バージョン名>(or latest) |
指定されたプラグインのバージョンを削除 | asdf uninstall <プラグイン名> <バージョン名>(or latest) |
指定されたプラグインを削除 | asdf plugin remove <プラグイン名> |
おわりに
本稿では、プログラミング言語やgitなどのツールを一括でバージョン管理できるasdfコマンドについて書きました。使い始めると、asdfで管理できるツールは全て一括管理したくなりますし、同じ操作感でバージョン管理や変更できることに感動できると思います!
KWC Advent Calendar 2022 も終盤に差し掛かりました。怒涛のラストスパートもお楽しみに!