source setup.bash in install space does not work when deployed onto different machine
I install my catkin workspace on machine A to a directory (e.g. /home/usera/catkin_ws/install
) and would like to use it on machine B in a different location (let's say a different user home, e.g. /home/userb/catkin_ws/install
). My setup uses another workspace in /opt/overlay/ that is overlayed.
Now, on machine A everything works fine, when I source the setup.bash (therefore I check the ROS_PACKAGE_PATH, which is /home/usera/catkin_ws/install/share:/opt/overlay/share:/opt/ros/kinetic/share
). Unfortunately, on machine B, sourcing setup.bash does not work, the ROS_PACKAGE_PATH is /opt/overlay/share:/opt/ros/kinetic/share
.
I have found the following ROS answers:
So apparently ROS uses absolute paths and I need to mirror the install location in machine A to machine B, in order to get the install space working on machine B.
So my questions are:
- Is there a way to deploy the install space to machine B to a different location than on machine A (no location mirroring)?
- If not, what is the advantage of having absolute paths? As this makes deployment of ROS binaries via an install space very cumbersome in my opinion.
opt/overlay/share:/opt/ros/kinetic/share
doesn't look right, why is there no leading/
? The install space should be relocatable, but the workspace it overlays needs to be on both machines (same as for binaries you built against). See: https://github.com/ros/catkin/issues/490sorry, that was a typo. it is
/opt/overlay/share:/opt/ros/kinetic/share
of course. corrected this in the original question. the overlaid workspace is the same on both machines. I will take a look at the issue and come back with more information. thanks!