When installing R packages (say mcmcpack in this example) under Ubuntu I have the choice between the following two methods of installation:
# Let the distribution's packaging system take care of installation/upgrades
apt-get install r-cran-mcmcpack
# Let R take care of installation/upgrades
install.packages("mcmcpack")
Questions:
- Is any of the two ways of installing R packages considered “best practice”?
- Assume that I first
install.packages("mcmcpack")and later onapt-get install r-cran-mcmcpack– should I expect trouble? - Assume that I first
apt-get install r-cran-mcmcpackand later oninstall.packages("mcmcpack")– should I expect trouble?
Update (some thirteens years later): It is now as easy as it seems if you use for example the wonderful and powerful r2u system I set up last year, and which now provides over 20k binary .deb packages for each of twi Ubuntu LTS releases (currently: 20.04 and 22.04), and is also accessible via
install.packages()thanks topbspm. Follow the link to r2u for more.It’s not as easy as it seems.
apt-get updateis good if and whenpackages exist — but there are only around 150 or so
r-cran-*packages out of a pool of 2100+ packages on CRAN, so rather sparse coveragepackages are maintained, bug free and current
you are happy enough with the bi-annual releases by Ubuntu
install.packages()and laterupdate.packages()is good if and whenyou know what it takes to have built-time dependencies (besides
r-base-dev) installedyou don’t mind running
update.packages()by hand as well as theapt-getupdates.On my Ubuntu machine at work, I go with the second solution. But because the first one is better if you have enough coverage, we have built cran2deb which provides 2050+ binary deb packages for amd64 and i386 — but only for Debian testing. That is what I use at home.
As for last question of whether you ‘should you expect trouble’: No, because
R_LIBS_SITEis set in/etc/R/Renvironmentto bewhich means that your packages go into
/usr/local/lib/R/site-librarywhereas those managed byaptgo into/usr/lib/R/site-libraryand (in the case of base packages)/usr/lib/R/library.Hope that clarifies matters. The r-sig-debian mailing list is a more informed place for questions like this.