Unable to build protobuf to go endpoint

protoc-gen-go needs to be in your shell path, i.e. one of the directories listed in the PATH environment variable, which is different from the Go path. You can test this by simply typing protoc-gen-go at the command line: If it says "command not found" (or similar) then it's not in your PATH.


Using

$ go get -u github.com/golang/protobuf/{proto,protoc-gen-go}

is more safe than using

$ sudo apt-get install golang-goprotobuf-dev

Because the latest protoc-gen-go is using the lib github.com/golang/protobuf/proto, but protoc-gen-go in apt-get using the lib code.google.com/p/goprotobuf/proto which didn't exist now.


  1. You should properly define your GO_PATH - where your go packages live. In other words, GO_PATH is your go workspace. The GO_PATH should be ~/go.

  2. protoc-gen-go should be in your PATH. While protoc-gen-go lives in $GO_PATH/bin after you installed it.


Add these 2 important lines to your ~/.bash_profile:

export GO_PATH=~/go
export PATH=$PATH:/$GO_PATH/bin

Then you need to start a new shell session or just type in this line:

$ source ~/.bash_profile