libdlib18:armhf : Depends: libdlib-data:armhf but it is not installable

Asked by Erik Janssen

Hello,

I'm trying to install the armhf version of libdlib18 on a amd64 system with multiarch, but I'm getting:
The following packages have unmet dependencies:
 libdlib18:armhf : Depends: libdlib-data:armhf but it is not installable
E: Unable to correct problems, you have held broken packages.

Other armhf packages have so far installed without issues.
Can you please assist me how I can resolve this situation?

Kind Regards,

Erik Janssen.

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu dlib Edit question
Assignee:
No assignee Edit question
Solved by:
Erik Janssen
Solved:
Last query:
Last reply:
Revision history for this message
Erik Janssen (eaw-janssen) said :
#1

Command was:
sudo apt install libdlib18:armhf

uname -a:
Linux ubuntu 4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

Revision history for this message
Manfred Hampl (m-hampl) said :
#2

For diagnostic purposes please provide the output of the following commands:

lsb_release -crid
dpkg --print-architecture
dpkg --print-foreign-architectures
apt-cache policy libdlib18:armhf libdlib-data:armhf libdlib18 libdlib-data
apt-get --simulate install libdlib-data:armhf
sudo dpkg --audit

Revision history for this message
Erik Janssen (eaw-janssen) said :
#3

As requested:

erik@ubuntu:~$ lsb_release -crid
Distributor ID: Ubuntu
Description: Ubuntu 16.04.1 LTS
Release: 16.04
Codename: xenial
erik@ubuntu:~$ dpkg --print-architecture
amd64
erik@ubuntu:~$ dpkg --print-foreign-architectures
i386
armhf
erik@ubuntu:~$ apt-cache policy libdlib18:armhf libdlib-data:armhf libdlib18 libdlib-data
libdlib18:armhf:
  Installed: (none)
  Candidate: 18.18-1
  Version table:
     18.18-1 500
        500 http://ports.ubuntu.com/ubuntu-ports xenial/universe armhf Packages
libdlib-data:armhf:
  Installed: (none)
  Candidate: (none)
  Version table:
libdlib18:
  Installed: (none)
  Candidate: 18.18-1
  Version table:
     18.18-1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
libdlib-data:
  Installed: (none)
  Candidate: 18.18-1
  Version table:
     18.18-1 500
        500 http://us.archive.ubuntu.com/ubuntu xenial/universe amd64 Packages
        500 http://ports.ubuntu.com/ubuntu-ports xenial/universe armhf Packages
erik@ubuntu:~$ apt-get --simulate install libdlib-data:armhf
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package libdlib-data:armhf is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libdlib-data:armhf' has no installation candidate
erik@ubuntu:~$ sudo dpkg --audit
[sudo] password for erik:
erik@ubuntu:~$

Revision history for this message
Manfred Hampl (m-hampl) said :
#4

libdlib-data is architecture-independent.

What do you get for the command
apt-get --simulate install libdlib18 libdlib18:armhf

Revision history for this message
Erik Janssen (eaw-janssen) said :
#5

erik@ubuntu:~$ apt-get --simulate install libdlib18 libdlib18:armhf
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
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:
 libdlib18 : Conflicts: libdlib18:armhf but 18.18-1 is to be installed
 libdlib18:armhf : Depends: libdlib-data:armhf but it is not installable
                   Conflicts: libdlib18 but 18.18-1 is to be installed
E: Unable to correct problems, you have held broken packages.

Revision history for this message
Manfred Hampl (m-hampl) said :
#6

This looks strange. Maybe this is another case where the the apt-get --simulate command shows wrong results.

Try

sudo apt-get install libdlib-data libdlib18:armhf

Revision history for this message
Erik Janssen (eaw-janssen) said :
#7

Hello Manfred, still no go:

erik@ubuntu:~$ sudo apt-get install libdlib-data libdlib18:armhf
[sudo] password for erik:
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:
 libdlib18:armhf : Depends: libdlib-data:armhf but it is not installable
E: Unable to correct problems, you have held broken packages.
erik@ubuntu:~$

Revision history for this message
Erik Janssen (eaw-janssen) said :
#8

Is it the problem that the libdlib-data package is architecture independent, but it is missing 'Multi-Arch: foreign' tag as stated in
https://wiki.ubuntu.com/MultiarchSpec#Dependencies_involving_Architecture:_all_packages ?

I installed the libdlib-data and dpkg --status shows Architecture all, but I don't see the Multi-Arch: foreign:

erik@ubuntu:~$ dpkg --status libdlib-data
Package: libdlib-data
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 97376
Maintainer: Ubuntu Developers <email address hidden>
Architecture: all
Source: dlib
Version: 18.18-1
Description: C++ toolkit for machine learning and computer vision - models
 Dlib is a general purpose cross-platform open source software library written
 in the C++ programming language. It now contains software components for
 dealing with networking, threads, graphical interfaces, complex data
 structures, linear algebra, statistical machine learning, image processing,
 data mining, XML and text parsing, numerical optimization, Bayesian networks,
 and numerous other tasks.
 .
 This package contains the trained models provided with dlib.
Original-Maintainer: Séverin Lemaignan <email address hidden>
Homepage: http://dlib.net/

Perhaps I can somehow repackage the package to include Multi-Arch: foreign ?

Revision history for this message
Manfred Hampl (m-hampl) said :
#9

Try splitting it into two commands

sudo apt-get install libdlib-data
sudo apt-get install libdlib18:armhf

what do you get now?

Revision history for this message
Manfred Hampl (m-hampl) said :
#10

Didn't read you last post before sending my last one.

Yes, missing multi-arch flags may create problems, but I would have to google myself for the details.

Revision history for this message
Erik Janssen (eaw-janssen) said :
#11

Hello Manfred,

I managed to solve it! I was correct that it was the missing Multi-Arch: foreign.
Here are the steps I took:
mkdir ~/tmpextract
dpkg-deb -x /var/cache/apt/archives/libdlib-data_18.18-1_all.deb ~/tmpextract
dpkg-deb -e /var/cache/apt/archives/libdlib-data_18.18-1_all.deb ~/tmpextract/DEBIAN
nano ~/tmpextract/DEBIAN/control
insert line (I did it under Installed-Size):
Multi-Arch: foreign
sudo dpkg-deb -b ~/tmpextract /var/cache/apt/archives/libdlib-data_18.18-1_all.deb
sudo dpkg -i /var/cache/apt/archives/libdlib-data_18.18-1_all.deb

after this the dpkg --status libdlib-data shows that the Multi-Arch: foreign is included

Finally, the following works without problems now:
sudo apt install libdlib18:armhf

Thank you for the kind support and your swift responses.
Erik.

Revision history for this message
Manfred Hampl (m-hampl) said :
#12

Congratulations for solving the problem.

The developers should be made aware of that issue by creating a bug report.

Debian also shows this as an item that needs action:
https://tracker.debian.org/pkg/dlib
"Multiarch hinter reports 1 issue(s)
There are issues with the multiarch metadata for this package.
libdlib-data could be marked Multi-Arch: foreign"

So in fact there would be the need for two bug reports to be created, one in Debian, and another one in Ubuntu (preferably with a link to the Debian one).

Revision history for this message
Erik Janssen (eaw-janssen) said :
#13

I've submitted a bug report to <email address hidden>. I will open a bug report in ubuntu as soon as I get a ticket from the debian BTS.

Revision history for this message
Erik Janssen (eaw-janssen) said :
#14

Debian package is changed as suggested:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=847990