We have a meta-package, similar to ubuntu-desktop, that requires a bunch of dependencies to run some internal, not-yet-packaged code. Currently we are updating the meta-package so that it requires >= the current version every time we repackage it so that its dependencies will be upgraded when it is installed. However, if there was a way to upgrade a package and all its dependencies without upgrading all packages then that would be much simpler. Is that possible?
Not directly, as far as I know. You can use a little shell snippet to generate the list of dependencies of the package and upgrade these (assuming you aren't interested in recursive dependencies):
An alternative approach would be to supply your packages through a repository with a unique origin. Write an APT preferences file that specifies only your repository as having a normal priority and everything else as having too low a priority to be installed automatically. (See APT pinning in the APT manual for explanations.) I won't go into details about making the repository (this would be material for a separate question, which may well exist already). To specify that packages from your repository get upgraded and others don't, write the following file as
500 is the normal priority. 100 causes packages not to be upgraded, though the package will be installed if required by dependencies. Run
You can use wajig command which can be used to put some packages on hold when upgrading
just type :
check the man page for more info