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

Compiling on centos7

asked 2015-08-26 05:21:01 -0600

aaw gravatar image

updated 2015-08-27 03:22:57 -0600

I am following http://wiki.ros.org/indigo/Installati... and have reached part 2.1.2 Resolving Dependencies

rosdep install --from-paths src --ignore-src --rosdistro indigo -y

I receive the following:

ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
rosconsole: Unsupported OS [centos]
catkin: Unsupported OS [centos]
image_view: Unsupported OS [centos]
urdf: Unsupported OS [centos]
rosgraph: Unsupported OS [centos]
resource_retriever: Unsupported OS [centos]
nodelet_topic_tools: Unsupported OS [centos]
rqt_graph: Unsupported OS [centos]
qt_gui: Unsupported OS [centos]
roslib: Unsupported OS [centos]
rosbuild: Unsupported OS [centos]
rosclean: Unsupported OS [centos]
tf: Unsupported OS [centos]
convex_decomposition: Unsupported OS [centos]
roswtf: Unsupported OS [centos]
geometric_shapes: Unsupported OS [centos]
rqt_web: Unsupported OS [centos]
robot_state_publisher: Unsupported OS [centos]
rqt_py_console: Unsupported OS [centos]
rqt_topic: Unsupported OS [centos]
rqt_top: Unsupported OS [centos]
rqt_rviz: Unsupported OS [centos]
pluginlib: Unsupported OS [centos]
rqt_msg: Unsupported OS [centos]
rqt_service_caller: Unsupported OS [centos]
rqt_pose_view: Unsupported OS [centos]
image_geometry: Unsupported OS [centos]
pcl_conversions: Unsupported OS [centos]
image_rotate: Unsupported OS [centos]
rqt_console: Unsupported OS [centos]
depth_image_proc: Unsupported OS [centos]
python_qt_binding: Unsupported OS [centos]
laser_geometry: Unsupported OS [centos]
rviz: Unsupported OS [centos]
rqt_bag: Unsupported OS [centos]
qt_gui_py_common: Unsupported OS [centos]
eigen_conversions: Unsupported OS [centos]
diagnostic_common_diagnostics: Unsupported OS [centos]
camera_calibration_parsers: Unsupported OS [centos]
laser_filters: Unsupported OS [centos]
camera_calibration: Unsupported OS [centos]
rostime: Unsupported OS [centos]
rospy: Unsupported OS [centos]
rosunit: Unsupported OS [centos]
python_orocos_kdl: Unsupported OS [centos]
stage: Unsupported OS [centos]
bondcpp: Unsupported OS [centos]
rosconsole_bridge: Unsupported OS [centos]
camera_info_manager: Unsupported OS [centos]
roslz4: Unsupported OS [centos]
rqt_bag_plugins: Unsupported OS [centos]
rosmsg: Unsupported OS [centos]
turtlesim: Unsupported OS [centos]
rqt_robot_monitor: Unsupported OS [centos]
rosparam: Unsupported OS [centos]
rospack: Unsupported OS [centos]
tf2: Unsupported OS [centos]
rqt_runtime_monitor: Unsupported OS [centos]
rqt_dep: Unsupported OS [centos]
rqt_plot: Unsupported OS [centos]
rostest: Unsupported OS [centos]
cpp_common: Unsupported OS [centos]
nodelet: Unsupported OS [centos]
stage_ros: Unsupported OS [centos]
rqt_robot_steering: Unsupported OS [centos]
roslaunch: Unsupported OS [centos]
genpy: Unsupported OS [centos]
rqt_shell: Unsupported OS [centos]
roscreate: Unsupported OS [centos]
qt_dotgraph: Unsupported OS [centos]
rqt_publisher: Unsupported OS [centos]
cv_bridge: Unsupported OS [centos]
gazebo_ros: Unsupported OS [centos]
rosbag_storage: Unsupported OS [centos]
joint_state_publisher: Unsupported OS [centos]
octomap: Unsupported OS [centos]
stereo_image_proc: Unsupported OS [centos]
bondpy: Unsupported OS [centos]
class_loader: Unsupported OS [centos]
collada_urdf: Unsupported OS [centos]
pcl_ros: Unsupported OS [centos]
rosmake: Unsupported OS [centos]
image_proc: Unsupported OS [centos]
roscpp: Unsupported OS [centos]
collada_parser: Unsupported OS [centos]
actionlib: Unsupported OS [centos]
qt_gui_cpp: Unsupported OS [centos]
eigen_stl_containers: Unsupported OS [centos]
pr2_description: Unsupported OS [centos]
roslisp: Unsupported OS [centos]
message_filters: Unsupported OS [centos]
random_numbers: Unsupported OS [centos]
gazebo_plugins: Unsupported OS [centos]
tf_conversions: Unsupported OS [centos]
dynamic_reconfigure: Unsupported OS [centos]
rqt_tf_tree: Unsupported OS [centos]
rqt_logger_level: Unsupported OS [centos]
tf2_sensor_msgs: Unsupported OS [centos]
theora_image_transport: Unsupported OS [centos]
urdf_parser_plugin: Unsupported OS [centos]
orocos_kdl: Unsupported OS [centos]
rosbag: Unsupported OS [centos]

Any help with getting past this stage would be appreciated. Thanks.

edit output of os_detect.py

OS Name:     centos
OS Version:  7.1.1503
OS Codename: core

edit output of

rosdep install --from-paths src --ignore-src --rosdistro indigo --os=fedora:21

executing command [sudo -H yum --skip-broken install ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2015-08-26 10:24:28 -0600

gvdhoorn gravatar image

updated 2015-08-27 03:56:49 -0600

Can you clone rospkg somewhere (if you don't already have it), and add the output of python /path/to/rospkg/src/rospkg/os_detect.py to your question? That should tell us whether CentOS is correctly detected or not. Could be that something's changed from v5 and 6.

If the output is ok, it's probably rosdep that can't find any mappings for centos for the pkgs that need to be installed (your console copy/paste suggests that).

You could try and see whether overriding the detected OS by setting ROS_OS_OVERRIDE=fedora:21 (or some other value for the version) in the shell before running rosdep install .. (for rosdep specially, you'll probably want to add --os=fedora:21 to the arguments. It used to be the case that rosdep did not always work correctly with ROS_OS_OVERRIDE alone). See wiki/ROS/EnvironmentVariables - ROS_OS_OVERRIDE for some comments on that environment variable.

Fedora is not CentOS, but could be close enough for it to work (rosdep installs system dependencies, not actual compiled ROS binaries).

I'd recommend to leave off the -y at the end of the rosdep command line, so it needs confirmation before each command. That should give you the opportunity to make sure it doesn't try to do something strange / unwanted.


Edit:

output of os_detect.py

OS Name:     centos
OS Version:  7.1.1503
OS Codename: core

That looks ok.

output of

rosdep install --from-paths src --ignore-src --rosdistro indigo --os=fedora:21
[..]
No package collada-dom-devel available.
[..]

So rosdep now uses the keys for Fedora to map to system dependencies. As I wrote earlier before, that could have worked, but apparently some packages do not exist on CentOS 7 (or perhaps have a different name).

Looking at pkgs.org for collada-dom-devel fi shows only pkgs for CentOS 6 and some Fedora versions. The same is true for the other pkgs that yum couldn't find.

Some options I can come up with:

  1. install the dependencies that yum can't find by hand (either from source, or from some CentOS 7 compatible RPM you find somewhere), and get rosdep to skip the keys for those pkgs if it can't detect that they have been installed (mostly the case when you install things from source. See the rosdep - command reference, --skip-keys)
  2. if the packages do exist on CentOS 7, but under a different name, contribute some new rules for rosdep so that it can resolve them on the centos OS key it detected (see rosdep - Contributing rosdep rules). That would probably also remove the need to override the detected OS (if there are sufficient rules for CentOS)
  3. completely avoid installing on CentOS itself altogether, by using the recently introduced docker support. See wiki/docker for tutorials
  4. install the missing dependencies using the Fedora RPMs. This is really not recommended, as there are probably ABI incompatibilities between CentOS and Fedora
  5. limit your ROS install to a subset of packages that do not depend on dependencies that are not supported ...
(more)
edit flag offensive delete link more

Question Tools

Stats

Asked: 2015-08-26 05:21:01 -0600

Seen: 2,896 times

Last updated: Aug 27 '15