Debian Wheezy 7安装curb gem失败,缺失哪些依赖?
问题排查与解决
问题根源是curb新版本依赖curl 7.44.0及以上才引入的CURL_SSLVERSION_MAX_DEFAULT等常量,而Debian Wheezy自带的curl 7.38.0不支持这些常量,导致编译失败。以下是具体解决方法:
方法1:降级curb到兼容旧curl的版本
Debian Wheezy的curl 7.38.0兼容curb 0.9.10及更早版本,执行命令安装:
gem install curb -v 0.9.10
如果使用Gemfile管理依赖,修改为:
gem 'curb', '~> 0.9.10'
再执行bundle install完成安装。
方法2:指定编译时的curl库(解决多库冲突)
你同时安装了gnutls和openssl版本的curl开发库,可能导致编译时链接混乱,指定使用openssl版本的curl路径:
gem install curb -- --with-curl-lib=/usr/lib/x86_64-linux-gnu --with-curl-include=/usr/include/curl
注:32位系统路径替换为/usr/lib/i386-linux-gnu
不推荐方法:升级系统curl
手动编译安装curl 7.44.0+适配新版curb,但Debian Wheezy已停止维护,升级curl可能破坏系统依赖,操作需谨慎:
- 下载curl 7.44.0源码并编译:
wget https://curl.se/download/curl-7.44.0.tar.gz tar -xzf curl-7.44.0.tar.gz cd curl-7.44.0 ./configure --prefix=/usr/local --with-openssl make && make install
- 指定新curl路径安装curb:
gem install curb -- --with-curl-dir=/usr/local
内容的提问来源于stack exchange,提问作者Rafath
相关产品推荐
相关产品推荐

