原文地址:http://xpython.lofter.com/post/15f5d8_563afd
pycurl编译安装(CentOS5)
前提:用yum进行curl的安装遇到依赖关系问题,
yum clean dbcache
yum clean all
yum update
仍然有依赖关系,而后进行手动编译依赖关系包。
如果yum能够直接搞定当然最好。
过程简录:
动态库的问题就不记了,各种连接。
主要两个坎:
#error "Need libcurl version 7.19.0 or greater to compile pycurl."
需要升级libcurl
查看当前版本:
# curl-config --version
libcurl 7.15.0
接下来参考http://blog.linuxhonker.com/index.php/2012/08/%E7%BC%96%E8%AF%91python%E6%8B%93%E5%B1%95pycurl%E6%8A%9Berror-command-gcc-failed-with-exit-status-1/
安装curl-7.21.4
之前安装了curl-7.30.x,爆出很多未定义符号,依赖关系:curl->libcurl->libssh2
因为curl依赖libssh2,所以curl版本越高意味着依赖越多,
之前因为这个问题折腾好久。
另外安装libcurl我使用yum,因为yum可以帮你解决libssh2依赖关系,但是libssh2也有需要解决的问题,编译安装curl-30时出现许多未定义符号就因为libssh2版本过低,遇到第二个坎:
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_knownhost_init'
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_knownhost_free'
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_knownhost_readfile'
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_knownhost_check'
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_session_hostkey'
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_knownhost_writefile'
/usr/lib/gcc/x86_64-redhat-linux/4.4.1/../../../../lib64/libcurl.so: undefined reference to `libssh2_knownhost_add'
接下来参考:
https://bugzilla.redhat.com/show_bug.cgi?id=579619
这里说的很清楚,不同版本的curl和不同版本的libssh2可能会出现这种情况,最好都是最终版本(我用curl-30有问题)。
最后我将libssh2更新到libssh2-1.4.3.tar.gz,编译安装。
步骤:
1. # yum libcurl7-7.29.0-2.ius.el5.x86_64.rpm(此处会要求安装libssh2,先安装稍后升级)2. # wget http://curl.haxx.se/download/curl-7.21.4.tar.gz
3. # cd curl-7.21.4
4. # ./configure; make; make install
5. # rpm -e libssh2
6. # cd ..; cd libssh2-1.4.3
7. # ./configure; make; make install
8. # cd ..; cd pycurl; python setup.py install
分享到:
相关推荐
在CentOS系统中,安装pycurl之前需要确保已经安装了python-devel和curl-devel。这两个开发包是pycurl在编译时所必需的依赖。CentOS系统中,可以使用yum命令进行安装: ```bash yum install python-devel curl-devel...
5. `python-devel-2.6.6-66.el6_8.x86_64.rpm`:包含了Python开发所需的头文件和库,如果需要重新编译Python相关模块,这将非常有用。 6. `yum-utils-1.1.30-41.el6.noarch.rpm`:`Yum`的工具集,包含了一些辅助命令...
在给定的压缩包文件中,包含了用于在CentOS 6.5上安装或重新安装这些组件的RPM(Red Hat Package Manager)包。以下是这些文件的详细介绍和相关知识点: 1. **python-libs-2.6.6-51.el6.x86_64.rpm**:这是Python...
`yum-3.2.29-40.el6.centos.noarch.rpm`是`yum`的主要组件,它负责处理软件包的安装、升级和删除。`yum-plugin-fastestmirror-1.1.30-14.el6.noarch.rpm`插件则加速了镜像源的选择过程,通过比较各个镜像源的速度,...
尽管系统已经安装了curl,但安装PyCurl时仍然报错,因为编译PyCurl需要`curl-config`工具,这个工具是libcurl开发包的一部分。 解决“Could not run curl-config”错误的步骤如下: 1. **更新系统包列表**: 首先...
2. **python-devel-2.7.5-76.el7.x86_64.rpm**:用于开发Python应用程序,包含头文件和其他开发工具,例如编译Python扩展模块。 3. **python-urlgrabber-3.10-9.el7.noarch.rpm**:一个用于下载URL的库,可能被`yum`...
- **重新编译pycurl**:在某些情况下,可能需要手动下载源代码重新编译`pycurl`,确保其与当前系统环境下的依赖库版本兼容。 - **升级Python环境**:考虑将系统中的Python版本统一升级至较新版本,以减少版本不一致...
4. `python-devel-2.7.5-89.el7.x86_64.rpm`:这个包包含了开发Python程序所需的头文件和库,对于编译与Python相关的软件(如`yum`)是必要的。 5. `python-urlgrabber-3.10-10.el7.noarch.rpm`:这是一个Python库...
1. `yum-3.2.29-81.el6.centos.noarch.rpm`:Yum的核心包,包含了用于安装、更新和删除RPM软件包的主要功能。 2. `yum-utils-1.1.30-41.el6.noarch.rpm`:提供了一些Yum的实用工具,如`package-cleanup`和`...