【问题标题】:How to compile curl with latest openssl (1.0.2) Debian如何使用最新的 openssl (1.0.2) Debian 编译 curl
【发布时间】:2016-10-10 00:02:26
【问题描述】:

我正在尝试在 debian jessie 机器上使用 openssl 1.0.2 编译 curl。

$ which openssl
/usr/bin/openssl
$ openssl version
OpenSSL 1.0.2h  3 May 2016
$ openssl version -d
OPENSSLDIR: "/usr/lib/ssl"

我尝试了很多不同的方式配置 curl,例如

$ ./configure --with-ssl=/usr/lib/ssl
$ ./configure --with-ssl=/usr/bin/openssl // Makes no sense anyways

现在,无论我做什么,它都无法使用正确的 openssl 版本进行编译:

$ curl --version
curl 7.49.1 (x86_64-pc-linux-gnu) libcurl/7.49.1 OpenSSL/1.0.1t [...]

如何确定要设置的路径? 是不是我必须使用“共享”选项编译 OpenSSL?我通过 apt-get 安装了 openssl。

更新

所以我最终所做的是将 Debian Stretch Packages 添加到 /etc/apt/sources.list 并安装 OpenSSL 1.0.2,然后是 libssl1.0.2,最后是 libcurl4-openssl-dev。

这样做之后,curl -V 并没有表示任何 OpenSSL,但即使支持 ALPN,它也能正常工作,这是我最初做这一切的原因。

感谢您的帮助。

【问题讨论】:

  • "... 在 debian jessie 机器上使用 openssl 1.0.2..." - 你是如何配置 OpenSSL 的?你用什么--openssldir?选项是否包括shared?另请参阅 OpenSSL wiki 上的 Compilation and Installation
  • 我使用 apt-get install openssl=1.0.2h-1 安装了 OpenSSL 1.0.2。为此,您需要将 Debian Stretch Packackes 添加到您的 /etc/apt/sources.list:我使用了以下内容:deb http://ftp.us.debian.org/debian/ stretch maindeb-src http://ftp.us.debian.org/debian/ stretch main 请注意,风险自负!但这对我来说效果很好。我保留了 OpenSSL 配置默认值。

标签: curl openssl debian


【解决方案1】:

curl 的配置选项 --with-ssl 需要您安装 OpenSSL 的安装路径的前缀。

如果您确实在 /usr/lib/ssl 中安装了 OpenSSL 1.0.2,那么 ./configure --with-ssl=/usr/lib/ssl 是正确的行。

使用自定义 OpenSSL 自定义 curl

如果您从源代码构建 openssl,例如,您可以这样做:

./config --prefix=/home/user/build-openssl
make
make install

然后构建 curl 以使用此自定义 OpenSSL 构建:

./configure --with-ssl=/home/user/build-openssl

如果配置失败

配置完成后,您可以使用您喜欢的编辑器加载config.log,并检查 OpenSSL 检查,看看它在尝试查找时究竟是什么失败了。

【讨论】:

  • 这并不能直接回答我的问题,因为我的机器上已经有 Openssl 1.0.2。但无论如何我都试过了,它没有用。 config.log 中的错误:/usr/bin/ld: /home/admin/build-openssl/lib/libcrypto.a(dso_dlfcn.o): undefined reference to symbol 'dlclose@@GLIBC_2.2.5'
  • 您的问题没有提供有关现有 1.0.2 安装的足够详细信息,尽管您的 curl 调用清楚地表明它使用 1.0.1。
  • 是的,我同意!但我不知道如何了解更多信息。文件被传播,/usr/bin, /usr/lib/ssl, ... 为什么 curl 选择另一个 OpenSSL 版本而不是失败?研究了2天,快要放弃了。
  • 嗯,你是怎么安装1.0.2版本的,在哪里安装的?
  • 它现在并没有变得更加混乱。 debian 上的 curl 默认使用 gnutls afaik 并且支持 ALPN...
猜你喜欢
  • 1970-01-01
  • 2012-08-09
  • 1970-01-01
  • 2018-04-09
  • 2017-05-13
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多