rcmdnk's blog

食べる!SSL! ―HTTPS環境構築から始めるSSL入門

Homebrewでソフトをアップデートしようとしたら SSL周りでエラーが出て困った件について。

結局良くわからないまま解決されてしまって 何が原因か理解できてませんが今後のためにメモ。

起こった問題

Vimで’E887: Sorry, this command is disabled, the Python’s site module could not be loaded.’なエラー の所でVimをアップデートしようとした時、 HEADバージョンをMercurialで取ってこようとするところで

abort: error: _ssl.c:507: EOF occurred in violation of protocol

みたいなエラーが。

試しに、直接コマンドでやってみても

$ hg clone https://vim.googlecode.com/hg/ vim
abort: error: _ssl.c:507: EOF occurred in violation of protocol

となります。 これをhttpsからhttpに替えれば取ってこれるんですが、 VimのFormula: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/vim.rb を見ても、この部分、以前からhttpsを使っていて 少なくとも前はhttpsを使って取ってきてたはずです。

試しに他のLinux端末でht cloneしてみると問題なくhttpsからも 取ってこれました。

なのでMacのSSL周りの問題です。

上の_ssl.cはPythonのものなのでPythonのアップデートに伴うものな感じ。

色々ソフトウェアのアップデートとかが中途半端になってるのかと思い、 brew update && brew upgradeしてみると

==> Downloading https://downloads.sf.net/project/libpng/libpng16/1.6.16/libpng-1.6.16.tar.xz

curl: (35) Unknown SSL protocol error in connection to downloads.sf.net:443
Error: Download failed: https://downloads.sf.net/project/libpng/libpng16/1.6.16/libpng-1.6.16.tar.xz

みたいなエラーが出るものが多数。

一部のものは、これで失敗すると別のソースコードのある所から 取ってきてインストールしてたりもしましたが、 それが出来ないものはそのまま失敗。

curlでこけてるので、直接コマンドを打ってみても

$ curl https://downloads.sf.net/project/libpng/libpng16/1.6.16/libpng-1.6.16.tar.xz
...
curl: (35) Unknown SSL protocol error in connection to downloads.sf.net:443

と同じ。

curlはOS Xにもともと入っていてそのまま使っているので 上に書いたPythonの変更だけが悪いわけでは無さそうです。

opensslを見てみるとHomebrewで入れていましたが、 これはいくつかのパッケージがopensslに依存しているからの様子。

ただ、opensslコマンド自体はOS Xにデフォルトで入っているので リンクは貼られず、 依存するパッケージがライブラリを使用するためだけに入ってる感じ。

なので、少なくともデフォルトで入ってるcurlには影響がないはずなので さらに謎に。。。

検索してみると、以前、同じような問題が起こっていて

Pango fails install with curl SSL error · Issue #25990 · Homebrew/homebrew · GitHub

この時なんかはサイト側が単に落ちていた、と。

他には

Unknown SSL Protocol error with downloads.sf.net · Issue #16501 · Homebrew/homebrew · GitHub

Brew install error

Gd dependency download from bitbucket failed · Issue #32420 · Homebrew/homebrew · GitHub

この辺は根本的には解決してない感。

どうしても上手くいかなかなかったので、取り敢えずは Vimに関して /usr/local/Library/Formula/vim.rbの中の

https://vim.googlecode.com/hg/

http://vim.googlecode.com/hg/

に変更してインストールしました。

ただ、現状この様な問題が多発してるわけでも無さそうで 自分の環境が悪い感じなのでもう少し検索。

最初のMercurialの問題に関して、

SSLError on GAE · Issue #2056 · psf/requests

python - using requests with TLS doesn’t give SNI support - Stack Overflow

TortoiseHg / Mailing Lists: http://sourceforge.net/p/tortoisehg/mailman/message/32929322/

みたいなこととかがあってPythonのバージョンとかの問題かな、 と思って色々入れなおしたりしてみましたがやっぱりダメ。

で、取り敢えず諦め。

その後

そして、半日ほど経って、試しにやってみたところ Vimも他のパッケージも問題なくダウンロード出来ました。。。

手元のネットワーク環境設定が大きく変わった、と言うことは無いと思うので 色々アップデートとかしてる間に何か上手くいったのか何なのか? ただ、curlの方はHomebrewとは関係ないはずだし更に良くわからず。。。

Vimと他のパッケージで供給元も違うので一概にサイト側の問題、 というのもあれですが、 たまたまサイト側の問題が重なっただけなのかもしれないので、 そいうことにしておいて、今度起こった時は 少し待ってみて試してみるということを覚えておこう、かと。

Sponsored Links
Sponsored Links

« Vimで'E887: Sorry, this command is disabled, the Python's site module could not be loaded.'なエラー HomebrewでPythonをインストールした際のpipのアップデートの注意 »

}