Apparently the current crop of R developers was never told the standard policy of
never break backwards compatibility on a minor version increment.
Put simply, packages available for 3.3 do not work in 3.4. I'm sure there is some perfectly justifiable reason for making the release 3.4 instead of 4.0, while breaking all existing packages (until manually updated by the maintainers), but guess what: it's bollocks.
Anyways, to forestall a long rant about disregarding long-held policy due to historical ignorance (*cough*
Uber), here is how to downgrade 3.4 to 3.3 on Debian:
1. add stretch to /etc/apt/sources.list
deb http://ftp.us.debian.org/debian/ stretch main non-free contrib
deb-src http://ftp.us.debian.org/debian/ stretch main non-free contrib
2.
apt-get update
apt-cache showpkg r-base should show version 3.3.3-1
3. apt-get remove r-base r-base-core r-base-html r-base-dev
4. go to
https://packages.debian.org/stretch/r-base-html to get version number (3.3.3-1)
also
https://packages.debian.org/stretch/r-recommended for version numbers for dependencies
5. now do the big install:
sudo apt-get install r-base=3.3.3-1 r-base-core=3.3.3-1 \
r-recommended=3.3.3-1 r-base-dev=3.3.3-1 r-base-html=3.3.3-1 \
r-cran-boot=1.3-18-2 r-cran-class=7.3-14-1 r-cran-cluster=2.0.5-1 \
r-cran-codetools=0.2-15-1 r-cran-foreign=0.8.67-1 \
r-cran-kernsmooth=2.23-15-2 r-cran-lattice=0.20-34-1 \
r-cran-mass=7.3-45-1 r-cran-matrix=1.2-7.1-1 r-cran-mgcv=1.8-16-1 \
r-cran-nlme=3.1.129-1 r-cran-nnet=7.3-12-1 r-cran-rpart=4.1-10-2 \
r-cran-spatial=7.3-11-1 r-cran-survival=2.40-1-1
6. prevent R from updating again, because its developers obviously cannot be trusted:
sudo sudo apt-mark hold r-base r-base-core
7. comment out the lines in sources.list for step 1
In related news, here is how to downgrade an R package to a specific version number. The example uninstalls the package 'BH' and replaces it with version 1.62.0. As with most package management in R these days, you need the
devtools package installed.
remove.packages('BH')
library(devtools)
install_version('BH', '1.62.0')