ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

rosdep -simulate --reinstall list is not same as real install

asked 2020-11-18 21:36:27 -0500

sdyy gravatar image

updated 2020-11-19 02:25:14 -0500

gvdhoorn gravatar image

I want deploy my package to other PC, so I use

rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO -s --reinstall

to get all dependency.

I will get a list

sudo -H apt-get install -y libeigen3-dev
sudo -H apt-get install -y freeglut3-dev
sudo -H apt-get install -y qtbase5-dev
sudo -H apt-get install -y libgflags-dev
sudo -H apt-get install -y libgeographic-dev
sudo -H apt-get install -y python-nose
sudo -H apt-get install -y libpcl-dev
sudo -H apt-get install -y libcurl4-openssl-dev
sudo -H apt-get install -y curl
sudo -H apt-get install -y libpugixml-dev

But after I install this list and copy my package install to target machine, I found it lost many dependency, so I copy the src and use

rosdep install -y --from-paths src --ignore-src --rosdistro $ROS_DISTRO

it shows it need to call following list

sudo -H apt-get install -y ros-melodic-urdf
sudo -H apt-get install -y ros-melodic-filters
sudo -H apt-get install -y ros-melodic-grid-map-msgs
sudo -H apt-get install -y ros-melodic-imu-tools
sudo -H apt-get install -y ros-melodic-perception-pcl
sudo -H apt-get install -y ros-melodic-tf
sudo -H apt-get install -y ros-melodic-jsk-recognition-msgs
sudo -H apt-get install -y ros-melodic-diagnostic-aggregator

Seem all ROS version dependent node or library is not installed by simulate

How do I get the all dependency by rosdep or any other tool can help??

edit retag flag offensive close merge delete

1 Answer

Sort by » oldest newest most voted

answered 2020-11-19 21:08:10 -0500

tfoote gravatar image

You've found a bit of a gap in the functionality. There are core rosdep rules and the ability to install ros packages as dependencies through rosdep which was extended later.

You can get the list of ROS packages that you need by asking for rospack depends <PACKAGE_NAME> and that will give you the second list. With some munging to get to the debian names.

In general for this use case we generally just recommend invoking rosdep on the target machine as usual. Then you don't need to worry about parallel book-keeping the dependency lists. This is assuming you're installing from source.

For any production deployment it's highly recommended to build actual packages which will automatically install the dependencies for you automatically.

edit flag offensive delete link more

Question Tools

1 follower


Asked: 2020-11-18 21:36:27 -0500

Seen: 213 times

Last updated: Nov 19 '20