Few documents

Ubuntu Community Documentation:
> Pinning Howto:
This wiki page will discuss some advanced things you can do to packages to accomplish specific goals. The first thing described is Pinning, this is useful if you want only some things from a newer version of Ubuntu. There is also package holding, which allows you to not update the package.
From the Debian side:
> Apt-Pinning for Beginners:
Why apt-pinning?

Do you run Debian? Have you ever gotten annoyed at how Debian Stable always seems to be out of date?

I will show you a way that you can have apt mix-and-match between Stable, Testing, and Unstable sources. This will allow you to run a mostly-Stable system, but also track the latest and greatest of those packages that you are most keenly interested in.
Old Apt HowTo
> How to keep specific versions of packages installed:
You may have occasion to modify something in a package and don't have time or don't want to port those changes to a new version of the program...
From the Kubuntu Forums:
> Topic: how to add exception to dist-upgrade (Solved)
> Topic: [solved] Prevent updates to firefox beta releases?

With the GUI

There is an option to lock the package with the Muon package manager (1.1.80 "Caustic Carrionite" , package:1.1.80-0ubuntu1~natty1):
Right click the package and pick the "Lock at Current Version"

The Muon is making the lock file to the /etc/apt/preferences.d/. All apt based package manager are respecting this lock file.

Note that the Synaptic lock is only used by the Synaptic > What does 'Lock Version' do?:
Lock version is not as clever as it sounds. It's supposed to do what it says on the tin, lock the version... But it only locks it within Synaptic. Anything else that does package upgrades (read: Update Manager, apt-get, aptitude, etc) ignores this. This is probably buggy behaviour so I would expect this to be fixed in time.
This seems to be the case with the Natty - synaptic for Debian 0.70 (0.75.1ubuntu2).

Locking a package with the Synaptic (kde-service-menu-rootactions).
Updating the package database:
sudo apt-get update
sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be upgraded:
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/32.1 kB of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
WARNING: The following packages cannot be authenticated!
Install these packages without verification [y/N]? y
(Reading database ... 132181 files and directories currently installed.)
Preparing to replace kde-service-menu-rootactions 2.6.92~natty~ppa1 (using .../kde-service-menu-rootactions_2.7.1~natty~ppa1_all.deb) ...
Unpacking replacement kde-service-menu-rootactions ...
Setting up kde-service-menu-rootactions (2.7.1~natty~ppa1) ...