18

I already have a package B and want to install a new package A. The installation wants to modify B, but I don't want that to happen.

I need to install the package A.

It has the a dependency on package B and requires to be (>2.0).

I have already installed B in my system with the version 2.1, so my current setup already fulfills the dependency.

But there is a new version (2.2) of the B package in the Debian repository and I don't want it since it conflicts with other stuff.

So, when I install the A package apt also tries to upgrade B.

How can I disable the upgrading of the dependencies or indicate an explicit dependency version without having to edit the packages?

I have read How do I get apt-get to ignore some dependencies?, but it doesn't help me. In the question there, the dependency (B) should not be handled by the repository manager at all. In my case, the repository manager already takes care of the dependency and should continue to do so, just not in this particular action.

Reopen Reviewers: Please see the comment of victorgp which should have been the answer in the first place.

victorgp
  • 541

4 Answers4

5

On Debian 8 I've found the option --no-upgrade can help achieving the desired result. For example:

apt-get install --no-upgrade php7.0-xmlrpc
Andrii S.
  • 159
2

You can try the --nodeps flag with apt-get or you can try the debian package utility, dpkg, with the option --ignore-depends.

David Mathis
  • 904
  • 2
  • 9
  • 21
1

Use apt-mark hold package-that-apt-should-leave-alone.

hold

hold is used to mark a package as held back, which will prevent the package from being automatically installed, upgraded or removed.

0

You can either use the --nodeps flag with apt-get or download the package and install it using dpkg along with the option --ignore-depends