Je construis donc openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Je construis une boucle
./configure --with-ssl
make
make install
OpenSSL semble installé correctement:
openssl version
OpenSSL 1.0.1g 7 Apr 2014
cependant curl utilise l'ancienne version openssl (1.0.1f au lieu 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
comment faire utiliser curl nouvelle version?
Je veux essayer les dernières versions, car je me bats avec un bug étrange openssl / curl # 1 # 2
Edit: j'ai aussi essayé ./configure --with-ssl=/usr/local/ssl/include/openssl
, sans succès
Edit2: Jusqu'à présent, j'ai également essayé:
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
Sans succès...
configure: error: OpenSSL libs and/or directories were not found where specified!
S'il vous plaît voir mon édition - il n'y a pas d'erreur--with-ssl=/usr/local/ssl/include/openssl
mais l'ancien openssl est utilisé. deuxième option configure curl sans HTTPSopenssl.pc
quelque part, vous devez pointerPKG_CONFIG_PATH
vers le répertoire où se trouve ce fichier (et vous assurer vous avezpkg-config
installé, bien sûr).--with-ssl
il n'y a pas de HTTPS, avec--with-ssl
ça jette une erreurconfigure: error: OpenSSL libs and/or directories were not found where specified!
/usr/local/ssl
Est-ce tout ce dont j'avais besoin pour construire curl 7.43 sur Ubuntu 15.04
la source
curl
je ne pouvais pas le détecteropenssl
, alors j'ai fait ces étapes exacteslibssl-dev
et cela a fonctionné comme un charme!Ce que j'ai découvert, lorsque je faisais le même exercice, c'est que curl ne peut tout simplement pas fonctionner avec les bibliothèques statiques openssl. Il était toujours à la recherche de dynamique, peu importe ce que je faisais, donc finalement j'ai fait trois choses qui ont fonctionné pour moi
La dernière commande avec l'indicateur -V affichera la version openssl utilisée par curl. J'ai ajouté / usr / local / lib à LD_LIBRARY_PATH pour m'assurer que curl utilise la bonne version de libcurl.
la source
LD_LIBRARY_PATH
que j'ai ajouté à bash_profile. J'ai fait quelque chose de similaire, mais au lieu de la première ligne, j'ai utiliséexport CFLAGS=-fPIC; ./config shared
(pas activé-partagé). Pour curl, j'ai utilisé--with-ssl=/usr/local/ssl
bien que le chemin arg ait pu être redondant.Ce fut un chemin long et ardu pour moi. Heures et heures (vous savez comment c'est). Voici ce que j'ai trouvé:
Pour Ubuntu 12.04 / 14.04, vous devez installer manuellement à la fois openssl et curl
Installez manuellement openssl 1.0.2g:
SI VOUS VOULEZ NGHTTP2 (facultatif / recommandé):
Installez manuellement curl:
Étapes finales
Maintenant que vous avez terminé, essayez de
$ curl --version
vous assurer de voir la bonne version de openssl. Plus précisément openssl> = 1.0.2g (et nghttp2 si vous l'avez opté)citations: curl opennssl
la source
Après quelques heures de difficulté, j'ai réussi à activer https avec libcurl 7.38 dans Ubuntu 15.05
la source
J'ai réussi à compiler curl en utilisant des bibliothèques OpenSSL statiques. Voici la version tl; dr:
OpenSSL
boucle
La
LIBS="-ldl"
pièce est essentielle.la source
La compilation d'OpenSL à l'aide de la configuration par défaut génère uniquement une bibliothèque statique , donc, si vous souhaitez utiliser la bibliothèque statique en boucle, vous pouvez faire ceci:
LIBS="-ldl -lpthread" ./configure --disable-shared --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
J'ai cherché la réponse d' ici .
REMARQUE: suivre cette méthode génère uniquement une bibliothèque statique curl.
la source
J'ai généralement suivi la réponse de Jacksonkr, mais j'avais besoin de tout ce qui précède mentionné par d'autres ensemble:
--disable-shared
est facultatif, je suppose, c'est juste que j'en ai besoinla source