Apt-Pinning allows you to install packages from testing/unstable/experimental on your Debian install without running into dependency and upgrade problems. It works by telling apt to give priority to one repository, in my case testing, and only install upgrades from it, while ignoring unstable and experimental unless I specifically request a package to be installed from them.
The Apt-Preferences Manual
You can find your apt-preference under
/etc/apt/preferences
Debian installs do not come with a apt-preferences file.
To make apt-preference file:
sudo touch /etc/apt/preferences
My Apt Pining File -
Package: *
Pin: release o=Debian,a=testing
Pin-Priority: 900
Package: *
Pin: release o=Debian,a=unstable
Pin-Priority: 300
Package: *
Pin: release o=Debian,a=experimental
Pin-Priority: 100
Package: *
Pin: release o=Debian
Pin-Priority: -1
To Install packages from other repositories:
sudo apt-get install
PACKAGE NAME/unstable
- tries to install package trying to use the default (in my case testing) dependencies
sudo apt-get -t unstable install
PACKAGE NAME
- installs the package using dependencies from unstable
*Replace unstable with experimental to install packages from Debian's experimental repository