go get で permission denied が発生する
2017-05-25 / Go
goのバージョンアップが上手くできてなかったので発生した。
事象
go get でパッケージをインストールしようとすると、以下のようなエラーが起きる。
$ go get -u github.com/kawaken/chatwork-cli
go install runtime/internal/atomic: open /usr/local/go/pkg/linux_amd64/runtime/internal/atomic.a: permission denied
どうやら古いバージョンを移動や削除せずに、tarで展開してしまったのが良くなかったらしい。
ちゃんとバージョンアップする
現行のバージョンを確認。
$ go version
go version go1.7.1 linux/amd64
既存のgoをバージョン付きのパスに変更する。残す必要がなければ削除して良い。
$ sudo mv /usr/local/go /usr/local/$(go version | awk '{print $3}')
$ ls -d1 /usr/local/go*
/usr/local/go1.7.1/
新しいバージョンのgoをインストールする。
# cd /usr/local/src/
# wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
# tar -C /usr/local -xf go1.8.3.linux-amd64.tar.gz
# go version
go version go1.8.3 linux/amd64