¿Cómo construir curl con la última versión de openssl?

¿Cómo construir curl con la última versión de openssl?

Entonces construyo openssl

./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`

yo 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 la nueva versión?

Quiero probar las versiones más recientes porque estoy luchando con un error extraño 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 probé:

  • 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...

Respuesta1

Debe especificar el directorio donde está instalado OpenSSL (su enlace simbólico no es necesario ni suficiente)

./configure --with-ssl=/usr/local/ssl

EDITAR: Alternativamente, puede configurar su PKG_CONFIG_PATHvariable de entorno (como lo sugiere ./configure --help):

PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure

Respuesta2

sudo apt-get install libssl-dev
./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
sudo make
sudo make install

Es todo lo que necesitaba para compilar curl 7.43 en ubuntu 15.04

Respuesta3

Lo que descubrí, cuando estaba haciendo el mismo ejercicio, es que curl simplemente no puede funcionar con bibliotecas estáticas de openssl. Siempre estaba buscando dinámica, sin importar lo que estuviera haciendo, así que finalmente hice tres cosas que funcionaron para mí.

Configured openssl with enable-shared: ./config enable-shared
Configured curl with openssl: ./configure --with-ssl
Used LD_LIBRARY_PATH: LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib /usr/local/bin/curl -V

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 use la versión correcta de libcurl.

Respuesta4

./configure --with-ssl=/usr/lib/ssl --libdir=/usr/lib/x86_64-linux-gnu
sudo make
sudo make install

Después de luchar algunas horas logré habilitar https con libcurl 7.38 en ubuntu 15.05

información relacionada