Поэтому я строю openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
Я строю локон
./configure --with-ssl
make
make install
OpenSSL выглядит правильно установленным:
openssl version
OpenSSL 1.0.1g 7 Apr 2014
однако curl использует старую версию openssl (1.0.1f вместо 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
как заставить curl использовать новую версию?
Я хочу попробовать новейшие версии, потому что я борюсь с какой-то странной ошибкой openssl / curl # 1 # 2
Редактировать: я тоже пытался ./configure --with-ssl=/usr/local/ssl/include/openssl
, безуспешно
Edit2: пока я тоже пробовал:
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
нет успеха ...
configure: error: OpenSSL libs and/or directories were not found where specified!
пожалуйста, посмотрите мое редактирование - нет ошибки с,--with-ssl=/usr/local/ssl/include/openssl
но используется старый openssl. второй вариант настраивает curl без HTTPSopenssl.pc
куда-то поместила файл , вам нужно указатьPKG_CONFIG_PATH
каталог, в котором находится этот файл (и убедитесь, что Выpkg-config
установили, конечно).--with-ssl
HTTPS нет, с--with-ssl
ним выкидывает ошибкуconfigure: error: OpenSSL libs and/or directories were not found where specified!
/usr/local/ssl
Это все, что мне нужно для сборки curl 7.43 на Ubuntu 15.04
источник
curl
не смог обнаружить мойopenssl
, поэтому я сделал именно эти шаги,libssl-dev
и это сработало как шарм!Когда я выполнял то же упражнение, я обнаружил, что curl просто не может работать со статическими библиотеками openssl. Он всегда искал динамику, независимо от того, что я делал, поэтому в итоге я сделал три вещи, которые мне помогли
Последняя команда с флагом -V покажет версию openssl, используемую curl. Я добавил / usr / local / lib в LD_LIBRARY_PATH, чтобы убедиться, что curl использует правильную версию libcurl.
источник
LD_LIBRARY_PATH
что я добавил в bash_profile. Я сделал нечто подобное, но вместо первой строки я использовалexport CFLAGS=-fPIC; ./config shared
(не enable-shared). Я использовал curl,--with-ssl=/usr/local/ssl
хотя аргумент path мог быть излишним.Это был долгий и трудный путь для меня. Часы и часы (вы знаете, как это). Вот что я нашел:
Для Ubuntu 12.04 / 14.04 вы должны вручную установить как openssl, так и curl
Вручную установите openssl 1.0.2g:
ЕСЛИ ВЫ ХОТИТЕ NGHTTP2 (опционально / рекомендуется):
Вручную установите curl:
Заключительные шаги
Теперь, когда вы закончите, попробуйте
$ curl --version
и убедитесь, что вы видите правильную версию openssl там. В частности, openssl> = 1.0.2g (и nghttp2, если вы выбрали)цитаты: curl opennssl
источник
После нескольких часов работы мне удалось включить https с помощью libcurl 7.38 в Ubuntu 15.05.
источник
Мне удалось скомпилировать curl, используя статические библиотеки OpenSSL. Это версия tl; dr:
OpenSSL
локон
LIBS="-ldl"
Часть имеет важное значение.источник
Компиляция openssl с использованием конфигурации по умолчанию генерирует только статическую библиотеку , поэтому, если вы хотите использовать статическую библиотеку в curl, вы можете сделать так:
LIBS="-ldl -lpthread" ./configure --disable-shared --prefix=/usr/local/curl --with-ssl=/usr/local/ssl
Я искал ответ отсюда .
ПРИМЕЧАНИЕ: следуя этому пути, генерируется только статическая библиотека curl.
источник
Я обычно следовал ответу Джексонкра, но мне нужно было все вышеупомянутое другими вместе:
--disable-shared
я думаю, это необязательно, просто мне это нужноисточник