はじめに
最近は、自分のPCに開発のための環境を直接インストールしないようにしていて、できるだけDockerで済ませようとしている。
ただ、自分が使っているIntelliJ IDEAだとDocker越しにGolangを扱うのが面倒なので、結局Homeディレクトリ配下にインストールして、開発している。
最初の頃は、goenvとか使っていたのだけど、なんだか大げさだなと思って、現在は公式バイナリとdirenvで完結するようにした。
具体的なやり方
至ってシンプルで、以下のような感じ。
~/.goroots
ディレクトリを作成~/.goroots
配下に公式サイトからダウンロードして展開したディレクトリを配置- 結果的に
~/.goroots/gox.yy.zz/
みたいな感じで配置する direnv
を使いたいプロジェクト配下に設置
.envrc
は例えばこんな感じ。
PATH_add ~/.goroots/go1.11.13/bin
export GOROOT=~/.goroots/go1.11.13
export GOPATH=~/work
export GO111MODULE=on
export GOCACHE=${GOPATH}/src/github.com/longkey1/foo
bin
ディレクトリにPATHを通したり、 GOROOT
を設定したりって感じ。
自分の場合は、作業ディレクトリを ~/work
にしているので、そこを GOPATH
に設定していたりもする。
あと、毎回毎回やるのも面倒なので、 dotfiles
に管理対象にもしたので、毎回公式サイトからダウンロードして・・・みたいなのは自動化してある。
おわりに
Golangは後方互換がちゃんとしているので、複数バージョンをわざわざ入れなくても良いのだけども、GAE/GO等を利用する際に環境とバージョンを揃えておいたほうが安心かなってことで、一応複数バージョンを切り替えれるようにしてあるって感じ。
兎にも角にも、アーカイブされたファイルを展開するだけで動くってのが、やっぱりポータビリティ高くて素晴らしいなと思う。