$ brew update
をしようとすると、エラーが発生します。
error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack
ただし、$ curl --version
の場合、次のように表示されます。
curl 7.21.4 (x86_64-Apple-darwin12.2.0) libcurl/7.21.4 OpenSSL/0.9.8y zlib/1.2.5 libidn/1.20
Protocols: dict file ftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM SSL libz
何かが足りない限り、それは私には良さそうです。 https
がプロトコルリストにリストされていることに注意してください。
$ which curl
は疑わしい応答を生成します。
/usr/local/php5/bin/curl
うーん...多分brew
は異なるcurl
(/usr/bin/curl
のような)を使用しているかもしれません。どれどれ:
$ /usr/bin/curl --version
curl 7.24.0 (x86_64-Apple-darwin12.0) libcurl/7.24.0 OpenSSL/0.9.8y zlib/1.2.5
Protocols: dict file ftp ftps Gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IPv6 Largefile NTLM NTLM_WB SSL libz
さて、それは明らかにcurl
の異なるインストールですが、プロトコルリストにhttps
もリストしており、そこにもOpenSSL情報があります。
ところで:私のマシンでhttps
リポジトリでgit
URLを使用しようとすると、同じエラーが発生します。
質問:
curl
が使用しているbrew
へのパスを確認するにはどうすればよいですか?https
でlibcurl
のサポートを有効にするにはどうすればよいですか?PDATE:以下のdeltheilの方法に従って、git
(およびbrew
)が使用しているlibcurl.4.dylib
へのパスを決定できました。パスは次のとおりです。
/usr/lib/libcurl.4.dylib (compatibility version 6.0.0, current version 6.1.0)
だから私はこれを試しました:
$ brew install curl --with-libssh2
幸運なことに、curlは非SSL URIで利用可能であるため、実際にインストールを行いました。 /usr/local
にシンボリックリンクしませんでしたが、それは私には問題ありません(と思います)。だから私はこれをやった:
$ cd /usr/lib
$ mv libcurl.4.dylib libcurl.4.dylib.bk
$ ln -s /usr/local/Cellar/curl/7.30.0/lib/libcurl.4.dylib libcurl.4.dylib
$ brew update
しかし、それでも私はこのエラーを投げています:
error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack
質問は次のようになります:https
でlibcurl
のサポートを有効にするにはどうすればよいですか?
Brewが使用しているcurlへのパスを確認するにはどうすればよいですか?
Homebrewは/usr/bin/curl
、つまり here を見るとわかるように、Mac OS Xに同梱されているバージョンを使用しています。
とはいえ、正確に言うと、問題はおそらくgit
とリンクされ、http://
およびhttps://
に使用されるlibcurlのバージョンに関連しています。
which git
を実行して、使用しているバージョンを確認します(私のものは/usr/local
の下にインストールされます)。
次に、次のように使用される共有ライブラリをスキャンします。
$ otool -L /usr/local/git/libexec/git-core/git-http-Push | grep curl
/usr/lib/libcurl.4.dylib
/usr/local/
をgit
に対応するインストールディレクトリに置き換えます。
git
execが使用するlibcurlバージョンにはHTTPSサポートがないため、このバージョンが何であり、どこにインストールされているかがわかります。
これは私のために働いた:
Curlを再インストールし、次のコマンドを使用してインストールします(解凍後)。
$ ./configure --with-darwinssl
$ make
$ make test
$ Sudo make install
「curl --version」コマンドを実行すると、httpsプロトコルが「protocols」の下に存在することに気付くでしょう。
Curlの問題が発生したときに参照する便利なサイト: https://curl.haxx.se/docs/install.html
OSXでこの問題が発生しました。問題は、usr/local/bin内のcurlおよびcurl.configファイルが重複しており、usr/bin内の同じ2つのファイルと競合することでした。ローカル/ビンの最初のセットを削除し、その後ターミナルが動作しました。