Not really anything to 'pin' a package down to be able to prevent removal, but allow upgrading.
You can hammer a spike into a package, can't be deleted, purged, upgraded, licked, anything...
But it's a wee bit more complicated than most things.
For example, we wish to pin firefox down: (you'd use the proper full name of the package, of course)
echo firefox hold | dpkg --set-selections
which would then make 'firefox' immortal. BUT, it cannot be upgraded in this state either.
To remove the hold status is a bit easier, but it's kind of a sweeping gesture:
dpkg --clear-selections
removes the HOLD status from EVERYTHING! So if you wanted to hold a few packages, you'd best keep a list to reapply later
It's actually quite pleasant and easy to perform using aptitude or synaptics, as they have menu options to hold/unhold a package, taking care of all the bookkeeping behind the scenes for you. I'd recommend using one of those (or any of a myriad other package managers you might encounter)
With Aptitude, command line usage is possible too:
aptitude hold <package>
aptitude unhold <package>
Remember though, you'll need to 'unhold' something if want it to upgrade. Although if you use the GUI side of Aptitude, it should tell you if something that's held is upgradable
abc, but it was removed anyway... I think you have to recompile theabcsettingEssential: yesandPriority: requiredindebian/control– Teresa e Junior Jan 22 '12 at 9:51defdepending onabcshould have worked. Wasdefremoved? Does it help if you makedefPriority: required? – Gilles Jan 22 '12 at 23:42Essential: yesandPriority: requiredand it was removed with no warnings. I created this small script to make the package, if you want to have a look: paste.org/44184 – Teresa e Junior Jan 23 '12 at 6:49Essential: yeswas ignored, soequivsis not sufficient for that... Maybe if the package is created withdebuild, I'll try. – Teresa e Junior Jan 23 '12 at 6:54