Então eu construo o openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Eu construo onda
./configure --with-ssl
make
make install
O OpenSSL parece instalado corretamente:
openssl version
OpenSSL 1.0.1g 7 Apr 2014
no entanto, o curl usa a versão antiga do openssl (1.0.1f em vez 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
como fazer curl usar nova versão?
Eu quero experimentar as versões mais recentes, porque estou lutando com um bug estranho no openssl / curl # 1 # 2
Edit: Eu também tentei ./configure --with-ssl=/usr/local/ssl/include/openssl
, sem sucesso
Edit2: Até agora eu também tentei:
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
sem sucesso...
configure: error: OpenSSL libs and/or directories were not found where specified!
Por favor, veja minha edição - não há erro,--with-ssl=/usr/local/ssl/include/openssl
mas o antigo openssl é usado. segunda opção configura onda sem HTTPSopenssl.pc
algum lugar, você precisa apontarPKG_CONFIG_PATH
para o diretório em que esse arquivo está (e verifique se vocêpkg-config
instalou, é claro).--with-ssl
não há HTTPS, com--with-ssl
ele gera erro #configure: error: OpenSSL libs and/or directories were not found where specified!
/usr/local/ssl
O que eu descobri, quando estava fazendo o mesmo exercício, é que o curl simplesmente não pode trabalhar com bibliotecas estáticas openssl. Ele estava sempre procurando por dinâmica, não importa o que eu estivesse fazendo, então, eventualmente, fiz três coisas que funcionaram para mim
O último comando com o sinalizador -V mostrará a versão openssl usada pelo curl. Adicionei / usr / local / lib ao LD_LIBRARY_PATH para garantir que o curl use a versão correta do libcurl.
fonte
LD_LIBRARY_PATH
que eu adicionei ao bash_profile. Fiz algo parecido, mas em vez da primeira linha, useiexport CFLAGS=-fPIC; ./config shared
(não o compartilhamento-ativado). Para curl, usei--with-ssl=/usr/local/ssl
embora o caminho arg possa ter sido redundante.É tudo o que eu precisava para criar o curl 7.43 no ubuntu 15.04
fonte
Este foi um caminho longo e árduo para mim. Horas e horas (você sabe como é). Aqui está o que eu encontrei:
Para o Ubuntu 12.04 / 14.04, você precisa instalar manualmente o openssl e o curl
Instale manualmente o openssl 1.0.2g:
SE VOCÊ QUER NGHTTP2 (opcional / recomendado):
Instale manualmente o curl:
Etapas finais
Agora que você terminou, tente
$ curl --version
e veja a versão correta do openssl lá. Especificamente openssl> = 1.0.2g (e nghttp2 se você optou por isso)citações: curl opennssl
fonte
Depois de algumas horas, consegui ativar o https com libcurl 7.38 no ubuntu 15.05
fonte
Consegui compilar curl usando bibliotecas estáticas OpenSSL. Esta é a versão tl; dr:
OpenSSL
ondulação
A
LIBS="-ldl"
parte é essencial.fonte
Compilar o openssl, o uso padrão configure apenas gera a biblioteca estática ; portanto, se você deseja usar a biblioteca estática em curl, pode fazer o seguinte:
LIBS="-ldl -lpthread" ./configure --disable-shared --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
Eu procurei a resposta a partir daqui .
NOTA: seguir esse caminho gera apenas uma biblioteca estática de ondulação.
fonte
Geralmente, segui a resposta de Jacksonkr, mas eu precisava de todos os itens acima mencionados juntos:
--disable-shared
é opcional, eu acho, é só precisofonte