Как исправить "неопределенную ссылку на`SSLv3_client_method`"во время пользовательской установки cURL

Я работаю над проектом, который часто использует cURL. Недавно мы добавили новую функцию, позволяющую выполнять вызовы SFTP в нашем API.

SFTP по умолчанию отключен в cURL, поэтому я попытался найти способ его включения. Я нашел тот ответ, который помог мне, но во время процесса сборки я получил сообщение об ошибке SSLv3_client_method ссылка.

Я побежал:

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

После обновления мой файл "правил" содержит:

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

Тогда я получил ошибку:

../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

Я использую Ubuntu 14.04 на сервере OVH. Может я что то не так делаю? Также это правильный способ включить поддержку SFTP через расширение cURL PHP (сначала создайте правильную версию cURL, а затем установите расширение PHP).

1 ответ

Решение

Я наконец вытащил эту ошибку!

Для этого мне нужно было построить libssh2 версия и построить curl версия, которая использовала это. Возможно, это проблема связанного curl 7.35.0 в Ubuntu 14.04 (потому что я использовал 7.46.0 во время исправления).

Итак, я скачал libssh2 Исходный пакет, затем я собираю его:

./configure
make
make install

И я построил свой curl экземпляр, чтобы использовать это libssh2:

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

С этим у меня есть рабочий экземпляр curl 7.46 (последний стабильный), который также может использовать протоколы SFTP и SCP.

Мне нужно было использовать --disable-shared флаг для запуска новой компиляции разных библиотек. Без этого SFTP / SCP не включены... Может быть, кто-то может дать мне некоторые детали здесь...

Больше нет ошибок по поводу пропавших SSLv3_client_method, все отлично!

Другие вопросы по тегам