Install R Packages in WSL
In newer versions of Windows the Windows Subsystem for Linux provides a pretty authentic Linux experience.
However, the filesystem can be weird at times.
/tmp folder is never flushed as it usually is after restarts and R sometimes fail to install packages – in particular in the very last step when the package is copied from a temporary folder to its final destination in a library folder.
Consider the complaint I got with
mv: cannot move ‘/home/robert/R/x86_64-pc-linux-gnu-library/3.6.2/00LOCK-xml2/00new/xml2’ to ‘/home/robert/R/x86_64-pc-linux-gnu-library/3.6.2/xml2’: Permission denied
ERROR: moving to final location failed
00LOCK-xml2 folder is created while the package is compiling on Linux and then deleted when the package has been copied to its final destination.
This lock can be avoided with an extra argument to
install.packages("xml2", INSTALL_opts = c('--no-lock'))
INSTALL_opts are for the command line installation of the
tar.gz file with
xml2's source code.
So instead of running the default
R CMD INSTALL xml2_1.2.4.tar.gz
the command becomes
R CMD INSTALL --no-lock xml2_1.2.4.tar.gz