Liburl 未更新

car*_*mas 6 linux installation ubuntu curl libcurl

我使用的是 Ubuntu 14.04,需要curl 版本> 7.40,因此我按照一些步骤安装了最新的curl 版本(7.48)

作为根用户

wget http://curl.haxx.se/download/curl-7.48.0.tar.gz
apt-get install libtool
apt-get install make
Run Code Online (Sandbox Code Playgroud)

提取文件

tar -xvf curl-7.48.0.tar.gz
Run Code Online (Sandbox Code Playgroud)

然后在提取的文件夹中:

./buildconf
./configure
make
make install
Run Code Online (Sandbox Code Playgroud)

更新了二进制文件

mv /usr/bin/curl /usr/bin/curl.bak
cp /usr/local/bin/curl /usr/bin/curl
Run Code Online (Sandbox Code Playgroud)

然后重新启动机器。我可以看到新的curl版本,但libcurl库没有更新,仍然是7.35

根:〜#curl -Vcurl
 7.48.0(x86_64-unknown-linux-gnu)libcurl / 7.35.0, OpenSSL / 1.0.1f zlib / 1.2.8 libidn / 1.28 librtmp / 2.3
协议: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
功能: 异步 DNS IDN IPv6 大文件 NTLM NTLM_WB SSL libz TLS-SRP

我已经检查了文件 /etc/ld.so.conf 但它没有给我太多信息

include /etc/ld.so.conf.d/*.conf
Run Code Online (Sandbox Code Playgroud)

还有文件夹:

root:/etc/ld.so.conf.d# ll
total 52
drwxr-xr-x   2 root root  4096 Feb 18 14:17 ./
drwxr-xr-x 167 root root 12288 Apr 26 14:30 ../
-rwxr-xr-x   1 root root    26 Nov 21  2007 agnclient-compat.conf*
-rw-r--r--   1 root root    14 Aug 24  2009 agns.conf
-rw-rw-r--   1 root root    38 Mar 24  2014 fakeroot-x86_64-linux-gnu.conf
lrwxrwxrwx   1 root root    40 Feb  5 16:42 i386-linux-gnu_GL.conf -> /etc/alternatives/i386-linux-gnu_gl_conf
-rw-r--r--   1 root root   108 Apr 12  2014 i686-linux-gnu.conf
-rw-r--r--   1 root root    44 Aug  9  2009 libc.conf
-rw-r--r--   1 root root    33 Aug  1  2014 symav.conf
-rw-r--r--   1 root root    68 Apr 12  2014 x86_64-linux-gnu.conf
lrwxrwxrwx   1 root root    43 Feb  3 12:05 x86_64-linux-gnu_EGL.conf -> /etc/alternatives/x86_64-linux-gnu_egl_conf
lrwxrwxrwx   1 root root    42 Feb  3 12:05 x86_64-linux-gnu_GL.conf -> /etc/alternatives/x86_64-linux-gnu_gl_conf
-rw-r--r--   1 root root    56 Apr 12  2014 zz_i386-biarch-compat.conf
-rw-r--r--   1 root root    58 Apr 12  2014 zz_x32-biarch-compat.conf
root:/etc/ld.so.conf.d# 
Run Code Online (Sandbox Code Playgroud)

更新

浏览每个conf文件我发现了3个地方有libcurl库

在/usr/lib/agnclient-compat下(agnclient 是 AT&T VPN 代理客户端)

lrwxrwxrwx   1 root root      16 Feb  3 12:11 libcurl.so.3 -> libcurl.so.3.0.0
-rw-r--r--   1 root root  248028 Nov 21  2007 libcurl.so.3.0.0
Run Code Online (Sandbox Code Playgroud)

在/usr/local/lib

lrwxrwxrwx  1 root root     16 Apr 25 12:34 libcurl.so -> libcurl.so.4.4.0*
lrwxrwxrwx  1 root root     16 Apr 25 12:34 libcurl.so.4 -> libcurl.so.4.4.0*
-rwxr-xr-x  1 root root 376889 Apr 25 12:34 libcurl.so.4.4.0*
Run Code Online (Sandbox Code Playgroud)

并在/usr/lib/x86_64-linux-gnu下

lrwxrwxrwx   1 root root       19 Jan 26 20:05 libcurl-gnutls.so.3 -> libcurl-gnutls.so.4
lrwxrwxrwx   1 root root       23 Jan 26 20:05 libcurl-gnutls.so.4 -> libcurl-gnutls.so.4.3.0
-rw-r--r--   1 root root   401512 Jan 26 20:05 libcurl-gnutls.so.4.3.0
lrwxrwxrwx   1 root root       12 Jan 26 20:05 libcurl.so.3 -> libcurl.so.4
lrwxrwxrwx   1 root root       16 Jan 26 20:05 libcurl.so.4 -> libcurl.so.4.3.0
-rw-r--r--   1 root root   422696 Jan 26 20:05 libcurl.so.4.3.0
Run Code Online (Sandbox Code Playgroud)

因此,我昨天安装的最新库位于 /usr/local/lib 下,但它从 VPN 客户端加载该库。

car*_*mas 5

更新后很容易修复。

我修改了文件/etc/ld.so.conf

include /usr/local/lib
include /etc/ld.so.conf.d/*.conf
Run Code Online (Sandbox Code Playgroud)

然后执行

ldconfig -v
Run Code Online (Sandbox Code Playgroud)

现在我有了我需要的东西

root@carlo-ThinkPad-W541:~#curl -Vcurl
 7.48.0 (x86_64-unknown-linux-gnu) libcurl/7.48.0 zlib/1.2.8
协议: dict file ftp gopher http imap pop3 rtsp smtp telnet tftp
特性: IPv6 大文件 libz UnixSockets