¿Cómo habilito la compatibilidad con https en libcurl?

4 minutos de lectura

¿Como habilito la compatibilidad con https en libcurl
ben harold

cuando intento $ brew update Estoy recibiendo el error:

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

Sin embargo, cuando yo $ curl --versionVeo:

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 

A menos que me esté perdiendo algo, eso me parece bien. Darse cuenta de https aparece en la lista de protocolos.

$ which curl produce una respuesta sospechosa:

/usr/local/php5/bin/curl

Hmmmmm… tal vez brew está usando un diferente curl (como el de /usr/bin/curl). Veamos:

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

Bien, obviamente es una instalación diferente de curlpero también está listando https en la lista de protocolos, y también tiene la información de OpenSSL.

Por cierto: recibo el mismo error si trato de usar un https URL con cualquier git repositorio en mi máquina.

Preguntas:

  1. ¿Cómo puedo determinar el camino a la curl ese brew ¿esta usando?
  2. ¿Cómo habilito el soporte para https en libcurl?

ACTUALIZAR: Pude determinar el camino a libcurl.4.dylib ese git (y brew) están usando siguiendo el método de deltheil a continuación. El camino es:

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

Así que probé esto:

$ brew install curl --with-libssh2

Afortunadamente, curl está disponible en un URI que no es SSL, por lo que en realidad se instaló. No hizo un enlace simbólico en /usr/local, pero eso está bien para mí (creo). Así que hice esto:

$ 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

Pero me sigue tirando este error:

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

Entonces ahora la pregunta es exclusivamente: ¿Cómo habilito el soporte para https en libcurl?

¿Cómo puedo determinar la ruta al rizo que está usando el brebaje?

Usos caseros /usr/bin/curles decir, la versión que viene con Mac OS X, como puedes ver aquí.

Dicho esto, y como usted precisa, su problema probablemente esté relacionado con la versión de libcurl que está vinculada con git y usado para http:// y https://.

realizar un which git para determinar cuál es la versión que está utilizando (la mía está instalada bajo /usr/local).

Luego escanee las bibliotecas compartidas utilizadas de la siguiente manera:

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

Reemplazar /usr/local/ con el directorio de instalación que corresponde a su git.

Dado que la versión de libcurl utilizada por su git exec carece de soporte HTTPS, esto le dirá cuál es esta versión y dónde está instalada.

  • Gracias @deltheil, me tienes a mitad de camino. He actualizado la pregunta con el progreso actual.

    – BenHarold

    27 sep.

  • Definitivamente hay algo mal en alguna parte desde git está correctamente vinculado con el sistema libcurl, que tiene soporte para https. Dicho esto, deberías nunca jamás modificar los archivos de su sistema en /usr/bin, /usr/lib, et al. Te recomiendo ejecutar un brew doctor y comprueba esto Errores de clonación de Github HTTPS página.

    – Deltheil

    28 sep.


  • Alternativamente, es posible que desee instalar correctamente git a través de Homebrew con el with-brewed-curl opción para que git usos curl de la cerveza que depende de darwinssl para soporte SSL.

    – Deltheil

    28 sep.


  • corrí brew doctor y enumeró un montón de archivos que se instalaron pero no brewed o lo que sea… Los eliminé todos excepto algunos archivos de configuración de PHP5 que sé que no son ningún problema, ¡y funcionó! Muchas gracias por su ayuda.

    – BenHarold

    30 sep.

¿Como habilito la compatibilidad con https en libcurl
divij_o

Esto funcionó para mí:

Vuelva a instalar curl e instálelo usando los siguientes comandos (después de desempaquetarlo):

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

Cuando ejecute el comando “curl –version”, notará que el protocolo https ahora está presente en “protocolos”.

Un sitio útil si tiene problemas de rizo: https://curl.haxx.se/docs/install.html

Tuve este problema en OSX. El problema eran los archivos curl y curl.config duplicados dentro de usr/local/bin que entraban en conflicto con los mismos dos archivos en usr/bin. Eliminé el primer conjunto en local/bin y Terminal funcionó después de eso.

.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad