gpt4 book ai didi

RCurl 和 Curl 在 R (ubuntu) 上给出不同版本的 Curl

转载 作者:行者123 更新时间:2023-12-04 19:07:18 32 4
gpt4 key购买 nike

我正在尝试使用 Curl 和 RCurl 包连接到 sftp 服务器以下载/上传文件。我已经设法使用 RCurl 让它工作,但由于某种原因,Curl 无法返回错误,例如:

> curl_upload("test.png", "sftp://usr:pwd@sftp.xx.xx:22/test.png")
* Protocol "sftp" not supported or disabled in libcurl
* Closing connection -1
Error in curl_fetch_memory(url, handle = h) :
Protocol "sftp" not supported or disabled in libcurl
但是,如果我使用 RCurl 它可以工作:
ftpUpload(what = "test.png",
to = "sftp://usr:pwd@sftp.xx.xx:22:22/test.png")
OK
0
如果我尝试 RCurl::curlVersion() 我得到版本 7.74.0 并支持 sftp,但如果我运行 curl::curl_version() 我得到版本 7.58.0 并且不支持 sftp。
我怀疑我安装了两个 curl 但不知道如何修复它。任何帮助表示赞赏!
理想情况下,我需要让一个包同时在 Windows 和 ubuntu 上运行,因为代码将跨平台使用。还没有弄清楚如何使用 RCurl 在 Windows 上访问 sftp,因此试图让 Curl 在 Ubuntu 上工作。
更新
我仍然无法弄清楚。我卸载了 RCurl 和 Curl 包并从源代码重新安装,现在都显示
$version
[1] "7.58.0"
正如@Dirk Eddelbuettel 所说,这是因为 libcurl-*-dev是旧版本。如果有人对如何安装更新的 libcurl-*-dev 有任何建议,将非常感激。
解决了
详情如下。感谢 Dirk 的指点。

最佳答案

欢迎来到 StackOverflow。您的问题遗漏了一些重要细节:
第一:你运行的是哪个版本的 Ubuntu?这很重要,因为不同版本的 Ubuntu 会有不同的 R 版本,即使它仍然很重要(继续阅读)。
第二:你通常如何安装你的 CRAN 包? Ubuntu 有(取决于你运行的版本,较新的有更多)在几百到近一千之间 r-cran-*预先制作的软件包。他们的编译日期可能会决定哪个 libcurl使用了版本。
第三:您使用 Rutter PPA 吗?这是上一个问题的推论。您可以获得大约 5000 更多 r-cran-*感谢迈克尔的工作。见README更多。
第四:有关系的可以总是 从源代码安装确保通用的 libcurl。你当然可以直接从 CRAN 重新安装一个包,强制使用 libcurl-*-dev你目前有。
例子:

$ Rscript -e 'print(c(RCurl::curlVersion()$version, 
+ curl::curl_version()$version))'
[1] "7.68.0" "7.68.0"
$
在我倾向于总是从源代码安装的这台机器上,它们显然都在同一天更新(当我更新到 R 4.0.* 时,可能):
$ ls -ld /usr/local/lib/R/site-library/{RCurl,curl}
drwxrwxr-x 8 edd staff 4096 Apr 26 2020 /usr/local/lib/R/site-library/curl
drwxrwxr-x 14 edd staff 4096 Apr 26 2020 /usr/local/lib/R/site-library/RCurl
$

关于RCurl 和 Curl 在 R (ubuntu) 上给出不同版本的 Curl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65859381/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com