[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#638188: apt: misleading error about 'unmet dependencies' and 'is not going to be installed', actually Breaks a Provides



Package: apt
Version: 0.8.15.6
Severity: normal


apt-get prints a not helpful error message:

    The following packages have unmet dependencies:
      test2 : Depends: test1 (>= 0.1) but it is not going to be installed

in the following testcase

* the package test1 (version 1.0) is already installed
* the actual error is caused by virtual package relationships where
  test1 Breaks: old-stuff, while test2 Provides: old-stuff,
  building a conflict between each other
  That should be somehow reflected in the diagnostic message.

Attached is a debian/control file to build these test-packages.

Some apt-get action with them (put together with a Packages file in /tmp
and an appropriate sources.list line was added)

First let's install the dependency:

# apt-get --allow-unauthenticated -y install test3
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  test1
The following NEW packages will be installed:
  test1 test3
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/3426 B of archives.
After this operation, 16.4 kB of additional disk space will be used.
WARNING: The following packages cannot be authenticated!
  test1 test3
Authentication warning overridden.
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 75, <> line 2.)
debconf: falling back to frontend: Readline
Selecting previously deselected package test1.
(Reading database ... 13101 files and directories currently installed.)
Unpacking test1 (from /tmp/./test1_1.0_all.deb) ...
Selecting previously deselected package test3.
Unpacking test3 (from /tmp/./test3_1.0_all.deb) ...
Setting up test1 (1.0) ...
Setting up test3 (1.0) ...

Now let's install the offender:

# apt-get --allow-unauthenticated -y install test2
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 test2 : Depends: test1 (>= 0.1) but it is not going to be installed
E: Broken packages

No, that was not helpful at all. Let's check the dependencies manually:

# apt-cache show test1 test2 test3 | grep -E 'Package|Version|Depends|Provides|Conflicts|Breaks|^$'
Package: test1
Version: 1.0
Breaks: old-stuff

Package: test2
Version: 1.0
Depends: test1 (>= 0.1)
Provides: old-stuff

Package: test3
Version: 1.0
Depends: test1 (>= 0.1)

Andreas
Source: testpkg
Section: misc
Priority: extra
Maintainer: Andreas Beckmann <debian@abeckmann.de>
Build-Depends: debhelper (>= 8.0.0)
Standards-Version: 3.9.2

Package: test1
Architecture: all
Breaks: old-stuff
Description: test1
 test1

Package: test2
Architecture: all
Depends: test1 (>= 0.1)
Provides: old-stuff
Description: test2
 test2

Package: test3
Architecture: all
Depends: test1 (>= 0.1)
Description: test3
 test3

Reply to: