问题
I'm running from Ubuntu 16, using R version 3.4.1. I have dplyr
installed and can load it when either I am running from RStudio or when I sudo into R from the terminal. However, if I run R without root permission, I cannot load dplyr due to the following error:
Error: package or namespace load failed for ‘dplyr’ in dyn.load(file, DLLpath = DLLpath, ...):
unable to load shared object '<user-directory>/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs/Rcpp.so':
<user-directory>/anaconda3/lib/R/bin/exec/../../lib/../.././libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by <user-directory>/R/x86_64-pc-linux-gnu-library/3.4/Rcpp/libs/Rcpp.so)
(where above I've replaced the /home/MY_USER_NAME
dir with <user-directory>
for some mild anonymization). I've seen a couple posts that may be tangentially related, but none of those remedies worked for me.
I'm curious if the fix is something as simple as changing permissions or ownership of certain files, or if the issue is that the search for GLIBCXX_3.4.20
is directed into my anaconda3
directory (when not root?!)?
Thank you in advance for any insights!
Edit: This may be an issue from a more base level with my installation of R. Often I install packages using install.packages(...)
within RStudio, but on occasion this results in an error that is overcome by installing with install.packages(...)
after entering R as root. This was the case with both dplyr
and Rcpp
. I.e., the versions which I have just reinstalled were done so as
> sudo R
> install.packages( 'Rcpp', dependencies = T )
> install.packages( 'dplyr', dependencies = T )
回答1:
Please make your question useful and understandable by stating how you installed these packages.
They come both from Ubuntu ie sudo apt-get install r-cran-dplyr
will get a working version, and from CRAN ie install.r dplyr
will too (here using my install.r
from littler, use other wrappers to install.packages()
at your leisure).
Sometimes your underlying libraries change so my first bet would be to simply reinstall Rcpp and then dplyr.
Your reference to /home
suggests you installed from source, but as root
. That is a bad idea. There a number of other questions answered here on the site about when/where/how apt-get
may (or may not) be preferable so I don't need to repeat this.
Edit: In response to your edit:
- Never ever do
sudo R
. You want to write to/usr/local/lib/R/site-library
and for that you can 1.a) add yourself to the group owning that directory or 1.b) make it owned by your group if it is just you on that machine. - You could just do
install.packages(c("Rcpp", "dplyr"))
but you don't even need that asdplyr
depends onRcpp
. - Why not use the prebuild package? Remove what you have (ie
sudo R CMD REMOVE Rcpp
and ditto fordplyr
, then dosudo apt-get install r-cran-dplyr
来源:https://stackoverflow.com/questions/47597789/r-unable-to-load-dplyr