0
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?

asdfでGoのバージョンを切り替える手順

Posted at

はじめに


この記事ではasdfをインストールするところから、実際にGoのバージョンを切り替えるまでの手順をまとめています。

最後まで読めば、簡単に手元のGoのバージョンを切り替えられるようになるはずです。

※本記事はIntel Macで動作確認済みです。

asdfを使ってGoのバージョンを切り替える手順


以下の手順で進めます。

  1. homebrewでasdfをインストール

  2. 既存Go(公式インストーラ版)のアンインストール(もしあれば)

  3. Zshの初期化スクリプトでasdfを有効化

  4. asdfでGoをインストール

  5. バージョンを切り替える


順番に見ていきます。

1. homebrewでasdfをインストール


まずはasdfをインストールします。

$ brew install asdf

インストール後、次のようにバージョンを確認できればOKです。

$ asdf version                                            
0.16.5

2. 既存Go(公式インストーラ版)のアンインストール(もしあれば)


$ which go  
/usr/local/go/bin/go

このように/usr/local/go/bin/goが表示される場合、すでに別の手段でGoをインストールしていると考えられます。

※Appleシリコンだと/usr/localではなく/opt/homebrewだと思われる。

pkgutilでパッケージIDが確認できます。

$ pkgutil --pkgs | grep -i golang
org.golang.go

そちらが優先されてしまうことを防ぐため、アンインストールしましょう。

$ sudo rm -rf /usr/local/go
Password:
$ sudo pkgutil --forget org.golang.go
Forgot package 'org.golang.go' on '/'.

再びwhich goを実行しgo not foundと表示されればアンインストールできています。

$ which go
go not found

3. Zshの初期化スクリプトでasdfを有効化


asdfを使うにはシェル起動時に初期化スクリプトを読み込む必要があります。

.zshrcに追記・反映します。

$ echo '. /usr/local/opt/asdf/libexec/asdf.sh' >> ~/.zshrc
source ~/.zshrc

ドットとスクリプトパスの間にスペースを空ける必要がある点に注意しましょう。

4. asdfでGoをインストール


asdfはプラグイン制です。

Goを扱うためには次のコマンドでプラグインを追加します。

$ asdf plugin add golang

asdf plugin listを実行してgolangの表示が確認できれば問題ないです。

$ asdf plugin list                                        
golang

続いてインストール可能なGoのバージョンを一覧で確認します。

$ asdf list all golang
1
1.2.2
1.3
1.3beta1

(省略)

1.12.15
1.12.16
1.12.17
1.13
1.13beta1

(省略)

1.23.6
1.23.7
1.24.0
1.24rc1
1.24rc2
1.24rc3
1.24.1

今回は例として最新の1.24.1を使います。

asdf install golang 1.24.1でインストール可能です。

$ asdf install golang 1.24.1
Platform 'darwin' supported!
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 76.2M  100 76.2M    0     0  55.8M      0  0:00:01  0:00:01 --:--:-- 55.8M
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    64  100    64    0     0    156      0 --:--:-- --:--:-- --:--:--   156
verifying checksum
/Users/inouekazuya/.asdf/downloads/golang/1.24.1/archive.tar.gz: OK
checksum verified

次のようにインストールできていることを確認できればOKです。

$ asdf list golang
 *1.24.1

最後にインストールしたGoをasdf setコマンドでセットしましょう。

「設定をどこに書くか(ホーム or プロジェクト」によって、グローバル・ローカルを切り替えます。

グローバルに設定する場合


ホームディレクトリに移動し、asdf set golang 1.24.1を実行します。

$ cd ~
$ asdf set golang 1.24.1

すると~/.tool-versionsが作成・更新され、全ディレクトリでGo1.24.1が使われるようになります。

ローカルに設定する場合


たとえば~/go-sampleというディレクトリに移動して実行します。

$ cd ~/go-sample
$ asdf set golang 1.24.1

すると~/go-sample/.tool-versionsが作成・更新され、このディレクトリ配下だけGo1.24.1が使われるようになります。

グローバルよりもローカルの優先度の方が高い点に注意です。

5. バージョンを切り替える


最後にバージョンを切り替える場合の操作です。

今回はGo1.13にさかのぼって動作確認したいケースを想定します。

と言っても流れは同じです。

以下のコマンドを順に実行しましょう。

$ asdf install golang 1.13
$ asdf list golang    
  1.13
 *1.24.1
$ asdf set golang 1.13
$ asdf list golang    
 *1.13
  1.24.1

*が現在のバージョンです。

*1.13となっていれば、バージョンの切り替えができています。

まとめ


この記事ではasdfを使ってGoのバージョンを切り替える手順をまとめました。

バージョン間の差異を確認したりする場面で有効かなと思います。

参考になりましたら幸いです。

0
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
0
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?