Goインストールメモ(dep)

RustでWebサーバーを書いていたのですが、このところ非同期IOまわりの実装が活発なようで、シンプルに書こうと思うと、まだ発展途上な部分が目立ったので、筆休めにGoをはじめてみました。

というわけで環境構築用の自分用メモです。

環境要件

  • Mac OS X 10.13.6
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.13.6
BuildVersion:	17G65

GVMのインストール

GVMはNVMとかと同じ、ランタイムのバージョンマネージャ。

$ bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
Cloning from https://github.com/moovweb/gvm.git to /Users/xyz/.gvm
No existing Go versions detected
Installed GVM v1.0.22

Please restart your terminal session or to get started right away run
 `source /Users/xyz/.gvm/scripts/gvm`

$ source ~/.gvm/scripts/gvm 
$ gvm version
Go Version Manager v1.0.22 installed at /Users/xyz/.gvm

Goのインストール

GVMを使って、Goをインストールする。

gvm installでは、-Bをつけないと、ソースからビルドしてインストールしようとするのですが、このビルド自体にGoが使われるため、初めてインストールする場合は-Bオプションが必要になります。

$ gvm listall

gvm gos (available)

   ..
   go1.11.3
   go1.11.4
   go1.12beta1
   go1.12beta2
   ..


$ gvm install go1.11.4 -B
Installing go1.11.4 from binary source

$ gvm use go1.11.4
Now using version go1.11.4

$ go version
go version go1.11.4 darwin/amd64

$ echo "             
source ~/.gvm/scripts/gvm
gvm use `gvm list | grep -v gvm | grep -v '^ *$' | tr -d '=>' | tail`
">>~/.bash_profile 

depのインストール

depはパッケージマネージャ。Mavenとか、NPMとかと同じ。brew, sh, go等でインストールできます。depを使うにあたって、環境変数GOPATHの設定が必要になるので、このあたりも一緒に設定します。

$ go get -u github.com/golang/dep/cmd/dep

$ dep version
dep:
 version     : devel
 build date  : 
 git hash    : 
 go version  : go1.11.4
 go compiler : gc
 platform    : darwin/amd64
 features    : ImportDuringSolve=false

$ mkdir -p ~/Golang # Goのプロジェクト群を配置したい任意のディレクトリ
$ export GOPATH=~/Golang

プロジェクトの作成とビルド

GOPATHを設定したあとは、そこまで気にするポイントは多くありません。

$ mkdir -p $GOPATH/src/github.com/{username}/go-hello
$ cd $GOPATH/src/github.com/{username}/go-hello

$ dep init

$ echo '
package main
 
func main() {
    println("hello!")
}
'>main.go

$ # 今回は使いませんが依存を追加する場合は以下のようにします(goファイルが存在しないと失敗します)
$ # dep ensure -add github.com/{username}/{repository}

$ go build
$ ./go-hello
hello!

参考

arrow_back

Previous

Goインストールメモやりなおし(vgo)

Next

Rustでコレクション操作
arrow_forward