Wie erstelle ich Curl mit dem neuesten OpenSSL?

Wie erstelle ich Curl mit dem neuesten OpenSSL?

Also baue ich OpenSSL

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

Ich baue Curl

./configure --with-ssl 
make
make install

OpenSSL scheint korrekt installiert zu sein:

openssl version
OpenSSL 1.0.1g 7 Apr 2014

Curl verwendet jedoch eine alte OpenSSL-Version (1.0.1f statt 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 

wie bringt man Curl dazu, die neue Version zu verwenden?

Ich möchte die neusten Versionen ausprobieren, da ich mit einem seltsamen OpenSSL/Curl-Fehler kämpfe#1 #2

Edit: Habe ich auch versucht ./configure --with-ssl=/usr/local/ssl/include/openssl, kein Erfolg

Edit2: Bisher habe ich auch versucht:

  • 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

Kein Erfolg...

Antwort1

Sie müssen das Verzeichnis angeben, in dem OpenSSL installiert ist (Ihr symbolischer Link ist weder notwendig noch ausreichend).

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

BEARBEITEN: Alternativ können Sie Ihre PKG_CONFIG_PATHUmgebungsvariable festlegen (wie von vorgeschlagen ./configure --help):

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

Antwort2

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

Ist alles, was ich brauchte, um curl 7.43 auf Ubuntu 15.04 zu erstellen

Antwort3

Was ich herausgefunden habe, als ich die gleiche Übung durchführte, ist, dass curl einfach nicht mit statischen OpenSSL-Bibliotheken arbeiten kann. Es suchte immer nach dynamischen Bibliotheken, egal was ich tat, also habe ich schließlich drei Dinge getan, die für mich funktionierten

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

Der letzte Befehl mit dem Flag -V zeigt die von curl verwendete OpenSSL-Version an. Ich habe /usr/local/lib zu LD_LIBRARY_PATH hinzugefügt, um sicherzustellen, dass curl die richtige libcurl-Version verwendet.

Antwort4

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

Nach einigen Stunden des Kampfes gelang es mir, https mit libcurl 7.38 in Ubuntu 15.05 zu aktivieren

verwandte Informationen