Also baue ich openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Ich baue Locken
./configure --with-ssl
make
make install
OpenSSL sieht richtig installiert aus:
openssl version
OpenSSL 1.0.1g 7 Apr 2014
Allerdings verwendet curl die 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 macht man Curl mit neuer Version?
Ich möchte die neuesten Versionen testen, da ich mit einem seltsamen OpenSL / CurL-Bug # 1 # 2 kämpfe
Edit: Ich habe es 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...
configure: error: OpenSSL libs and/or directories were not found where specified!
Bitte sehen Sie meine Bearbeitung - es gibt keinen Fehler mit,--with-ssl=/usr/local/ssl/include/openssl
aber alte openssl wird verwendet. zweite Option konfiguriert Curl ohne HTTPSopenssl.pc
irgendwo ablegen undPKG_CONFIG_PATH
auf das Verzeichnis verweisen, in dem sich diese Datei befindet (und sicherstellen, dass Sie habenpkg-config
natürlich installiert).--with-ssl
gibt es kein HTTPS, mit dem--with-ssl
es Fehler wirftconfigure: error: OpenSSL libs and/or directories were not found where specified!
/usr/local/ssl
Als ich die gleiche Übung durchlief, stellte ich fest, dass Curl mit statischen OpenSL-Bibliotheken einfach nicht funktionieren kann. Es war immer auf der Suche nach Dynamik, egal was ich tat, also tat ich schließlich drei Dinge, die für mich funktionierten
Letzterer Befehl mit dem Flag -V zeigt die von curl verwendete Version von openssl an. Ich habe / usr / local / lib zu LD_LIBRARY_PATH hinzugefügt, um sicherzustellen, dass curl die richtige libcurl-Version verwendet.
quelle
LD_LIBRARY_PATH
was ich bash_profile hinzugefügt habe. Ich habe etwas Ähnliches gemacht, aber anstelle der ersten Zeile habe ichexport CFLAGS=-fPIC; ./config shared
(nicht enable-shared) verwendet. Für Curl habe ich verwendet,--with-ssl=/usr/local/ssl
obwohl der Pfad arg redundant gewesen sein kann.Ist alles was ich brauche um Curl 7.43 auf Ubuntu 15.04 zu bauen
quelle
Dies war ein langer und beschwerlicher Weg für mich. Stunden und Stunden (Sie wissen, wie es ist). Folgendes habe ich gefunden:
Für Ubuntu 12.04 / 14.04 müssen Sie sowohl openssl als auch curl manuell installieren
Installieren Sie openssl 1.0.2g manuell:
WENN SIE NGHTTP2 WOLLEN (optional / empfohlen):
Manuelles Installieren von curl:
Letzte Schritte
Nun, da Sie fertig sind, versuchen Sie
$ curl --version
, sicherzustellen, dass Sie die richtige Version von openssl dort sehen. Speziell openssl> = 1.0.2g (und nghttp2, wenn Sie sich dafür entschieden haben)Zitate: curl opennssl
quelle
Nach einigen Stunden habe ich es geschafft, https mit libcurl 7.38 in Ubuntu 15.05 zu aktivieren
quelle
Ich habe es geschafft, Curl mit statischen OpenSSL-Bibliotheken zu kompilieren. Dies ist die tl; dr-Version:
OpenSSL
locken
Das
LIBS="-ldl"
Teil ist wesentlich.quelle
Das Kompilieren von openssl use default configure generiert nur statische Bibliotheken . Wenn Sie also statische Bibliotheken in curl verwenden möchten, können Sie dies folgendermaßen tun:
LIBS="-ldl -lpthread" ./configure --disable-shared --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
Ich habe die Antwort von hier gesucht .
HINWEIS: Wenn Sie auf diese Weise vorgehen, wird nur eine statische Curl-Bibliothek erstellt.
quelle
Ich folgte im Allgemeinen Jacksonkrs Antwort, aber ich brauchte alle oben genannten Punkte zusammen:
--disable-shared
ist optional, ich denke, es ist nur ich brauche esquelle