我正在尝试使用RCurl库访问SFTP站点以下载运行Monterrey v12.4的MacOS上的文件。当RCurl调用curl库时,SFTP没有启用。
在OSX上使用SFTP支持curl之后,我用openssl安装了curl。我卸载了RStudio中的curl和Rcurl库。
在终端窗口中,运行'curl -v'显示sftp可用。在RStudio中,运行"system('which curl')"显示SFTP可用。
然而,当我尝试使用RCurl库通过SFTP检索文件时,我收到消息:
Error in function (type, msg, asError = TRUE) :
Protocol "sftp" not supported or disabled in libcurl
我想可能是PATH设置不正确。我在我的。renviron文件中添加了以下行。
路径=/opt/组装/opt/卷/bin:美元路径
在这个阶段,我不清楚为什么在使用RCurl库访问sftp站点上的文件时不支持sftp。
我还能做些什么来诊断为什么会发生这种情况?
我找到了一个解决方案。在邮局SFTP在OSX上支持curl
在MacOS上的curl中有启用SFTP支持的代码。
我运行了三行:
PATH <- Sys.getenv("PATH")
version <- '7.86.0'
Sys.setenv(PATH = paste0("/opt/homebrew/Cellar/curl/", version, "/bin:", PATH))
and "echo $PATH"从终端运行显示"/opt/homebrew/opt/curl/bin"在小路上。我以为这意味着使用了OpenSSL支持的curl,但事实并非如此。显然,R路径与MacOS路径不同。
下一步是将这一行添加到.Rprofile文件中,以便每次启动r时都包含它。