【发布时间】:2019-01-05 09:38:23
【问题描述】:
最初我尝试使用devtools::install_github("EdwinTh/padr"),但出现以下错误:
Error in curl::new_handle() : An unknown option was passed in to libcurl
一段时间后,我发现devtools 使用了curl/RCurl,它在主机上包装了当前版本的curl。
curl的宿主机(Ubuntu 14.04.5 LTS)机器版本为:
1$ curl -V
curl 7.61.0 (x86_64-pc-linux-gnu) libcurl/7.61.0 OpenSSL/1.0.1f zlib/1.2.8 libssh2/1.8.0 librtmp/2.3
curl所在的位置:
12$ which curl
/usr/local/bin/curl
直接从终端使用curl::new_handle()时工作正常
相比之下,curl/RCurl 版本是:
> RCurl::curlVersion()
$age
[1] 3
$version
[1] "7.35.0"`
我假设这可能是根本问题。我现在的问题是如何让Rscurl/RCurl指向对应的版本。
我已经尝试了到目前为止我在 R 上找到的关于该主题的所有内容,例如:
install.packages("RCurl", type="source") 和
install.packages("curl", type="source")
以及在主机上调整curl:
wget https://libssh2.org/download/libssh2-1.8.0.tar.gz
tar zxvf llibssh2-1.8.0.tar.gz
cd libssh2-1.8.0
./configure
make
sudo make install
wget http://curl.haxx.se/download/curl-7.61.0.tar.gz
tar zxvf curl-7.61.0.tar.bz2
cd curl-7.61.0
./configure --with-libssh2=/usr/local
make
sudo make install
但是对于curl/RCurl 7.35.0 而不是7.61.0,我总是得到相同的版本。
欣赏任何见解!
【问题讨论】:
-
对于初学者,您可以考虑不要使用已有四年历史的发行版。使用 Ubuntu 18.04,您就没有这样的问题。但简而言之:更新
libcurl*-dev包(并发症:有几个)并重新安装RCurl和/或curl。 -
嗨@DirkEddelbuettel 有一些限制阻碍升级Ubuntu。但无论如何,感谢您抽出宝贵时间发表您的意见。
libcurl*-dev已安装。所以基本上我删除了它并重新安装了sudo apt-get install libcurl4-openssl-dev以及这两个包,而行为没有任何改变。 -
如果您告诉 Ubuntu 从 14.04 开始安装,它将一遍又一遍地安装相同的软件包。这就是坚持发布的意思。从本质上讲,您的问题是找出从哪里获得 为该版本构建的更新 curl 库。和/或如何告诉 R 包如何更喜欢本地包。
-
嗯,我只是假设它与 curl /usr/bin/curl 与 /user/local/bin/curl 的路径有关。我认为 R 中的 RCurl 或 curl 指的是 /usr/bin/curl。然而在
echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/bincomes 在/usr/bin之前我安装了最新的 curl 7.61.0。运行没有错误。 -
这个问题解决了吗?同样的情况,但我也下载了 RCurl 源,解压缩,运行 ./configure,构建并安装,但仍然不行