2013-09-25 15 views
12

Kiedy próbuję $ brew update Dostaję błąd:Jak włączyć obsługę https w libcurl?

error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack 

Jednak, kiedy $ curl --version widzę:

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 

chyba że jestem brakuje czegoś, co wygląda dobrze na mnie. Zauważ, że https znajduje się na liście protokołów.

$ which curl daje podejrzaną reakcję:

/usr/local/php5/bin/curl 

Hmmmmm ... może brew używa innego curl (jak ten w /usr/bin/curl). Zobaczmy:

$ /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 

Ok, to oczywiście inna instalacja curl, ale jest również wystawianie https na liście protokołów i ma informacji OpenSSL tam.

BTW: Występuje ten sam błąd, jeśli próbuję użyć adresu URL https z jakimkolwiek repozytorium git na moim komputerze.

Pytania:

  1. Jak mogę określić ścieżkę do curl że brew korzysta?
  2. Jak włączyć obsługę https w libcurl?

UPDATE: ja w stanie określić ścieżkę libcurl.4.dylib że git (i brew) jest używany w następujący sposób deltheil jest poniżej. Ścieżka jest:

/usr/lib/libcurl.4.dylib (compatibility version 6.0.0, current version 6.1.0) 

Więc próbowałem to:

$ brew install curl --with-libssh2 

szczęście curl jest dostępny non-SSL URI, więc faktycznie insstall. To nie dowiązanie symboliczne do /usr/local, ale to w porządku ze mną (chyba). Więc zrobiłem to:

$ 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 

ale nadal rzuca mi ten błąd:

error: Protocol https not supported or disabled in libcurl while accessing https://github.com/mxcl/homebrew/info/refs?service=git-upload-pack 

Więc teraz pytanie staje się wyłącznie: Jak włączyć obsługę https w libcurl?

Odpowiedz

4

How can I determine the path to the curl that brew is using?

Homebrew wykorzystuje /usr/bin/curl, tj wersji dostarczany z Mac OS X, jak widać here.

To jest powiedziane, a ponieważ dokładniej, twój problem jest prawdopodobnie związany z wersją libcurl, która jest połączona z git i używana dla http:// i https://.

Wykonaj which git, aby ustalić, która wersja jest używana (moja jest zainstalowana pod /usr/local).

Następnie skanuje biblioteki współdzielone używane następująco:

$ otool -L /usr/local/git/libexec/git-core/git-http-push | grep curl 
/usr/lib/libcurl.4.dylib 

Wymień /usr/local/ z katalogu instalacyjnego, który odpowiada Twoim git.

Ponieważ wersja libcurl używana przez Twój git exec brakuje obsługi HTTPS, to powie ci, co to jest ta wersja i gdzie jest zainstalowany.

+0

Dzięki @deltheil, masz mnie w połowie drogi. Zaktualizowałem pytanie o obecny postęp. –

+0

Z pewnością coś jest nie tak, ponieważ 'git' jest poprawnie połączony z systemem libcurl, który ma wsparcie dla https. Powiedziawszy, że powinieneś ** nigdy, nigdy ** modyfikować swoich plików systemowych w '/ usr/bin','/usr/lib', et al. Polecam uruchomić "lekarza do parzenia" i sprawdzić tę stronę [błędy klonowania Github HTTPS] (https://help.github.com/articles/https-cloning-errors). – deltheil

+0

Alternatywnie możesz poprawnie zainstalować 'git' przez Homebrew za pomocą opcji' with-brewed-curl', aby 'git' używał' curl' z warzenia, który zależy od 'darwinssl' dla obsługi SSL. – deltheil

0

Miałem ten problem na OSX. Problemem były zduplikowane pliki curl i curl.config w usr/local/bin, które kolidowały z tymi samymi dwoma plikami w usr/bin. Usunąłem pierwszy zestaw z lokalnego/bin i Terminal pracował po tym.

1

Ten pracował dla mnie:

Re-install curl i zainstalować go za pomocą poniższych poleceń (po rozpakowaniu):

$ ./configure --with-darwinssl  
$ make  
$ make test  
$ sudo make install 

Po uruchomieniu polecenia "curl version" będziesz zauważ, że protokół https jest teraz obecny w "protokołach".

Przydatne miejscu odnieść gdy napotkasz problemy Zwijanie: https://curl.haxx.se/docs/install.html

Powiązane problemy