Ask Your Question
0

How to install just one stack?

asked 2012-07-01 17:32:06 -0500

weiin gravatar image

updated 2012-07-02 23:31:43 -0500

I am trying to install the qt-ros stack using:

turtlebot@turtlebot-0131:~$ sudo apt-get install ros-electric-qt-ros

But a lot of extra packages are installed even though they are not dependencies of qt-ros.

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  linux-headers-2.6.32-28 linux-headers-2.6.32-28-generic
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
  ros-electric-assimp ros-electric-bond-core ros-electric-bullet
  ros-electric-common ros-electric-common-msgs ros-electric-common-rosdeps
  ros-electric-diagnostics ros-electric-diagnostics-monitors
  ros-electric-driver-common ros-electric-eigen ros-electric-executive-smach
  ros-electric-executive-smach-visualization ros-electric-filters
  ros-electric-geometry ros-electric-geometry-experimental
  ros-electric-geometry-visualization ros-electric-image-common
  ros-electric-image-pipeline ros-electric-image-transport-plugins
  ros-electric-joystick-drivers ros-electric-laser-pipeline
  ros-electric-multimaster-experimental ros-electric-navigation
  ros-electric-nodelet-core ros-electric-openni-kinect
  ros-electric-orocos-kinematics-dynamics ros-electric-perception-pcl
  ros-electric-pluginlib ros-electric-robot-model
  ros-electric-robot-model-visualization ros-electric-ros
  ros-electric-ros-comm ros-electric-rx ros-electric-slam-gmapping
  ros-electric-turtlebot ros-electric-turtlebot-apps
  ros-electric-turtlebot-robot ros-electric-vision-opencv
  ros-electric-visualization ros-electric-visualization-common
  ros-electric-xacro
The following NEW packages will be installed:
  ros-electric-qt-ros
The following packages will be upgraded:
  ros-electric-assimp ros-electric-bond-core ros-electric-bullet
  ros-electric-common ros-electric-common-msgs ros-electric-common-rosdeps
  ros-electric-diagnostics ros-electric-diagnostics-monitors
  ros-electric-driver-common ros-electric-eigen ros-electric-executive-smach
  ros-electric-executive-smach-visualization ros-electric-filters
  ros-electric-geometry ros-electric-geometry-experimental
  ros-electric-geometry-visualization ros-electric-image-common
  ros-electric-image-pipeline ros-electric-image-transport-plugins
  ros-electric-joystick-drivers ros-electric-laser-pipeline
  ros-electric-multimaster-experimental ros-electric-navigation
  ros-electric-nodelet-core ros-electric-openni-kinect
  ros-electric-orocos-kinematics-dynamics ros-electric-perception-pcl
  ros-electric-pluginlib ros-electric-robot-model
  ros-electric-robot-model-visualization ros-electric-ros
  ros-electric-ros-comm ros-electric-rx ros-electric-slam-gmapping
  ros-electric-turtlebot ros-electric-turtlebot-apps
  ros-electric-turtlebot-robot ros-electric-vision-opencv
  ros-electric-visualization ros-electric-visualization-common
  ros-electric-xacro
41 upgraded, 1 newly installed, 0 to remove and 75 not upgraded.
Need to get 217MB/250MB of archives.
After this operation, 5,419kB of additional disk space will be used.
Do you want to continue [Y/n]?

Is there a way to install only the stack I want? "--no-install-recommends" flag for apt-get does not seem to help. (EDIT: "--no-upgrade" also does not work, the same list of extra packages shows)

I also tried to "git clone" the source into /opt/ros/electric/stacks, but I will get an error at "rosbuild_include(qt_build qt-ros)" during rosmake. (Update:As pointed out by joq and snorri, git clone gets the fuerte version, which is irrelevant to the problem here since I'm looking at the electric version)

(EDIT: This does not happen on another machine with same Electric on Lucid ie I get to install only the stack I want. But, it could also be that this machine is regularly updated, while I've freezed the updates for the turtlebot machine)

edit retag flag offensive close merge delete

Comments

Sorry I missed this for so long. I'll look into it and see if I can reproduce the issues. It really shouldn't be pulling in laser, image or perception stacks, only the message stacks. It may be that some of them are messily dragging in rather unnecessary dependencies.

Daniel Stonier gravatar image Daniel Stonier  ( 2012-07-01 22:13:28 -0500 )edit

Git cloning the tag, so long as you ensure that your stack is cloned somewhere in your ROS_PACKAGE_PATH. What kind of error were you getting?

Daniel Stonier gravatar image Daniel Stonier  ( 2012-07-01 22:14:14 -0500 )edit

it seems the error (if I do git clone) arises from the catkin. I'm still trying to understand what this means though. Rosmakes fine if I copy over the old Cmakelist

weiin gravatar image weiin  ( 2012-07-01 22:22:30 -0500 )edit

Catkin is causing trouble because you checked out the latest (Fuerte) sources. The Electric sources should work correctly.

joq gravatar image joq  ( 2012-07-02 05:41:27 -0500 )edit

There is actually a fuerte branch for fuerte. The master, as to be expected is quite experimental, and because of catkin, quite likely to be broken at any given time.

Daniel Stonier gravatar image Daniel Stonier  ( 2012-07-03 02:04:04 -0500 )edit

2 Answers

Sort by ยป oldest newest most voted
3

answered 2012-07-01 20:47:29 -0500

ipso gravatar image

updated 2012-07-01 22:05:29 -0500

From the apt-get output it seems you are running slightly older version of a bunch of stacks, which is why apt-get shows them under 'The following packages will be upgraded'.

As you can see from the final output:

41 upgraded, 1 newly installed, 0 to remove and 75 not upgraded.

Only 1 new package will be installed, while 41 will be upgraded. The new one is the requested ros-electric-qt-ros.

If you don't want to upgrade, you could call apt like this (from the apt-get manpage for Lucid):

sudo apt-get install --no-upgrade ros-electric-qt-ros

(Maverick also has --only-upgrade for the opposite effect).

BTW: this is not really ROS specific, but more of a 'how do I do this with apt-get'.


Also:

I also tried to "git clone" the source into /opt/ro/electric/stacks, but I will get an error at "rosbuild_include(qt_build qt-ros)" during rosmake.

I don't think you should ever do that. If you want to work with source checkouts, look at rosws tutorial.


EDIT: It could be that ros-electric-qt-ros depends on a specific version of the other ROS packages, which drags in the other dependencies. AFAIK all ROS packages have strict dependencies ('=' instead of '>='), which could result in this behaviour. Not sure though.

So then if A dep B (=1.0) (new pkg) and C dep B (=0.9) (already installed), but there is a C in repo which dep B(=1.0), it seems logical apt-get tries to install the C with dep B(=1.0). You can't request it not to update, as it would be unable to satisfy dependencies of your new package A.

edit flag offensive delete link more

Comments

I have also tried the "--no-upgrade" flag, but that does not work. I have no intention of upgrading the old packages, unless necessary. Before Fuerte, I remember installing only the stack using the same command, so I'm not sure why it isn't working now. It could also be apt-get version, so..

weiin gravatar image weiin  ( 2012-07-01 21:12:43 -0500 )edit

any reason why "git clone" should not be used? rosws is new to me. I've been using source checkout previously (svn co, hg clone, but not git) and they all work fine. did something change?

weiin gravatar image weiin  ( 2012-07-01 21:15:54 -0500 )edit

What does 'does not work' mean? Could you be a bit more specific? According to the man page it should do exactly what you want. Also: why do you mention Fuerte now, if you are installing ros-electric-qt-ros?

ipso gravatar image ipso  ( 2012-07-01 21:17:47 -0500 )edit
1

Using git is fine, just not into /opt/ros. That directory is read-only (for normal users) and is managed by your package manager. Manually changing stuff there is going to be confusing at best. Disruptive at worst. rosws is the tool of choice for source checkouts of ROS packages for some time now.

ipso gravatar image ipso  ( 2012-07-01 21:19:57 -0500 )edit

yes, i'm installing for electric. Mentioning Fuerte because that's the most obvious thing that seems to have changed in the qt-ros package. I've installed qt-ros in another machine prior to fuerte release, and looking at some of the code, alot seems to have changed

weiin gravatar image weiin  ( 2012-07-01 21:23:51 -0500 )edit

trying to get qt-ros into another machine, but it seems somewhat odd that I cannot just download one stack in a straightforward manner like I've done before.

weiin gravatar image weiin  ( 2012-07-01 21:27:05 -0500 )edit

Shouldn't be much that's changed from electric to fuerte, just an update for the way sigslots are used (http://ros.org/wiki/qt_ros/Tutorials/Mixing%20Qt%20and%20Boost%20Signals). The qt-ros master though is very different - it was doing testing with the new catkin build environment - very unstable).

Daniel Stonier gravatar image Daniel Stonier  ( 2012-07-01 22:19:17 -0500 )edit
2

As @ipso points out correctly, the ROS debian packages use strict dependencies. ros-fuerte-qt-ros depends on ros-fuerte-ros and ros-fuerte-ros-comm. If one of the two has been updated, the new qt package depends on the newer one which requires an update of all other ros packages.

Lorenz gravatar image Lorenz  ( 2012-07-01 22:19:54 -0500 )edit
1

answered 2012-07-01 22:30:58 -0500

Daniel Stonier gravatar image

updated 2012-07-01 22:31:26 -0500

If you're git cloning the source, you'll end up with the master branch. That is using catkin and will only work with the latest ros, ros_comm sources...and even then, only from time to time - catkin is evolving very fast. You need to checkout either the electric or fuerte branch after cloning.

As for the dependencies, there is only dependencies for ros and ros_comm. So the others are likely being brought in by the ripple effect of upgrades. See ipso and lorenz' good posts about that.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

Stats

Asked: 2012-07-01 17:32:06 -0500

Seen: 342 times

Last updated: Jul 02 '12