r - Errors during installation of R dependencies after new R installation on Ubuntu 18.04
问题描述
System: Ubuntu 18.04
Original error that showed up that prompted me to try to reinstall R and dependencies:
Error: package or namespace load failed for 'lubridate' in dyn.load(file, DLLpath = DLLpath, ...): unable to load shared object '/usr/local/lib/R/site-library/stringi/libs/stringi.so': libicui18n.so.57: cannot open shared object file: No such file or directory
Steps to reproduce:
- Install R:
apt install r-base
- Try to install R dependencies:
install.packages(c("dplyr", "lubridate", "qcc", "forecast"), repos='http://cran.us.r-project.org')
Error that displays during installation:
/usr/local/lib/R/site-library/BH/include/boost/smart_ptr/scoped_ptr.hpp:74:31: warning: 'template<class> class std::auto_ptr' is deprecated
Error that displays after installation:
The downloaded source packages are in
'/tmp/RtmpnulsEe/downloaded_packages'
Warning message:
In install.packages(c("dplyr", "lubridate", "qcc", "forecast", "stringi"), :
installation of package 'forecast' had non-zero exit status
After purging and reinstalling r-base
and R dependencies, I'm seeing this...(already checked that libcurl4-openssl-dev
was latest version):
Error: package or namespace load failed for 'forecast' in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/usr/local/lib/R/site-library/curl/libs/curl.so':
/usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by /usr/local/lib/R/site-library/curl/libs/curl.so)
Update: Apparently it's something in the forecast
library, because I reproduced that error like this:
$ R
> library(forecast)
Error: package or namespace load failed for 'forecast' in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '/usr/local/lib/R/site-library/curl/libs/curl.so':
/usr/lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by /usr/local/lib/R/site-library/curl/libs/curl.so)
解决方案
您最初的问题是它stringi
是针对已更改的发行包版本构建的。libicu
由于此分发包不知道您lubridate
在 /usr/local 中,因此它会更改并破坏内容。
有很多方法可以解决这个问题。最简单(也是最窄的)是确保您已libicu-dev
安装。然后您可以重新安装(即:rebuild stringi
),然后lubridate
加载。
其余的你只是有点疯狂地将所有可移动的东西扔到墙上。您需要花一点时间来意识到您可以将所有这些安装为二进制文件(即来自启动板上的 Michael Rutter PPA),也可以从源代码安装。你的来电。我有一个较旧的答案来解释这里的区别(以及这里的其他后续行动),我们也在r-sig-debian
列表中提供帮助。
但简而言之:阅读CRAN 的自述文件(尤其是前几段)并考虑 PPA。
推荐阅读
- docker - Pod 每次重启都更快
- r - 如何将 JSON 数据转换为 R
- android - Android-证书固定与公钥固定
- c# - OpenTracing 不使用 Serilog 发送日志
- php - 本地 ubuntu 设备如何监听部署在远程服务器上的 Laravel 应用程序的事件
- batch-file - 如何创建一个批处理文件,将另一个批处理文件放在启动文件夹中
- rust - 我可以循环使用 itertools::PutBack::put_back 吗?
- reactive-cocoa - 将 ViewModelOwners 与 ReactiveCocoa 一起使用时如何处理 DisposeBag
- html - 如何仅使用 css 选择具有特定属性的元素?
- ios - 如何更改位置 UIDatePicker?