23
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

KWCAdvent Calendar 2022

Day 21

asdfが便利すぎる

Last updated at Posted at 2022-12-20

はじめに

これは 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 も終盤に差し掛かりました。怒涛のラストスパートもお楽しみに!

23
9
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
23
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?