goenv(とgoof)ってなに
- Goのプロジェクトを管理するためのツール
- プロジェクトごとにバージョンの違う外部ツールを使いたい時とか便利
- https://bitbucket.org/ymotongpoo/goenv/src
- Pythonのvirtualenvに相当する
- 今だとgoenvをラップしてさらに使いやすくしたgoofを使う
- Pythonのvirtualenvwrapperに相当
- virtualenv+virtualenvwrapper for Golang
使いかた
-
goof make <ENVNAME>
- 新しくENVNAMEという環境を作成する
-
goof workon <ENVNAME>
- ENVNAME環境に切り替える
-
goof show
- 環境一覧
-
goof remove <ENVNAME>
- ENVNAME環境を削除
Goを自前コンパイルした人だけが使えるコマンド
-
goof goinstall <version>
- 指定したバージョンをインストールする
-
goof go [version]
- 指定したバージョンに切り替える
インストール
前提条件
- Goが入っている(brewでも自前コンパイルでも)
-
GOPATH
、GOROOT
が設定されている
手順
- zshrcに次の変数を追加する
export GOENVHOME=$HOME/.goenvs
- 以下を実行
$ go get bitbucket.org/ymotongpoo/goenv
$ cp $GOPATH/src/bitbucket.org/ymotongpoo/goenv/shellscripts/goenvwrapper.sh $GOPATH/bin/
- 以下をzshrcに追加する
if [[ -r `which goenvwrapper.sh` ]]; then
source `which goenvwrapper.sh`
else
echo "WARNING: Can't find goenvwrapper.sh"
fi
- zsh再起動
使ってみた感じ
- めっちゃ便利
- 自分は以前Python書いていたので、その時の運用をそのまま使える感じになっている
-
deactivate
がvirtualenvwrapperと完全にバッティングしているので、何とかしたい -
goof make hoge
で環境のディレクトリに飛ばされるの、若干ここでコード書けみたいな誤解が生まれそうだった