OK, I start with my 100% `stable` (`jessie`) system up-to-date. IOW, after `apt-get update`, `apt-get upgrade` reports that there are no candidates for upgrading:
% sudo apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Now, I add to my `/etc/apt/sources.list` file the last two lines shown below: deb http://http.us.debian.org/debian jessie main contrib non-free deb-src http://http.us.debian.org/debian jessie main contrib deb http://http.us.debian.org/debian jessie-updates main contrib deb-src http://http.us.debian.org/debian jessie-updates main contrib deb http://security.debian.org/ jessie/updates main contrib non-free deb-src http://security.debian.org/ jessie/updates main contrib non-free deb http://http.us.debian.org/debian stretch main contrib non-free deb-src http://http.us.debian.org/debian stretch main contrib Also, I set the contents of my `/etc/apt/preferences` file to this (the file was empty before): Package: * Pin: release a=stable (BTW, both my `/etc/apt/sources.list.d` and `/etc/apt/preferences.d` directories are empty.) Then, I re-run `apt-get update`. Given the contents of my `/etc/apt/preferences` file, which specifies that everything should be pinned at `stable`, I expected that the two new lines in my `/etc/apt/sources.list` would be essentially irrelevant. In particular, I expected that `apt-get upgrade` would still report that there was nothing to upgrade. To my surprise, this is far from the case: the `apt-get upgrade` dialog reports: "962 upgraded, 0 newly installed, 0 to remove and 590 not upgraded." How come there are any upgrades at all (let alone hundreds of them) when `/etc/apt/preferences` requires that everything sould be pinned at `stable`? Thanks in advance! kj P.S. FWIW, ultimately, what I want to perform a very controlled, tightly-targeted upgrade of my R-related packages (i.e. `r-base` and friends) to `stretch`/`testing`. IOW, I want to keep the non-`jessie` packages installed in my system to the absolute minimum that is compatible with upgrading R to `stretch`/`testing`. I thought that setting my `/etc/apt/preferences` file as shown below, coupled with the `/etc/apt/sources.list` file shown earlier, would do the trick: Package: * Pin: release a=stable Package: r-* Pin: release a=testing But my complete failure to predict the results of the experiment described in the main part of this post tells me that I probably have the whole thing wrong.