【问题标题】:How to update RCurl and curl to the version on the host machine?如何将 RCurl 和 curl 更新到主机上的版本?
【发布时间】: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,构建并安装,但仍然不行

标签: r curl rcurl


【解决方案1】:

我运行的是 Ubuntu 18.04,当我尝试安装 Tidyerse R 包但失败时遇到了同样的问题。作为依赖项,它尝试安装 curl 4.3,尽管我已经安装了 curl 7.58.0-2ubuntu3.12。因此,只要 R 没有意识到已经安装了现有的 curl 版本,更新操作系统就无济于事。

为我解决了这个问题:sudo apt install libcurl4-openssl-dev 和 sudo apt install libssl-dev

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-03
    • 2011-08-20
    • 2022-12-19
    • 2012-12-02
    • 2019-08-01
    • 2016-11-03
    • 2016-03-06
    • 2013-07-12
    相关资源
    最近更新 更多