Ask Your Question
0

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

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

sdyy gravatar image

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

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
0

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

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

Your Answer

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

Add Answer

Question Tools

1 follower

Stats

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

Seen: 28 times

Last updated: Nov 19