Entonces construyo openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Construyo rizo
./configure --with-ssl
make
make install
OpenSSL parece instalado correctamente:
openssl version
OpenSSL 1.0.1g 7 Apr 2014
sin embargo, curl usa la versión antigua de openssl (1.0.1f en lugar de 1.0.1g):
curl --version
curl 7.37.0 (x86_64-unknown-linux-gnu) libcurl/7.37.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 libssh2/1.4.3 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
¿Cómo hacer que curl use una nueva versión?
Quiero probar las versiones más nuevas, porque estoy luchando con un extraño error de openssl / curl # 1 # 2
Editar: también lo intenté ./configure --with-ssl=/usr/local/ssl/include/openssl
, sin éxito
Edit2: Hasta ahora también intenté:
sudo ./configure --with-ssl --with-libssl-prefix=/usr/local/ssl
./configure --with-ssl=/usr/local/ssl
PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure
PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure --with-ssl
PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure --with-ssl=/usr/local/ssl/include/openssl
sin éxito...
configure: error: OpenSSL libs and/or directories were not found where specified!
Por favor, vea mi edición, no hay ningún error con--with-ssl=/usr/local/ssl/include/openssl
pero se utiliza el antiguo openssl. segunda opción configura el rizo sin HTTPSopenssl.pc
algún lugar, debe señalarPKG_CONFIG_PATH
el directorio donde está ese archivo (y asegurarse haspkg-config
instalado, por supuesto).--with-ssl
no hay HTTPS, con--with-ssl
error de lanzamientoconfigure: error: OpenSSL libs and/or directories were not found where specified!
/usr/local/ssl
Es todo lo que necesitaba para construir curl 7.43 en ubuntu 15.04
fuente
curl
no podía detectar miopenssl
, así que hice estos pasos exactoslibssl-dev
y funcionó de maravilla.Lo que descubrí, cuando estaba haciendo el mismo ejercicio, es que curl simplemente no puede funcionar con las bibliotecas estáticas openssl. Siempre estaba buscando dinámicas, sin importar lo que estuviera haciendo, así que eventualmente hice tres cosas que me funcionaron.
El último comando con el indicador -V mostrará la versión de openssl utilizada por curl. Agregué / usr / local / lib a LD_LIBRARY_PATH para asegurarme de que curl usa la versión correcta de libcurl.
fuente
LD_LIBRARY_PATH
lo que he agregado a bash_profile. Hice algo similar, pero en lugar de la primera línea, uséexport CFLAGS=-fPIC; ./config shared
(no enable-shared). Para curl, usé--with-ssl=/usr/local/ssl
aunque la ruta arg puede haber sido redundante.Este fue un camino largo y arduo para mí. Horas y horas (ya sabes cómo es). Esto es lo que encontré:
Para Ubuntu 12.04 / 14.04 debe instalar manualmente openssl y curl
Instalar manualmente openssl 1.0.2g:
SI QUIERES NGHTTP2 (opcional / recomendado):
Instalar manualmente curl:
Pasos finales
Ahora que ha terminado, intente
$ curl --version
y asegúrese de ver la versión correcta de openssl allí. Específicamente openssl> = 1.0.2g (y nghttp2 si opta por él)citas: curl opennssl
fuente
Después de luchar durante algunas horas, logré habilitar https con libcurl 7.38 en ubuntu 15.05
fuente
Logré compilar curl usando bibliotecas estáticas de OpenSSL. Esta es la versión tl; dr:
OpenSSL
rizo
La
LIBS="-ldl"
parte es esencial.fuente
Compilar openssl use default configure solo genera una biblioteca estática , por lo tanto, si desea usar la biblioteca estática en curl, puede hacer lo siguiente:
LIBS="-ldl -lpthread" ./configure --disable-shared --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
Busqué la respuesta desde aquí .
NOTA: seguir este camino solo genera una biblioteca estática curl.
fuente
Generalmente seguí la respuesta de Jacksonkr, pero necesitaba todo lo mencionado anteriormente por otros juntos:
--disable-shared
es opcional, supongo, es solo que lo necesitofuente