Let's have a metapackage which depends on the following packages
Depends: A (=2),
B (=2),
C (=2)
Note the '=' – I want to install these particular versions, not the most recent ones.
Additionally:
B depends on A(>=1)
C depends on B(>=1) and A(>=1)
If the most recent versions of A,B,C in the repository are 2 then this works.
Since I have put version 3 of A and version 3 of B in the repo sudo apt-get install my-meta-package refuses to finish with the following info:
The following packages have unmet dependencies:
my-meta-package: Depends: B (= 2) but 3 is to be installed
Depends: A (= 2) but 3 is to be installed
If I manually install versions 2 of A and B then the metapackage installs correctly, which strongly suggests that there is no hidden dependency on A3 or B3. This is not a solution for the problem as the metapackage is installed automatically on many machines.
QUESTION: What to do to make sudo apt-get install my-meta-package install versions 2,2,2?
Additionally, is there a way I could get an extended info what actually creates the need for version 3 of A and version 3 of B?
Best Answer
You have to select the particular versions to install, and install them all at the same time that you install the meta-package.
Like int_ua's answer says, you can find out reverse dependencies with this:
If you want to know more information about any of those packages (available versions, dependencies, and lots more), use this:
After you finish installing them, and want to keep them at those versions while doing system upgrades, you will need to use apt-pinning as suggested by belacqua.
APT pinning