起こったこと
goのyamlパッケージがgo get
で取得できない。
環境は以下:
- Mac: 10.12.5 (16F73)
- go: go1.9.1 darwin/amd64
- git: 最初のエラー発生時に確認していないが多分2系
gopkg.in経由でcloneする際に以下のエラーが発生する:
$ go get github.com/gernest/utron
cd .; git clone https://gopkg.in/yaml.v2 /Users/user/go/src/gopkg.in/yaml.v2
Cloning into '/Users/user/go/src/gopkg.in/yaml.v2'...
fatal: unable to access 'https://gopkg.in/yaml.v2/': Unknown SSL protocol error in connection to gopkg.in:-9838
package gopkg.in/yaml.v2: exit status 128
試したが解決しなかったこと
gopkgのIssuesでいくつか解決したよ報告があったので以下を試してみた。結果私の環境では解決しなかった…
1. gitの設定でsslVerifyをtrueにする
Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg
$ git config --global http.sslVerify true
2. gitの再インストール
Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg
$ brew reinstall openssl && brew reinstall git --with-openssl
結論: gopkg.inを使わずにyamlパッケージを取得
上記の方法では解決しなかったため、gopkg.inを使わずにyamlパッケージを取得した。
Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg
$ git clone -b v2 git@github.com:go-yaml/yaml.git $GOPATH/src/gopkg.in/yaml.v2
結果再度go get
で依存パッケージも取得できた。
$ go get github.com/gernest/utron
github.com/cznic/mathutil
github.com/cznic/golex/lex
github.com/cznic/fileutil
# 省略
Unknown SSL protocol error in connection to gopkg.in:-9838 · Issue #49 · niemeyer/gopkg
このコメントによるとgopkg.inはSNIをサポートしていないクライアント(Mac環境のGit?)に対応していないためこのようなエラーが発生しているとのこと。
homebrewでopensslを使うgitを再インストールしたつもりだったんだけどうまく動いていない?
時間もなかったので深追いしていない…。