所以我建立了 openssl
./config
make
sudo make install
sudo ln -sf /usr/local/ssl/bin/openssl `which openssl`
我建立 curl
./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
编辑:或者,您可以设置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
我在 ubuntu 15.04 上构建 curl 7.43 所需的一切
答案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 标志的命令将显示 curl 使用的 openssl 版本。我已将 /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
经过几个小时的努力,我设法在 ubuntu 15.05 中使用 libcurl 7.38 启用了 https