Como corrigir “referência indefinida para 'SSLv3_client_method'” durante a instalação personalizada do cURL

0

Eu trabalho em um projeto que usa muito o cURL. Recentemente, adicionamos um novo recurso para permitir chamadas SFTP em nossa API.

SFTP está desativado por padrão em cURL, então tentei pesquisar como ativá-lo. Eu descobri que resposta que me ajudou, mas durante o processo de construção Eu recebi um erro sobre SSLv3_client_method reference.

eu corri:

sudo apt-get install build-essential debhelper libssh2-1-dev
sudo apt-get source libcurl3
sudo apt-get build-dep libcurl3

cd curl-*/debian

vim rules #Append "--with-libssh2"

cd ..
sudo dpkg-buildpackage
cd ..

sudo dpkg -i curl_xxxxx.deb
sudo dpkg -i libcurl3_xxxx.deb
sudo dpkg -i libcurl3-gnutls_xxxx.deb

Após a atualização, meu arquivo "rules" contém:

cd debian/build && dh_auto_configure ${CONFIGURE_ARGS}          \
    --with-ca-path=/etc/ssl/certs --with-libssh2
cd debian/build-gnutls &&  dh_auto_configure ${CONFIGURE_ARGS}  \
    --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
    --without-ssl --with-gnutls --with-libssh2
cd debian/build-nss && dh_auto_configure ${CONFIGURE_ARGS}      \
    --with-ca-bundle=/etc/ssl/certs/ca-certificates.crt     \
    --without-ssl --with-nss --with-libssh2

Depois recebi o erro:

../lib/.libs/libcurl.so: undefined reference to 'SSLv3_client_method'
collect2: error: ld returned 1 exit status
make[4]: *** [curl] Error 1
make[4]: Leaving directory '/home/bee4/curl-7.35.0/debian/build/src'
make[3]: *** [all] Error 2
make[3]: Leaving directory '/home/bee4/curl-7.35.0/debian/build/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/bee4/curl-7.35.0/debian/build'
dh_auto_build: make -j1 returned exit code 2
make[1]: *** [override_dh_auto_build] Error 2
make[1]: Leaving directory '/home/bee4/curl-7.35.0'
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2

Eu uso o Ubuntu 14.04 em um servidor OVH. Talvez eu esteja fazendo algo errado? Também é o caminho certo para habilitar o suporte a SFTP através da extensão cURL do PHP (primeiro construa a versão correta do cURL e instale a extensão do PHP).

    
por shulard 10.12.2015 / 09:06

1 resposta

1

Eu finalmente recebo este erro!

Para isso, precisei criar uma versão libssh2 e criar uma versão curl que usasse isso. Talvez seja um problema com o pacote curl 7.35.0 no Ubuntu 14.04 (porque eu usei um 7.46.0 durante a correção).

Então baixei um pacote libssh2 source e o construí:

./configure
make
make install

E eu criei minha instância curl para usar este libssh2 :

./configure --with-libssh2=/usr/local --disable-shared
make
make install

Com isso eu tenho uma instância operacional de curl 7.46 (o último estável) que também é capaz de usar o SFTP & amp; Protocolos SCP.

Eu precisava usar o sinal --disable-shared para forçar uma nova compilação de diferentes libs. Sem isso, o SFTP / SCP não está habilitado ... Talvez alguém possa me dar alguns detalhes aqui ...

Não há mais erros sobre a falta do SSLv3_client_method , está tudo bem!

    
por shulard 11.12.2015 / 16:18