ros / rosdistro

This repo maintains a lists of repositories for each ROS distribution
Other
919 stars 2.55k forks source link

Cannot install libopenni-sensor-primesense0 on Trusty #3986

Closed wjwwood closed 10 years ago

wjwwood commented 10 years ago

I get this:

% sudo apt-get install -y libopenni-sensor-primesense-dev
Reading package lists... Done
Building dependency tree       
Reading state information... Done
libopenni-sensor-primesense-dev is already the newest version.
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
 libopenni-sensor-primesense-dev : Depends: libopenni-sensor-primesense0 (= 5.1.0.41-3+trusty1) but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

@tfoote

tfoote commented 10 years ago

I cannot reproduce:

osrf@osrf-VirtualBox:~/ros_catkin_ws$ sudo apt-get install libopenni-sensor-primesense-dev 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libserf1 python3-dateutil python3-imaging
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  freeglut3 libopenni-sensor-primesense0 libopenni0 libtinyxml2.6.2 openni-utils
The following NEW packages will be installed:
  freeglut3 libopenni-sensor-primesense-dev libopenni-sensor-primesense0 libopenni0 libtinyxml2.6.2
  openni-utils
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 821 kB of archives.
After this operation, 3,681 kB of additional disk space will be used.
Do you want to continue? [Y/n] 
Get:1 http://us.archive.ubuntu.com/ubuntu/ trusty/main freeglut3 amd64 2.8.1-1 [97.5 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ trusty/universe libtinyxml2.6.2 amd64 2.6.2-2 [35.0 kB]
Get:3 http://us.archive.ubuntu.com/ubuntu/ trusty/universe libopenni0 amd64 1.5.4.0-7 [273 kB]
Get:4 http://repos.ros.org/repos/ros-shadow-fixed/ubuntu/ trusty/main libopenni-sensor-primesense0 amd64 5.1.0.41-3+trusty1 [300 kB]
Get:5 http://repos.ros.org/repos/ros-shadow-fixed/ubuntu/ trusty/main libopenni-sensor-primesense-dev amd64 5.1.0.41-3+trusty1 [2,504 B]
Get:6 http://us.archive.ubuntu.com/ubuntu/ trusty/universe openni-utils amd64 1.5.4.0-7 [113 kB]
Fetched 821 kB in 7s (108 kB/s)                                                                          
Selecting previously unselected package freeglut3:amd64.
(Reading database ... 204045 files and directories currently installed.)
Preparing to unpack .../freeglut3_2.8.1-1_amd64.deb ...
Unpacking freeglut3:amd64 (2.8.1-1) ...
Selecting previously unselected package libtinyxml2.6.2:amd64.
Preparing to unpack .../libtinyxml2.6.2_2.6.2-2_amd64.deb ...
Unpacking libtinyxml2.6.2:amd64 (2.6.2-2) ...
Selecting previously unselected package libopenni0.
Preparing to unpack .../libopenni0_1.5.4.0-7_amd64.deb ...
Unpacking libopenni0 (1.5.4.0-7) ...
Selecting previously unselected package openni-utils.
Preparing to unpack .../openni-utils_1.5.4.0-7_amd64.deb ...
Unpacking openni-utils (1.5.4.0-7) ...
Selecting previously unselected package libopenni-sensor-primesense0.
Preparing to unpack .../libopenni-sensor-primesense0_5.1.0.41-3+trusty1_amd64.deb ...
Unpacking libopenni-sensor-primesense0 (5.1.0.41-3+trusty1) ...
Selecting previously unselected package libopenni-sensor-primesense-dev.
Preparing to unpack .../libopenni-sensor-primesense-dev_5.1.0.41-3+trusty1_amd64.deb ...
Unpacking libopenni-sensor-primesense-dev (5.1.0.41-3+trusty1) ...
Processing triggers for man-db (2.6.7.1-1) ...
Setting up freeglut3:amd64 (2.8.1-1) ...
Setting up libtinyxml2.6.2:amd64 (2.6.2-2) ...
Setting up libopenni0 (1.5.4.0-7) ...
Setting up openni-utils (1.5.4.0-7) ...
Setting up libopenni-sensor-primesense0 (5.1.0.41-3+trusty1) ...
Setting up libopenni-sensor-primesense-dev (5.1.0.41-3+trusty1) ...
Processing triggers for libc-bin (2.19-0ubuntu6) ...
osrf@osrf-VirtualBox:~/ros_catkin_ws$
wjwwood commented 10 years ago

I cannot reproduce this on my VM, maybe the download was corrupted or something? I remember seeing something about an error while unpacking or something like that.

vrabaud commented 10 years ago

I saw something similar during a dist-upgrade, because there was a conflict with an old OpenNI library.You had to remove the old libs to get it to work.

wjwwood commented 10 years ago

I'll give it a try with my desktop at work tomorrow and report back.

wjwwood commented 10 years ago

I can fix this by removing libopenni-sensor-pointclouds0. I am going to close this for now, if someone else runs into this, please comment here.

stonier commented 10 years ago

One of our guys ran into this as well and would have given up had I not told him to dig a bit more - at that point he found this issue. I don't think it's a big issue, though it is one of those annoying 'black magic' things you need remember.

nochemax commented 10 years ago
~/RTABMap-0.6.5-Source$ sudo apt-get install -y libopenni-sensor-primesense-dev 
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se instalarán los siguientes paquetes extras:
  libopenni-sensor-primesense0
Se instalarán los siguientes paquetes NUEVOS:
  libopenni-sensor-primesense-dev libopenni-sensor-primesense0
0 actualizados, 2 se instalarán, 0 para eliminar y 4 no actualizados.
Se necesita descargar 0 B/303 kB de archivos.
Se utilizarán 1.389 kB de espacio de disco adicional después de esta operación.
(Leyendo la base de datos ... 237593 ficheros o directorios instalados actualmente.)
Preparing to unpack .../libopenni-sensor-primesense0_5.1.0.41-3+trusty1_amd64.deb ...
Unpacking libopenni-sensor-primesense0 (5.1.0.41-3+trusty1) ...
dpkg: error al procesar el archivo /var/cache/apt/archives/libopenni-sensor-primesense0_5.1.0.41-3+trusty1_amd64.deb (--unpack):
 intentando sobreescribir `/etc/openni/GlobalDefaults.ini', que está también en el paquete libopenni-sensor-pointclouds0 5.1.0.41.1-1
dpkg-deb: error: el subproceso copiado fue terminado por la señal (Tubería rota)
Preparing to unpack .../libopenni-sensor-primesense-dev_5.1.0.41-3+trusty1_amd64.deb ...
Unpacking libopenni-sensor-primesense-dev (5.1.0.41-3+trusty1) ...
dpkg: error al procesar el archivo /var/cache/apt/archives/libopenni-sensor-primesense-dev_5.1.0.41-3+trusty1_amd64.deb (--unpack):
 intentando sobreescribir `/usr/lib/pkgconfig/ps-engine.pc', que está también en el paquete libopenni-sensor-pointclouds-dev 5.1.0.41.1-1
Se encontraron errores al procesar:
 /var/cache/apt/archives/libopenni-sensor-primesense0_5.1.0.41-3+trusty1_amd64.deb
 /var/cache/apt/archives/libopenni-sensor-primesense-dev_5.1.0.41-3+trusty1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
nochemax commented 10 years ago

creo que hay conflictos entre los controladores de mrpt-apps y rtabmap (ROS), la verdad los dos magníficos pack de programa de robótica, y ahora que esta la gente como loca con los scanner 3D, esto da mucho juego pero no sirve de nada si ahora no funciona uno y luego otro y se te da fallo en la app si no tiene muchos conocimiento.. pero se arregla rápido. tiene que estar todo mejor ordenado yo compile rtabmap y cuando voy escanear se me queda pillado es decir no funciona y ahora no puedo usar tampoco mrpt-apps a que hacer una cosa mas ordenada la verdad por un lado los drive de la kinect otro los de la asus y luego los dos paquetes de instalación guiada I think there are conflicts between drivers and rtabmap MRPT-apps (ROS), the truth of the two magnificent pack robotics program, and now that this people crazy with 3D scanner, this gives a lot of play but no use if now does not work one and then another and gives you the app if failure does not have many knowledge .. but quick fix. must be all better ordered to compile rtabmap and when I scanned it I still caught that is not working and now I can not use either MRPT-apps to make a more orderly thing truth on one hand the drive of the kinect another those of the asus and then the two installation packages tour :)

asayler commented 10 years ago

We've hit this issue as well. And we can reliably reproduce it on fresh Ubuntu 14.04 installs. See http://answers.ros.org/question/193581/libopenni-sensor-primesense0-conflict for details.

tfoote commented 10 years ago

in the link above from @asayler I've debugged this pretty deeply. It appears that both libopenni-sensor-primesense0 and libopenni-sensor-pointclouds0 provide libopenni-sensor and conflict with libopenni-sensor. They're mutually exclusive impelementations of the libopenni-sensor. For openni_camera we require libopenni-dev and libopenni-sensor-primesense0 which will install correctly if asked for explicitly. However apt appears to try to install libopenni0 [1] as well as it's recommended packages and takes the first element of the OR statement without checking the dependencies.

I reopened this as I can now reproduce it. However, I'm pretty sure that this is a bug in upstream apt. As it should detect that you're installing two packages that conflict. It's nasty in that only fails at configuration time and can completely mess up your apt command tool, (I haven't found a way to roll back the attempted installation. Just to force overwrite. see answers question)

I don't know what else we can do besides have the correct dependencies in our packages( which we have)

[1] http://packages.ubuntu.com/trusty/libopenni0

asayler commented 10 years ago

The packages in question (libopenni-sensor-primesense0 and libopenni-sensor-primesense0) don't declare each other as conflits. So it's a least a bug in those packages, not apt. See http://answers.ros.org/question/193581/libopenni-sensor-primesense0-conflict/?answer=193593#post-id-193593.

tfoote commented 10 years ago

As far as I can tell the packages do declare their dependencies correctly. From: https://www.debian.org/doc/debian-policy/ch-relationships.html Section 7.5

If the virtual package represents a facility that can only be provided by one real package at a time, such as the mail-transport-agent virtual package that requires installation of a binary that would conflict with all other providers of that virtual package (see Mail transport, delivery and user agents, Section 11.6), all packages providing that virtual package should also declare a conflict with it using Conflicts. This will ensure that at most one provider of that virtual package is unpacked or installed at a time.

Both packages provide and conflict with libopenni-sensor.

asayler commented 10 years ago

It seems there are two copies of the libopenni-sensor-primesense0 package when this occurs, only one of which properly declares its conflicts. See below. On a fresh Ubuntu install, only the second package shows up (which matches the one you linked to above). Where is the first package coming from? The "broken" package's version "number" seems to indicate that it will supersede the working version of package you linked to.

$ apt-cache show libopenni-sensor-primesense0
Package: libopenni-sensor-primesense0
Source: openni-sensor-primesense
Priority: optional
Section: libs
Installed-Size: 1322
Maintainer: Jochen Sprickerhof <launchpad@jochen.sprickerhof.de>
Architecture: amd64
Version: 5.1.0.41-3+trusty1
Depends: libc6 (>= 2.11), libgcc1 (>= 1:4.1.1), libjpeg8 (>= 8c), libopenni0, libstdc++6 (>= 4.1.1), openni-utils
Filename: pool/main/o/openni-sensor-primesense/libopenni-sensor-primesense0_5.1.0.41-3+trusty1_amd64.deb
Size: 300316
SHA256: 13244e6f026da10470cfab28d843149b507f678a6c82c5bda7ae086c64475b0f
SHA1: 1fb93d7a4c645c3839d42ea4170b39b184545eba
MD5sum: 5003349ad240287e793be067c9a10923
Description: Microsoft Kinect sensor modules for the OpenNI framework
 OpenNI is a framework for getting data to support 'Natural Interaction',
 i.e. skeleton tracking, gesture tracking, and similar ways of getting data
 from humans. This package provides modules for OpenNI that get the data from
 the Kinect camera for processing with the OpenNI Middleware, like PrimeSense
 NITE.
Description-md5: 8cb5484dd56436e4ab8899c2dbefd9fb

Package: libopenni-sensor-primesense0
Priority: optional
Section: universe/libs
Installed-Size: 1319
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Jochen Sprickerhof <jochen@sprickerhof.de>
Architecture: amd64
Source: openni-sensor-primesense
Version: 5.1.0.41-3
Replaces: libopenni-sensor
Provides: libopenni-sensor
Depends: libc6 (>= 2.11), libgcc1 (>= 1:4.1.1), libjpeg8 (>= 8c), libopenni0, libstdc++6 (>= 4.1.1), openni-utils
Conflicts: libopenni-sensor
Filename: pool/universe/o/openni-sensor-primesense/libopenni-sensor-primesense0_5.1.0.41-3_amd64.deb
Size: 295936
MD5sum: 93d7cc7766ff1e79852b6cc0e3b3956f
SHA1: b8165597eac1284ea97ff84396c4a7b7c39c92b3
SHA256: 07a3b1cd0dc3eaa4585578cec557cb8dbc3813fdb3327dce97616a3a46cb7634
Description-en: PrimeSense sensor modules for the OpenNI framework
 OpenNI is a framework for getting data to support 'Natural Interaction',
 i.e. skeleton tracking, gesture tracking, and similar ways of getting data
 from humans. This package provides modules for OpenNI that get the data from
 the PrimeSense camera for processing with the OpenNI Middleware, like
 PrimeSense NITE.
 .
 This package includes all of the sensor modules needed to work with the
 PrimeSense camera in OpenNI.
Description-md5: e83321db6c7fcc9ae978e4b9687a6ac0
Homepage: http://www.openni.org
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubuntu
tfoote commented 10 years ago

Ahh good catch on the second copy.

That's coming from the PCL PPA https://launchpad.net/~v-launchpad-jochen-sprickerhof-de/+archive/ubuntu/pcl/+packages?field.name_filter=&field.status_filter=published&field.series_filter=trusty

Related is #5462 which I think would fix this. @jspricke It might be good to remove that package, fix the dependencies, or give it a lower number so it doesn't

I will strip the PPA copy of libopenni-sensor-primesense0 from our repos.

tfoote commented 10 years ago

I've confirmed I can install ros-indigo-openni-camera in a container with the new sources which was previously failing (previously reproducable from debugging in http://answers.ros.org/question/193581/libopenni-sensor-primesense0-conflict/?answer=193593#post-id-193593)

jspricke commented 10 years ago

I deleted libopenni-sensor-primesense from the PPA, thanks @tfoote.