LoginSignup
42
41

More than 5 years have passed since last update.

goenv(とgoof)で仮想環境を作ってみた #golang

Last updated at Posted at 2014-11-11

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でも自前コンパイルでも)
  • GOPATHGOROOTが設定されている

手順

  • 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で環境のディレクトリに飛ばされるの、若干ここでコード書けみたいな誤解が生まれそうだった
42
41
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
42
41