Compiling on centos7
I am following http://wiki.ros.org/indigo/Installation/Source 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 collada-dom-devel pydot python-pygraphviz tango-icon-theme vtk-phython ogre-devel PyQwt-devel poco-devel gazebo-devel]
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.coreix.net
* epel: epel.check-update.co.uk
* extras: mirrors.coreix.net
* rpmfusion-free-updates: www.mirrorservice.org
* rpmfusion-nonfree-updates: www.mirrorservice.org
* updates: mirrors.coreix.net
No package collada-dom-devel available.
No package pydot available.
No package python-pygraphviz available.
No package tango-icon-theme available.
No package vtk-phython available.
No package ogre-devel available.
No package PyQwt-devel available.
No package poco-devel available.
No package gazebo-devel available.
Error: Nothing to do
ERROR: the following rosdeps failed to install
yum: command [sudo -H yum --skip-broken install collada-dom-devel pydot python-pygraphviz tango-icon-theme vtk-phython ogre-devel PyQwt-devel poco-devel gazebo-devel] failed
Asked by aaw on 2015-08-26 05:21:01 UTC
Answers
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:
- install the dependencies that
yum
can't find by hand (either from source, or from some CentOS 7 compatible RPM you find somewhere), and getrosdep
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
) - 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 thecentos
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) - completely avoid installing on CentOS itself altogether, by using the recently introduced docker support. See wiki/docker for tutorials
- install the missing dependencies using the Fedora RPMs. This is really not recommended, as there are probably ABI incompatibilities between CentOS and Fedora
- limit your ROS install to a subset of packages that do not depend on dependencies that are not supported on CentOS 7. This will be hard though, as
collada-dom
is a dependency of a rather 'core' ROS sub-system (and so ispydot
and some others). That would limit the usefulness of your install considerably.
There are probably others, perhaps other users can suggest some other alternatives.
Asked by gvdhoorn on 2015-08-26 10:24:28 UTC
Comments