2

I have a rather interesting problem that I cannot find the answer to. I am using a RStudio Server (v. 1.4.1717), and R version 4.1.0 is installed. I try to use Projects with renv and so far it had been quite okay, even though I had problems with occasional library installations.

However, right now I keep getting this error: Error: package ‘xxx’ required by ‘yyy’ could not be found

I have tried couple of things. I tried changing .libPaths() to a new location, have a fresh installation of each library, but it didn't solve my issue. I also tried doing this inside and outside a project (so, also renv active and disabled) but I keep getting same problem. Just to give an example:

>BiocManager::install("MatrixGenerics", lib = "/media/erkin/lib")
getOption("repos")' replaces Bioconductor standard repositories, see '?repositories' for details

replacement repositories:
    CRAN: https://packagemanager.rstudio.com/all/__linux__/focal/latest

Bioconductor version 3.14 (BiocManager 1.30.18), R 4.1.0 (2021-05-18)
Installing package(s) 'MatrixGenerics'
trying URL 'https://bioconductor.org/packages/3.14/bioc/src/contrib/MatrixGenerics_1.6.0.tar.gz'
Content type 'application/x-gzip' length 28270 bytes (27 KB)
==================================================
downloaded 27 KB

* installing *source* package ‘MatrixGenerics’ ...
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
Error: package ‘matrixStats’ required by ‘MatrixGenerics’ could not be found
Execution halted
ERROR: lazy loading failed for package ‘MatrixGenerics’
* removing ‘/media/erkin/lib/MatrixGenerics’

The downloaded source packages are in
    ‘/tmp/RtmpgabWCB/downloaded_packages’
Warning message:
In install.packages(...) :
  installation of package ‘MatrixGenerics’ had non-zero exit status

I have matrixStats installed, and I can call it. If I check sessionInfo():

Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 20.04.2 LTS

Matrix products: default
BLAS/LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.8.so

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=C              LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] matrixStats_0.62.0  BiocGenerics_0.40.0

loaded via a namespace (and not attached):
[1] BiocManager_1.30.18 compiler_4.1.0      tools_4.1.0  

This is not the only package this happens with. Many of the other packages I tried to install (e.g. S4Vectors installation cannot find BiocGenerics, BiocStyle installation says no package called BiocManager) just keeps failing.

I am probably missing something, does anybody have an idea why I my R fails to find the installed packages to install new packages?

Erkin Acar
  • 53
  • 4
  • 1
    What is the output of `find.package("matrixStats")`? Is it by chance installed into a separate library path? – Kevin Ushey Jul 30 '22 at 05:17
  • Thank you so much for your reply @KevinUshey , I have for now solved the issue by installing tidyverse and dplyr with their dependencies... I am not sure how this is relevant and how it fixed the issue of not finding the library that was already installed, but somehow it works now. I will try to re-create the problem and see if `find.package()` gives me a different output than expected. – Erkin Acar Aug 04 '22 at 11:16
  • I managed to re-create the issue by using a fresh renv library, along with a clean base library (I mean, the default lib path before renv has no user installed libraries). Here is the output of `find.package("matrixStats")` : `> find.package("matrixStats") [1] "/home/ilacar/test_project/library_test/renv/library/R-4.1/x86_64-pc-linux-gnu/matrixStats" > .libPaths() [1] "/home/ilacar/test_project/library_test/renv/library/R-4.1/x86_64-pc-linux-gnu" [2] "/usr/local/lib/R/library" ` – Erkin Acar Aug 04 '22 at 11:48

1 Answers1

1

I solved the issue by removing .Rprofile.

If you have an .Rprofile file and you set the library there, using renv "confuses" the main library path. I think it ends up checking the path .Rprofile shows, even though all the other commands (.libPaths(), find.package()) show renv library path. Removing the .Rprofile removed all the issues for me.

Erkin Acar
  • 53
  • 4