0
$\begingroup$

Rosanswers logo

Hi,

I need to install a package for armhf that is not yet available for armhf. So I've been reading the tutorials on rosinstall, rosdep, roslocate and rosws. When I do sudo roslocate info arm_navigation --distro=groovy | rosws merge -, I'm asked to give a target workspace. But the package I want to install from source is not mine and should be install into /opt/ros/groovy/stacks. So what should the required workspace be then? /opt/ros/groovy/stacks ?

Thanks...

EDIT:

Here's the output from the point where it goes wrong:

Registering documents with scrollkeeper...
Setting up libgnutls-openssl27 (2.12.14-5ubuntu3.5) ...
Setting up libgnutlsxx27 (2.12.14-5ubuntu3.5) ...
Setting up libidn11-dev (1.23-2) ...
Setting up libgpg-error-dev (1.10-2ubuntu1) ...
Setting up libgcrypt11-dev (1.5.0-3ubuntu0.2) ...
Setting up libtasn1-3-dev (2.10-1ubuntu1.1) ...
Setting up libp11-kit-dev (0.12-2ubuntu1) ...
Setting up libgnutls-dev (2.12.14-5ubuntu3.5) ...
Setting up librtmp-dev (2.4~20110711.gitc28f1bab-1) ...
Setting up libcurl4-openssl-dev (7.22.0-3ubuntu4.3) ...
Processing triggers for libc-bin ...
ldconfig deferred processing now taking place
executing command [sudo apt-get install -y libtbb-dev]
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package libtbb-dev 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 'libtbb-dev' has no installation candidate
ERROR: the following rosdeps failed to install
  apt: command [sudo apt-get install -y libtbb-dev] failed

Originally posted by hvn on ROS Answers with karma: 72 on 2013-10-21

Post score: 1


Original comments

Comment by William on 2013-10-28:
Have you done an sudo apt-get update recently? This doesn't appear to be a ROS specific issue.

Comment by hvn on 2013-10-28:
Yes, I did. To be certain, I did the update again, then the rosdep install, and it stops again at the libtbb-dev error. For completeness, I'm running Ubuntu12.04 armhf with groovy.

Comment by William on 2013-10-28:
This could be a problem with the armhf debs being stale? @ahendrix might know something about this.

Comment by hvn on 2013-10-28:
I know he is the maintainer of ros for arm. How can he be approached ?

Comment by William on 2013-10-28:
I live with him :D, I'll ask him to review this question.

Comment by hvn on 2013-10-30:
Can you either of you give me a follow-up ?

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

libtbb-dev is an upstream package (NOT ROS) that is required to build one of the ROS packages; I think flann, assimp or opencv, if I'm remembering correctly.

There is no binary build of libtbb-dev for Ubuntu Precise armhf, and when I was doing Groovy builds, it didn't build on armhf.

Newer versions of Ubuntu (Raring) have a newer version of libtbb-dev which builds and is in the upstream repository; you may want to try using a newer version of Ubuntu, or downloading the sources for the newer libtbb-dev from Raring and trying to build and install it on Precise.


Originally posted by ahendrix with karma: 47576 on 2013-10-30

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by hvn on 2013-10-30:
Thank you for this follow-up. Among packages that I do need are opencv, cv-bridge, image-transport, sensor-msgs, rosbag and arm-kinematics. Are they (or will those be) available on Raring armhf ? I prefer installing from repository since building on 1 GHz/500MB is not a task I look forward to.

Comment by hvn on 2013-11-01:
About installing Raring: there are 2 images I can find: desktop-omap4 and server-omap. For which one is the armhf Raring repository intended? I have an omap(3) board. Could you please follow-up ?

$\endgroup$
0
$\begingroup$

Rosanswers logo

You need to clone the source code into a ROS workspace so that you can build it. The "workspace" at /opt/ros/groovy/stacks is a special sort of installed set of stacks. By default you cannot install a rosbuild stack, the rosrelease-legacy (https://github.com/ros-infrastructure/rosrelease-legacy) system has some scripts which sort of install rosbuild stacks so they can be installed from apt-get.

I would recommend that you setup a ROS workspace in your home folder, clone the code there, build it, and then source that before starting your work.

$ mkdir ~/ros_ws
$ cd ~/ros_ws
$ rosws init .
$ roslocate info arm_navigation --distro=groovy | rosws merge -
$ rosws update  # This should clone the code
$ source ./setup.bash
$ rosmake arm_navigation

The above will only work if you already have all of the dependencies of arm_navigation installed. If you need to get all of the missing dependencies as well, I would use rosinstall_generator (http://wiki.ros.org/rosinstall_generator):

$ mkdir -p ~/arm_navigation_ws/catkin
$ mkdir -p ~/arm_navigation_ws/rosbuild
$ cd ~/arm_navigation_ws
# This is important so that the packages you already have are on the ROS_PACKAGE_PATH
$ source /opt/ros/groovy/setup.bash
# First get the catkin dependencies you are missing
$ rosinstall_generator --rosdistro groovy --wet-only --exclude RPP --deps --tar arm_navigation > catkin/deps.rosinstall
# Then get a list of the rosbuild ones (including arm_navigation)
$ rosinstall_generator --rosdistro groovy --dry-only --exclude RPP --deps --tar arm_navigation > rosbuild/deps.rosinstall
# Now deal with the catkin packages first
# (rosbuild can depend on catkin, but not the other way around, so caktin always gets built first)
$ cd catkin
# Fetch the packages
$ wstool init src ./deps.rosinstall -j8
# Have rosdep try to install any missing system dependencies
$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
# Now build and install stuff, result should be in ~/arm_navigation_ws/catkin/install
$ catkin_make install
# Now deal with rosbuild
$ cd ../rosbuild
# Create a ros ws here which references the catkin result from before
$ rosws init ./ ../catkin/install
$ rosws merge deps.rosinstall
$ rosws update
$ source ./setup.bash
$ rosmake -a

After that's done you can source ~/arm_navigation_ws/rosbuild/setup.bash anytime you need to use all the code you just built (it includes packages from /opt/ros/groovy.


Originally posted by William with karma: 17335 on 2013-10-21

This answer was NOT ACCEPTED on the original site

Post score: 2


Original comments

Comment by hvn on 2013-10-24:
Hi,

Thank you for this very extensive answer. Question though: is this supposed to install all dependencies? Because the installation of the missing ones by rosinstall-generator quits on libttb-dev.

Thank you.

Comment by William on 2013-10-24:
libttb-dev (libtbb-dev?) should be installed by rosdep, I didn't include the the rosdep step for rosbuild packages, is it one of the rosbuild ("dry") packages which depends on this library?

Comment by hvn on 2013-10-24:
The output says: processing triggers for libc-bin...ldconfig deferred processing now taking place.... Then it tries to install libtbb-dev. It comes from the output of installing the dependencies, and is the result of "rosdep install" before "catkin-make install".

Comment by hvn on 2013-10-28:
@Wiliam: I would appreciate if you could follow up on my last comment.

Comment by William on 2013-10-28:
Can you extend your original answer with the full output of this error? I don't follow what you mean in your post here.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.