ros-drivers / openni_camera

A ROS driver for OpenNI depth (+ RGB) cameras.
49 stars 60 forks source link

Cannot install openni_camera from apt-get #19

Closed georgebrindeiro closed 11 years ago

georgebrindeiro commented 11 years ago

After a clean install of ROS Groovy/Hydro, I cannot install openni_camera. Here's the output I get:

georgebrindeiro@r2d2:~$ sudo apt-get install ros-hydro-openni-camera
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:
 ros-hydro-openni-camera : Depends: libopenni0 but it is not going to be installed
                           Depends: libopenni-dev but it is not going to be installed
                           Depends: libopenni-sensor-primesense-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

I can't install libopenni* either, because it conflicts with openni-dev. Removing openni-dev leads to ROS Hydro to be uninstalled.

wjwwood commented 11 years ago

@tfoote

tfoote commented 11 years ago

There should be nothing depending on openni-dev can you make sure the ros-hydro-pcl is removed and do a dist-upgrade

georgebrindeiro commented 11 years ago

@tfoote ros-hydro-pcl is not installed, all my packages are updated. Should I not be using Ubuntu 12.04?

tfoote commented 11 years ago

I'm running 12.04 and am relatively up to date: I have both groovy and hydro openni-camera installed with libopenni-dev

tfoote@BigFoote:~$ dpkg -l | grep openni
ii  libopenni-dev                               1.5.4.0-4+precise1                                  headers for OpenNI 'Natural Interaction' frameworks
ii  libopenni-nite-dev                          1.3.1.5~precise                                     Nite development package
ii  libopenni-sensor-primesense-dev             5.1.0.41-2+precise1                                 Microsoft Kinect sensor modules for the OpenNI framework
ii  libopenni-sensor-primesense0                5.1.0.41-2+precise1                                 Microsoft Kinect sensor modules for the OpenNI framework
ii  libopenni0                                  1.5.4.0-4+precise1                                  framework for sensor-based 'Natural Interaction'
ii  openni-utils                                1.5.4.0-4+precise1                                  debug and test utilities OpenNI framework
ii  ros-fuerte-openni-camera                    1.8.6-s1367557025~precise                           An OpenNI camera ROS driver
ii  ros-fuerte-openni-kinect                    0.5.2-s1378387046~precise                           The ROS OpenNI project
ii  ros-fuerte-openni-launch                    1.8.3-s1378376958~precise                           Entry point for using OpenNI cameras in ROS
ii  ros-fuerte-openni-tracker                   0.1.3-s1367542410~precise                           OpenNI skeleton tracker
ii  ros-groovy-openni-camera                    1.8.9-0precise-20130906-2235-+0000                  A ROS driver for OpenNI depth (+ RGB) cameras. These include: Microsoft Kinect, PrimeSense PSDK, ASUS Xtion Pro and Pro Live The driver publishes raw depth, RGB, and IR image streams.
ii  ros-hydro-openni-camera                     1.9.0-0precise-20130824-0428-+0000                  A ROS driver for OpenNI depth (+ RGB) cameras. These include: Microsoft Kinect, PrimeSense PSDK, ASUS Xtion Pro and Pro Live The driver publishes raw depth, RGB, and IR image streams.
georgebrindeiro commented 11 years ago

I purged all ROS, PCL and OpenNI packages and, after a world of pain dealing with broken packages, figured that the problem was that I had some stuff lying around from an old standalone PCL installation. So I removed that as well, along with the associated ppa and now I have a working system. Thanks for the support!

LiliMeng commented 10 years ago

Hi,

I have similar problems as following:

The following information may help resolve the situation:

The following packages have unmet dependencies:
 ros-fuerte-openni-camera : Depends: libopenni-dev but it is not going to be installed
                            Depends: libopenni-sensor-primesense-dev but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

Thank you!

wjwwood commented 10 years ago

@LiliMeng what version of Ubuntu?

LiliMeng commented 10 years ago

12.04 :) @wjwwood

wjwwood commented 10 years ago

@LiliMeng fuerte is no longer supported, so if there is a problem with the debs we will likely not spend time on that, but I don't know why it should have stopped working all of a sudden. Make sure you do an sudo apt-get update before installing again and make sure you are only using our package repository and not others which may have different versions of libopenni-dev in them.

@tfoote you have a Lucid machine, can you verify this is a problem?

tfoote commented 10 years ago

I have openni installed for fuerte and groovy on my precise machine.

$ dpkg -l *openni*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                          Version                       Description
+++-=============================-=============================-==========================================================================
ii  libopenni-dev                 1.5.4.0-4+precise1            headers for OpenNI 'Natural Interaction' frameworks
ii  libopenni-nite-dev            1.3.1.5~precise               Nite development package
ii  libopenni-sensor-primesense-d 5.1.0.41-2+precise1           Microsoft Kinect sensor modules for the OpenNI framework
ii  libopenni-sensor-primesense0  5.1.0.41-2+precise1           Microsoft Kinect sensor modules for the OpenNI framework
ii  libopenni0                    1.5.4.0-4+precise1            framework for sensor-based 'Natural Interaction'
un  openni-dev                    <none>                        (no description available)
un  openni-doc                    <none>                        (no description available)
ii  openni-utils                  1.5.4.0-4+precise1            debug and test utilities OpenNI framework
ii  ros-fuerte-openni-camera      1.8.6-s1367557025~precise     An OpenNI camera ROS driver
ii  ros-fuerte-openni-kinect      0.5.2-s1378387046~precise     The ROS OpenNI project
ii  ros-fuerte-openni-launch      1.8.3-s1378376958~precise     Entry point for using OpenNI cameras in ROS
ii  ros-fuerte-openni-tracker     0.1.3-s1367542410~precise     OpenNI skeleton tracker
ii  ros-groovy-openni-camera      1.8.9-0precise-20140314-0228- A ROS driver for OpenNI depth (+ RGB) cameras. These include: Microsoft Ki
ii  ros-hydro-openni-camera       1.9.2-0precise-20140401-1945- A ROS driver for OpenNI depth (+ RGB) cameras. These include: Microsoft Ki
ii  ros-hydro-openni-launch       1.9.5-0precise-20140421-0301- Launch files to open an OpenNI device and load all nodelets to convert raw

Make sure that you don't have openni-dev installed. It conflicts with libopenni-dev I believe.

wjwwood commented 10 years ago

Sorry, I meant Precise.

LiliMeng commented 10 years ago

Thank you so much for you guys kind help!

@tfoote It seems that you have both openni-dev and libopenni-dev installed from your configuration.

The following is my results: $ dpkg -l openni Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ un libopenni-dev (no description available) un libopenni-nite (no description available) un libopenni-sens (no description available) rc libopenni-sens 5.1.0.41-2+pre Microsoft Kinect sensor modules for the Open rc libopenni0 1.5.4.0-4+prec framework for sensor-based 'Natural Interact ii openni-dev 1.3.2.1-4+prec OpenNI Framework - libraries un openni-doc (no description available) un openni-utils (no description available) un ros-fuerte-ope (no description available) un ros-fuerte-ope (no description available) un ros-fuerte-ope (no description available) un ros-fuerte-ope (no description available) un ros-groovy-ope (no description available)

So you mean to uninstall openni-dev?

LiliMeng commented 10 years ago

So I used $sudo apt-get --purge remove openni-dev

Then $ sudo apt-get install ros-hydro-openni-camera works, but when I try to $ sudo apt-get install ros-hydro-openni-launch, it said the following in the terminal:

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 resolve the situation:

The following packages have unmet dependencies: ros-hydro-openni-launch : Depends: ros-hydro-rgbd-launch but it is not going to be installed E: Unable to correct problems, you have held broken packages.

tfoote commented 10 years ago

I don't have openni-dev installed. Note the "un" at the beginning of the line.

Apt is terrible for debugging. You can get a little bit better error messages by using aptitude. But otherwise you will need to recursively ask to install the one that it says it can't install until you get a useful error message.

LiliMeng commented 10 years ago

Thank you so much for your quick and kind advice! I installed libopenni-dev and uninstalled openni-dev as you! :)

But now it turned out to be an egg-chicken problem...

  1. The following packages have unmet dependencies: ros-hydro-openni-launch : Depends: ros-hydro-rgbd-launch but it is not going to be installed E: Unable to correct problems, you have held broken packages.

    Therefore, I did $ sudo apt-get install ros-hydro-rgbd-launch

  2. Then new problem came: The following packages have unmet dependencies: ros-hydro-rgbd-launch : Depends: ros-hydro-depth-image-proc but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Therefore, I did $ sudo apt-get install ros-hydro-depth-image-proc

  1. The new problem after 2: The following packages have unmet dependencies: ros-hydro-depth-image-proc : Depends: ros-hydro-pcl-ros but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Therefore, I did $ sudo apt-get install ros-hydro-pcl-ros

  1. New problem after 3: The following packages have unmet dependencies: ros-hydro-pcl-ros : Depends: libpcl-io-1.7 but it is not going to be installed Depends: libpcl-1.7-all but it is not going to be installed Depends: libpcl-1.7-all-dev but it is not going to be installed Depends: ros-hydro-pcl-conversions but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Therefore, I did $ sudo apt-get install libpcl-io-1.7

  1. The new problem after 4: The following information may help resolve the situation:

The following packages have unmet dependencies: libpcl-io-1.7 : Depends: ps-engine but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Therefore, I did $ sudo apt-get install ps-engine

  1. The new problem after 5: The following packages have unmet dependencies: ps-engine : Depends: openni-dev (>= 1.5.2.23~precise) but it is not going to be installed E: Unable to correct problems, you have held broken packages.

So it seems that I shall install openni-dev again????

tfoote commented 10 years ago

ahh, what are your apt sources? do you have the PCL ppa on your path?

LiliMeng commented 10 years ago

@tfoote You mean the ppa sources under the directory /etc/apt/sources.list.d? It doesn't have PCL ppa under this directory.

tfoote commented 10 years ago

I think that's your problem. The PCL debs on precise use the old drivers. In the ROS repos they use the newer openni drivers. If what I think is right we had a debian increment such that the ROS ones took priority over the PCL ones and had the newer libopenni dependency. However I think that pcl has released a new package version which now takes priority.

As a workaround you can see if you can force an installation of pcl 1.7.0. And if that doesn't work you will need to remove the pcl ppa and remove all pcl and openi packages which might have come from that repo and try to install the ros packages.

LiliMeng commented 10 years ago

Thank you so much! It seems that the pcl cannot be installed.

The following packages have unmet dependencies: libpcl-all : Depends: libpcl-1.7-all but it is not going to be installed E: Unable to correct problems, you have held broken packages.

Other users have similar problems on this webpage : http://www.pcl-users.org/unmet-dependencies-error-when-installing-on-ubuntu-td4029063.html I'll try to remove all pcl

https://wiki.ccs.neu.edu/display/GPC/pcl-trunk+on+Ubuntu+12.04+LTS+64bit

Package version conflicts with ROS PPA: the openni-dev and ps-engine packages are also available from the ROS PPA, but the ROS and PCL PPAs may have different versions (the libusb package is from the standard Ubuntu repository). If you are unsure from where you got a package you can check the its origin with apt-cache policy .... In the default configuration, apt-get will install the newest version of a package if multiple versions are available from different repositories. As of 7/20/13, the ROS repository has later versions of openni-dev and ps-engine than the PCL repository. Thus, if you have the ROS repository enabled, you will probably have their packages. This might work just fine, in fact Jochen recommended it as one option for installing a newer version of OpenNI 1.x in Ubuntu 12.04 than the current default version in the PCL PPA for that platform. If you prefer to stick with the PCL PPA only then one option is to disable the ROS repository (remember to apt-get update) and then remove the ROS versions of the packages before installing the PCL versions. Another option is to use the apt preferences system to "pin" these packages to the PCL PPA origin.

LiliMeng commented 10 years ago

Finally it works when I reinstalled Ubuntu 12.04 and Hydro!!! :) It seems that I have installed too many versions of ROS and pcl too many times! (over 30 times...) :)

Learned a lot from you guys! Highly appreciate all your help!:)