17
15

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.

Go言語のバージョン管理ツール[goenv]の導入

Last updated at Posted at 2022-02-26

やること

Go言語のバージョン管理ツール goenv を導入する

導入理由

プロジェクトによってGo言語のバージョンが異なったり、バージョンアップ対応する場合があると思うので、バージョン管理を行えるように導入する

環境

  • OS: Ubuntu (18.04 LTS)
  • Git
  • Shell: bash or zsh

Ubuntu向けに記載しますが、 apt とか使わないのでMacでも手順同じはずです
→調べたらMacは brew install goenv だけでもインストールできるらしい。

導入手順

ホームディレクトリにgoenvをcloneする

git clone https://github.com/syndbg/goenv.git ~/.goenv

goenvを読み込むためのPATHを設定する

# bashの場合
echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.bashrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.bashrc

# zshの場合
echo 'export GOENV_ROOT="$HOME/.goenv"' >> ~/.zshrc
echo 'export PATH="$GOENV_ROOT/bin:$PATH"' >> ~/.zshrc

goenv init の設定を追加する
GOPATHGOROOT の読み込み用に必要らしい

# bashの場合
echo 'eval "$(goenv init -)"' >> ~/.bashrc

# zshの場合
echo 'eval "$(goenv init -)"' >> ~/.zshrc

goenvを使用して GOPATHGOROOT を管理する場合、上記の記述の後に以下の設定を入れるらしい。

# bashの場合
echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.bashrc
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.bashrc

# zshの場合
echo 'export PATH="$GOROOT/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="$PATH:$GOPATH/bin"' >> ~/.zshrc

上記の設定を読み込むためにshellを再起動

exec $SHELL

goenvが入ったことを確認

$ goenv -v
goenv 2.0.0beta11

ここで上手く行かない場合はbashrc(zshrc)の設定ミスっている可能性が高いので見直してください。

Basic Usage

指定したバージョンのGoをインストール

goenv install <version>

# 記事作成時の最新バージョンをインストールしてみる
$ goenv install 1.17.7
Downloading go1.17.7.linux-amd64.tar.gz...
-> https://go.dev/dl/go1.17.7.linux-amd64.tar.gz
##################################################################################################################################################################################################### 100.0%##################################################################################################################################################################################################### 100.0%
Installing Go Linux 64bit 1.17.7...
Installed Go Linux 64bit 1.17.7 to /home/iwakura/.goenv/versions/1.17.7

# 確認
$ goenv versions
  1.17.7

↑上記でしれっと使用しましたが、インストール済みのバージョン一覧は goenv versions で確認可能

使用しているPC全体のGoのバージョンを指定

goenv global <version>

$ goenv global 1.17.7

# 確認
$ go version
go version go1.17.7 linux/amd64

カレントディレクトリだけ指定したバージョンのGoを使用

goenv local <version>

# 確認用にディレクトリ作成&移動
$ mkdir goenv-test
$ cd goenv-test

# 別バージョンインストール
$ goenv install 1.12.0

# 切り替え前
$ go version
go version go1.17.7 linux/amd64

# 切り替え実行
$ goenv local 1.12.0

# 確認
$ go version
go version go1.12 linux/amd64

# goenv localのバージョン管理をする場合、以下のファイルが生成されます
$ ls -a
.  ..  .go-version

$ cat .go-version
1.12.0

最後に

以上、 goenv のインストールと使用方法についてでした!
ぶっちゃけ、こちらの内容を翻訳した程度なので細かい点は公式参照しましょう!

17
15
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
17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?