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?

More than 3 years have passed since last update.

Goの学習備忘録 #2 goenvでバージョン管理しようとしたら古いバージョンしか見つかりません

Last updated at Posted at 2020-09-20

概要

Go言語を扱う際に、goenvを導入しようとしたら、古いバージョンしか見つからず詰まった話

homebrewでgoenvをダウンロード

macだしhomebrewでいいかなと思い、
$ brew install goenv
無事にインストールは完了

インストールできるgolangのバージョンを確認

$ goenv install -l
=> Available versions:
  1.2.2
  1.3.0
  1.3.1
  :
  :
  1.11.0
  1.11beta2
  1.11beta3
  1.11rc1
  1.11rc2
  1.11.1
  1.11.2
  1.11.3
  1.11.4
  1.12beta1

あれ?1.15.2がstable versionになってたから入れたいのにリストにない
あーgoenvのバージョン古いからか

$ brew upgrade goenv
=> Warning: goenv 1.23.3 is already installed

ん?どういうこと?

goenvでバージョン管理

homebrewじゃなくてgitでインストール

1.23系から2.0系にする場合は、git cloneで入れればよいという記事がちらほらあったので、gitでインストールする

公式に倣いインストール
$ git clone https://github.com/syndbg/goenv.git ~/.goenv

PATHを通す

export GOENV_ROOT=$HOME/.goenv
export PATH=$GOENV_ROOT/bin:$PATH
eval "$(goenv init -)"
export PATH="$GOROOT/bin:$PATH"
export PATH="$PATH:$GOPATH/bin"

PATHを通したところで、コードを実行


$ go run main.go 
main.go:1499:2: package myProject/mylib is not in GOROOT (/myProject/mylib)
main.go:1500:2: package myProject/mylib/hogehoge is not in GOROOT (myProject/mylib/hogehoge)

$ go build
go: cannot find main module; see 'go help modules'

runもbuildもうまく動かない

## gomod

Goのコードはライブラリも含めてすべて$GOPATH/src以下に置くという約束になっている。
将来の Go 1.12 からこのやり方を改め、$GOPATH/srcやvendorは廃止となりGo Modulesという物を採用する事になった。

今回は1.15.2を使用しているので、gomodを作成する必要があるみたい

golangの設定変更

go env -w GO111MODULE=on 

gomod作成

プロジェクトの直下で

$ go mod init myProject
$ go build
$ go run main.go
=> Human!!

無事動いた

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?