Ask Your Question

Revision history [back]

Install on shared HPC cluster as normal user without using OS repos

Hi,

One of our users has asked for us to install a package (FlightGoggles) that depends on ROS. However, I am struggling to get ROS working.

The base OS image for our system is a _read-only_, minimal CentOS 6 install. All centrally-installed software packages that we've installed for users live in our /apps directory, where they're separate and versioned (for example -- the Python installation that I've been using is at /apps/python3/3.6.7). We use environment modules to manage access to these -- e.g. module load python3/3.6.7 makes the needed changes to the environment such that that Python install is usable.

I've so far managed to get rosdep to install in my own directory. I needed to patch one file to change the hard-coded(!) /etc/ros to something that is writable, and then rosdep init and rosdep update worked properly. However, I cannot get the Catkin workspace to build.

I'm following the instructions at http://wiki.ros.org/kinetic/Installation/Source, and can download the source packages, but attempting to install them fails:

$ rosinstall_generator desktop --rosdistro kinetic --deps --wet-only --tar > kinetic-desktop-wet.rosinstall
<success>
$ wstool init -j8 src kinetic-desktop-wet.rosinstall
<success>
$ rosdep install --from-paths src --ignore-src --rosdistro kinetic -y
rosdep detected OS: [centos] aliasing it to: [rhel]
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rospack: No definition of [python-coverage] for OS [rhel]
rqt_logger_level: No definition of [python-rospkg] for OS [rhel]
roslz4: No definition of [lz4] for OS [rhel]
rqt_robot_monitor: No definition of [python-rospkg] for OS [rhel]
rqt_bag: No definition of [python-rospkg] for OS [rhel]
webkit_dependency: No definition of [python-qt5-bindings-webkit] for OS [rhel]
roscreate: No definition of [python-rospkg] for OS [rhel]
roslaunch: No definition of [python-rospkg] for OS [rhel]
qt_gui_py_common: No definition of [python-rospkg] for OS [rhel]
actionlib: No definition of [python-wxtools] for OS [rhel]
rqt_publisher: No definition of [python-rospkg] for OS [rhel]
python_qt_binding: No definition of [python-qt5-bindings] for OS [rhel]
catkin: No definition of [python-nose] for OS [rhel]
urdf: No definition of [liburdfdom-headers-dev] for OS [rhel]
qt_gui: No definition of [tango-icon-theme] for OS [rhel]
collada_parser: No definition of [collada-dom] for OS [rhel]
rqt_pose_view: No definition of [python-rospkg] for OS [rhel]
rqt_top: No definition of [python-psutil] for OS [rhel]
rosclean: No definition of [python-rospkg] for OS [rhel]
rqt_console: No definition of [python-rospkg] for OS [rhel]
geometric_shapes: No definition of [libqhull] for OS [rhel]
rosgraph: No definition of [python-rospkg] for OS [rhel]
rqt_robot_steering: No definition of [python-rospkg] for OS [rhel]
rqt_runtime_monitor: No definition of [python-rospkg] for OS [rhel]
roslisp: No definition of [sbcl] for OS [rhel]
resource_retriever: No definition of [python-rospkg] for OS [rhel]
rqt_web: No definition of [python-rospkg] for OS [rhel]
rviz: No definition of [liburdfdom-headers-dev] for OS [rhel]
gl_dependency: No definition of [python-qt5-bindings-gl] for OS [rhel]
kdl_parser: No definition of [liburdfdom-headers-dev] for OS [rhel]
rqt_dep: No definition of [python-rospkg] for OS [rhel]
rqt_topic: No definition of [python-rospkg] for OS [rhel]
rqt_service_caller: No definition of [python-rospkg] for OS [rhel]
robot_state_publisher: No definition of [liburdfdom-headers-dev] for OS [rhel]
qt_dotgraph: No definition of [python-pygraphviz] for OS [rhel]
rqt_shell: No definition of [python-rospkg] for OS [rhel]
diagnostic_common_diagnostics: No definition of [python-psutil] for OS [rhel]
rqt_tf_tree: No definition of [python-rospkg] for OS [rhel]
rosmake: No definition of [python-rospkg] for OS [rhel]
robot_model: No definition of [liburdfdom-tools] for OS [rhel]
opencv3: No definition of [protobuf] for OS [rhel]
roswtf: No definition of [python-rospkg] for OS [rhel]
urdf_parser_plugin: No definition of [liburdfdom-headers-dev] for OS [rhel]
rosbag: No definition of [python-rospkg] for OS [rhel]
rosmsg: No definition of [python-rospkg] for OS [rhel]
rosunit: No definition of [python-rospkg] for OS [rhel]
rqt_bag_plugins: No definition of [python-cairo] for OS [rhel]
rqt_graph: No definition of [python-rospkg] for OS [rhel]
roslib: No definition of [python-rospkg] for OS [rhel]
octomap: No definition of [cmake] for OS [rhel]
rqt_msg: No definition of [python-rospkg] for OS [rhel]
collada_urdf: No definition of [liburdfdom-headers-dev] for OS [rhel]
rospy: No definition of [python-rospkg] for OS [rhel]
rosmaster: No definition of [python-defusedxml] for OS [rhel]
rqt_plot: No definition of [python-rospkg] for OS [rhel]
rqt_py_console: No definition of [python-rospkg] for OS [rhel]

The error message suggests that it's trying to find a system package for e.g. python-coverage -- but I explicitly want it to build from source. Moveover, the Python that it's using is not one that came from the OS repos. Similary, I see cmake there, but CMake is already available (installed in /apps and made available through a module):

> cmake --version
cmake version 3.8.2

How do I make it not try to use OS packages, and instead use those that are already installed via another mechanism?

Thanks, Ben