I want to install a single package (and its dependencies, but only to the extent those are not satisfiable in Wheezy) from Debian Jessie onto my Wheezy system, without upgrading "everything and the kitchen sink" to the Jessie versions. Specifically, I'd like to install kpcli, which is available packaged in Jessie but not in Wheezy.
Everything I've found indicates that I should add the Jessie repositories to my sources list, set pinning to keep everything at wheezy and only take the single package from jessie, and it'll pretty much just fall into place. However, it isn't falling into place for me. If I create /etc/apt.d/sources.list.d/jessie.list with the following content:
deb ftp://ftp.debian.org/debian/ jessie main deb-src ftp://ftp.debian.org/debian/ jessie main
and then create /etc/apt/preferences.d/jessie with:
Package: * Pin: release a=wheezy Pin-Priority: 1001 Package: kpcli Pin: release a=jessie Pin-Priority: 450
apt-get -u update followed by
apt-get -u install kpcli/jessie, then I expect apt-get to pull in kpcli and maybe a small handful of other packages from Jessie, and leave the remainder of my installed system untouched. (My system is a fully up to date installation of Wheezy.) Alternatively, if I got the pin priority too low, I'd expect it to do nothing. Rather, on my system, apt-get wants to upgrade several hundred packages.
What, exactly, is needed to install just this one single package of a Jessie version while leaving the remainder of my Wheezy system untouched?
Note that in this particular case, the software is actually written in Perl so there's no compilation to binary or anything like that involved; however, there is a handful of Perl module dependencies. Hence, one possible alternative would be to install the .deb (downloaded manually) using something that only (1) allows specifying a single, local .deb archive that is to be installed, like
dpkg -i, and (2) handles dependencies in an intelligent way, which plain
dpkg -i doesn't. However, for all the searching I've done on several occasions and failed to come up with a simple-to-follow guide for how to do this, a generic solution (one that works for binary, compiled packages as well) would be great.