Ubuntu 20.04下RStudio Workbench的curl版本报错问题咨询
解决RStudio Workbench里curl执行失败的问题
绝对别直接删/usr/local/lib下的libcurl——这个目录的库大概率是你之前手动装的其他软件依赖的,乱删容易搞崩别的程序。按下面的步骤来更稳妥:
第一步:先搞清楚两个curl到底哪个能用
先在终端里跑这几个命令,看看系统默认用的是哪个curl,以及两个路径的curl能不能正常工作:
# 查看系统默认curl的路径 which curl # 测试系统自带的curl(/usr/bin是Ubuntu默认软件安装路径) /usr/bin/curl --version # 测试/usr/local下的curl /usr/local/bin/curl --version
如果/usr/bin/curl能正常输出版本信息,那问题就明了了:RStudio偏偏调用了/usr/local那个坏的curl版本。
第二步:让RStudio用系统自带的好curl
有两种方法:
全局配置(对所有RStudio用户生效):
编辑RStudio Workbench的配置文件/etc/rstudio/rserver.conf,加一行:rsession-ld-library-path=/usr/lib/x86_64-linux-gnu保存后重启RStudio服务(
sudo systemctl restart rstudio-server)。单个项目临时生效:
在R控制台里执行这行代码,强制指定用系统的libcurl:Sys.setenv(CURL_LIBS = "/usr/lib/x86_64-linux-gnu/libcurl.so.4")重启R会话再测试。
第三步:如果非要处理/usr/local的libcurl(可选)
先搞清楚这个版本是给哪个程序用的:
# 查看/usr/local/bin/curl依赖的libcurl路径 ldd /usr/local/bin/curl | grep libcurl
如果这个curl是你之前手动编译安装的,回到当初的编译目录,跑make uninstall来卸载,这比直接删文件安全多了——手动删容易留一堆残文件,搞乱系统库路径。
最后验证
重启R会话或者RStudio Workbench,在R里执行system("curl --version"),如果能正常输出版本,问题就解决了。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

