On Thu, Apr 19, 2018 at 02:47:05PM -0400, Gene Heskett wrote: > On Thursday 19 April 2018 11:32:28 Roberto C. Sánchez wrote: > > > The only thing I would say is use apt "pinning" to prioritize the > > backports repository lower than the other repositories so you don't > > accidentally get backports for *everything* that has a backport > > available. > > > > Hijacking a thread here, but it reads like I might be reading an expert. > > "Pinning" is an interesting subject Roberto, interesting because the info > on how to do it is generally skipped over, or only mentioned in passing, > with NO examples of how to do it in the man pages available. I have it > working on one machine, but it was a heck of a trip getting there, and I > still have had no confirmation that I actually did it correctly. That > machine is a raspi-3b running jessie. But with an rt-preempt kernel > because its main reason-de-terre is LinuxCNC. Its running a 3/4 ton > metal working lathe. > > In /etc/apt/preferences.d/kernel.pref: > pi@picnc:/etc/apt/preferences.d $ cat kernel.pref > Package:linux-kernel > pin: version 4.4.4-rt9-v7+ > Pin-Priority: 1001 > > Package: linux-headers > Pin: version 4.4.4-rt9-v7+ > Pin-Priority: 1001 > > Package: raspberrypi-bootloader > Pin: version 1.20170427-1 > Pin-Priority: 1001 > > Package: raspberrypi-kernel > Pin: version 1.20170427-1 > Pin-Priority: 1001 > > Is this the approved method? All I know is that for me, its working, and > anything related to a kernel update is skipped.
Indiscriminate pinning is terrible. That's because it's a powerful tool. 1001 is almost certainly not what you really want to do here if you are regularly updating your system. And if you are not updating your system at all, you don't need to apt-pin. Here's a quick guide that I wrote some time ago: --- Let us suppose that you are running Debian stable, but there are some packages that you would like from the backports archive. However, you don’t want all backports replacements to be brought in. In etc/apt/sources.list.d/backposts.list add the backports repo. As I write this, Jessie is stable, so: deb http://http.debian.net/debian jessie-backports main contrib non-free Note that the source lists must end with .list or they will be ignored. In etc/apt/preferences.d/priorities: Package: * Pin: release a=jessie Pin-Priority: 900 Package: * Pin: release a=jessie-backports Pin-Priority: 50 and run apt-get update There are magic levels for the numbers in the priority field. They are explained, at length, in man apt_preferences. The highlights: P >= 1000 causes a version to be installed even if this constitutes a downgrade of the package 990 <= P < 1000 causes a version to be installed even if it does not come from the target release, unless the installed version is more recent 500 <= P < 990 causes a version to be installed unless there is a version available belonging to the target release or the installed version is more recent 100 <= P < 500 causes a version to be installed unless there is a version available belonging to some other distribution or the installed version is more recent 0 < P < 100 causes a version to be installed only if there is no installed version of the package P < 0 prevents the version from being installed Now, to install a single backported package, apt-get install packagename/jessie-backports, and to install a backported package plus any dependencies which are also backported, use apt-get -t jessie-backports packagename If jessie gets an update more recent than the backports version you installed, it will be installed. When you upgrade to the next stable version, remove the pinning before the dist-upgrade, and consider if you need to reinstate it.