0
$\begingroup$

Rosanswers logo

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)


Originally posted by weiin on ROS Answers with karma: 2268 on 2012-07-01

Post score: 0


Original comments

Comment by Daniel Stonier on 2012-07-01:
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.

Comment by Daniel Stonier on 2012-07-01:
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?

Comment by weiin on 2012-07-01:
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

Comment by joq on 2012-07-02:
Catkin is causing trouble because you checked out the latest (Fuerte) sources. The Electric sources should work correctly.

Comment by Daniel Stonier on 2012-07-03:
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.

$\endgroup$

2 Answers 2

0
$\begingroup$

Rosanswers logo

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.


Originally posted by ipso with karma: 1416 on 2012-07-01

This answer was ACCEPTED on the original site

Post score: 3


Original comments

Comment by weiin on 2012-07-01:
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..

Comment by weiin on 2012-07-01:
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?

Comment by ipso on 2012-07-01:
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?

Comment by ipso on 2012-07-01:
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.

Comment by weiin on 2012-07-01:
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

Comment by weiin on 2012-07-01:
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.

Comment by Daniel Stonier on 2012-07-01:
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).

Comment by Lorenz on 2012-07-01:
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.

Comment by joq on 2012-07-02:
To build for electric, check out the correct source: roslocate info qt_ros --distro=electric | rosws merge -.

Comment by weiin on 2012-07-02:
Seems like the strict dependencies ripple effect on other unrelated packages means there is no way to install just one stack without forcing an update on others. Source checkout looks like the only way out in this case.

Comment by Lorenz on 2012-07-02:
Normally, keeping your system up-to-date is not a bad thing. I can remember only one case where an update broke my system (http://permalink.gmane.org/gmane.science.robotics.ros.user/16371) but it's unlikely that it happens again. I would prefer updating the system over building from source.

Comment by weiin on 2012-07-02:
unfortunately there is somewhat of a paranoia in my lab about updates (esp when a presentation is due). I do remember an update in turtlebot (when we allowed update manager to auto update) that caused our demo launch files to "fail". It wasn't system breaking, but still...

$\endgroup$
0
$\begingroup$

Rosanswers logo

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.


Originally posted by Daniel Stonier with karma: 3170 on 2012-07-01

This answer was NOT ACCEPTED on the original site

Post score: 1

$\endgroup$

Your Answer

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