Как собрать curl с последней версией openssl?

Как собрать curl с последней версией openssl?

Итак, я собираю 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, безуспешно

Редактирование 2: Пока что я также попробовал:

  • 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

безуспешно...

решение1

Вам необходимо указать каталог, в котором установлен OpenSSL (ваша символическая ссылка не является ни необходимой, ни достаточной)

./configure --with-ssl=/usr/local/ssl

EDIT: В качестве альтернативы вы можете установить PKG_CONFIG_PATHпеременную окружения (как предложено ./configure --help):

PKG_CONFIG_PATH=/usr/local/ssl/lib/pkgconfig ./configure

решение2

sudo apt-get install libssl-dev
./configure --prefix=/usr --libdir=/usr/lib/x86_64-linux-gnu
sudo make
sudo make install

Все, что мне нужно для сборки curl 7.43 на Ubuntu 15.04?

решение3

Что я обнаружил, когда я делал то же самое упражнение, так это то, что curl просто не может работать со статическими библиотеками openssl. Он всегда искал динамические, независимо от того, что я делал, поэтому в конце концов я сделал три вещи, которые сработали для меня

Configured openssl with enable-shared: ./config enable-shared
Configured curl with openssl: ./configure --with-ssl
Used LD_LIBRARY_PATH: LD_LIBRARY_PATH=/usr/local/lib:/usr/local/ssl/lib /usr/local/bin/curl -V

Последняя команда с флагом -V покажет версию openssl, используемую curl. Я добавил /usr/local/lib в LD_LIBRARY_PATH, чтобы убедиться, что curl использует правильную версию libcurl.

решение4

./configure --with-ssl=/usr/lib/ssl --libdir=/usr/lib/x86_64-linux-gnu
sudo make
sudo make install

После нескольких часов мучений мне удалось включить https с помощью libcurl 7.38 в Ubuntu 15.05

Связанный контент