linux下curl的安装
以发表日前发布的最新版7.57.0示例。
安装编译工具
1 | sudo apt-get install git g++ make binutils autoconf automake autotools-dev libtool pkg-config \\ |
至此,curl正常情况下应该安装完毕。可以输入
1 | curl --version |
查看详情。如果输出显示如下例所示即为成功:
1 | curl 7.57.0 (i686-pc-linux-gnu) libcurl/7.57.0 LibreSSL/2.5.4 zlib/1.2.8 libssh2/1.4.3 nghttp2/1.29.0 |
不过笔者一开始显示的却是这样子:
1 | curl 7.57.0 (i686-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3 |
有没有发现画风不对?问题就出在libcurl的版本上(也有同学是curl出的问题)。而且输入
1 | curl --http2 -I https://nghttp2.org |
检测会出现如下问题。
1 | curl: (48) An unknown option was passed in to libcurl |
根据搜索结果及自身实践,这是系统内置curl与用户安装curl共存导致的问题,可以按照下面办法解决:
(1)curl版本有误
检查/usr/bin和/usr/local/bin目录是否有多个版本的curl。
# 提示:可以使用下面的命令全盘检索文件。
1 | locate -r <FileName> # <FileName>是你要检索的文件(夹)名称 |
然后删除多余的curl(一般删除系统内置的版本,先根据文件日期等信息进行判断,一般情况下编译安装的版本为当前日期)。
如果删除后报错,用ln -s命令把新安装curl的位置链接过去。
(2)libcurl版本有误
检查/usr/lib和/usr/local/lib目录是否有多个版本的curl。
1 | locate -r /curl$ |
笔者的系统内置libcurl为/usr/lib/i386-linux-gnu/libcurl.so.4。为了避免麻烦,故直接删除并把新文件链接过去。
1 | rm /usr/lib/i386-linux-gnu/libcurlso.4 |
完成后检查,问题解决。测试得到如下回复:
1 | curl --http2 -I https://nghttp2.org |
提示:版本有误的问题,可能需要根据系统实际情况进行操作,不建议直接照搬本文讲述的过程。
对于安装curl后系统内置cmake报错的问题,请卸载内置cmake,并编译安装新版本即可(不要通过apt-get安装)。
Ubuntu版本:14.04 x86