突如業務でGo言語、GoLangを使うことになる可能性が出てきたので、勉強を始めようと思いました。
せっかくなので環境作りを控えておきます。どなたかの役に立つと幸いです。
環境
HARD: MBP2015
OS: macOS Catalina 10.15.7
anyenvのインストール
多言語でもよくよく出てくる言語のバージョン管理ツールですが、GoLang版もあり、 goenv
となります。色々試そうとするとバージョン管理ツールが山程溜まってくるので、ここは anyenv
を使って一元管理しましょう。後から導入しようとすると、pathを通したりするので大変なことになります…。
anyenv
のインストール手順については、調べると山程出てくるので、そちらを参照してください。
$ anyenv install -l
Renv
crenv
denv
erlenv
exenv
goenv
hsenv
jenv
jlenv
luaenv
nodenv
phpenv
plenv
pyenv
rbenv
sbtenv
scalaenv
swiftenv
tfenv
goenv
があることを確認出来ました。インストールしましょう。
$ anyenv install goenv
/var/folders/jg/bmq8whm12bzbh6rszy2yqbpc0000gn/T/goenv.20201103131148.40785 ~/work/suzuki84g
Cloning https://github.com/syndbg/goenv.git master to goenv...
Cloning into 'goenv'...
remote: Enumerating objects: 106, done.
remote: Counting objects: 100% (106/106), done.
remote: Compressing objects: 100% (84/84), done.
remote: Total 14294 (delta 49), reused 45 (delta 12), pack-reused 14188
Receiving objects: 100% (14294/14294), 2.57 MiB | 1.89 MiB/s, done.
Resolving deltas: 100% (9715/9715), done.
~/work/suzuki84g
Install goenv succeeded!
Please reload your profile (exec $SHELL -l) or open a new session.
exec $SHELL -l
でshellを再起動し、完了です。
goenv -v
でインストールされていることが確認できました。
$ goenv -v
goenv 2.0.0beta11
GoLangのインストール
goenv install -l
でインストール出来るバージョンが山程出てきます。必要なものをインストールしましょう。ここでは最新版を入れてみます。
$ goenv install 1.15.3
Downloading go1.15.3.darwin-amd64.tar.gz...
-> https://golang.org/dl/go1.15.3.darwin-amd64.tar.gz
Installing Go Darwin 64bit 1.15.3...
Installed Go Darwin 64bit 1.15.3 to /Users/suzukiyuuki/.anyenv/envs/goenv/versions/1.15.3
$ goenv versions
1.15.3
インストールログから .anyenv
配下に1.15.3がインストールされたことを確認しました。
次にglobalでの使用を宣言し、諸々の確認を取ります。env系のコマンド体型は揃えられていて直感的に使えるの本当に助かる。
$ goenv global 1.15.3
$ goenv rehash
$ goenv versions
* 1.15.3 (set by /Users/suzukiyuuki/.anyenv/envs/goenv/version)
$ go version
go version go1.15.3 darwin/amd64
$ which go
/Users/suzukiyuuki/.anyenv/envs/goenv/shims/go
取り敢えずこれで動く、はず。
メルカリさんのエンジニアコミュニティで公開されている「プログラミング言語Go完全入門」の「完全」公開のお知らせが取っつきやすそうだったので、取り敢えずやってみます。
何か良いドキュメントなどあれば教えて下さい。