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

Love Arch Linux, but won't behave with ROS

asked 2011-07-13 06:14:43 -0600

Aslund gravatar image

updated 2014-01-28 17:10:02 -0600

ngrennan gravatar image

Hey everyone

I recently moved to Arch Linux after getting tired of Ubuntu due to its rigid structure and I absolutely love it, but the last couple of days have I worked with installing ROS. This have not be an pleasant journey and I am currently stucked at a problem I have been unable to figure out. I get the following three line error message:

  • Bootstrapping ROS build
  • Detected ros_comm bootstrapping it too.
  • Rospack failed to build

I hope someone have an idea how to solve it.

Regards

Sebastian Aslund

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
1

answered 2011-07-13 10:24:06 -0600

DavidS gravatar image

updated 2011-07-13 11:26:58 -0600

I don't like waiting for updates on Ubuntu either.

The main problems you will face for working with ROS on Archlinux are:

  1. ROS refers to "python2" as "python" in its script files. (This most likely explains most of the errors you are facing.)
  2. Many ROS packages do not compile with GCC 4.6.

The fix is to preferentially use python2 in lieu of python and gcc-4.5 in lieu of gcc-4.6.

# install GNU compilers 4.5  
yaourt -S python2 gcc45  

mkdir /usr/local/bin/alt  

ln -s /usr/bin/python2 /usr/local/bin/alt/python  
ln -s /usr/bin/gcc-4.5 /usr/local/bin/alt/gcc  
ln -s /usr/bin/g++-4.5 /usr/local/bin/alt/g++  

export PATH=/usr/local/bin/alt:$PATH

You would want to put the last line in an initialization script that you run every time before using ROS in a new terminal. Don't add this to your /etc/profile.d/ as it will break some packages in Archlinux.

Additionally, the dependencies are not detected very well, so you have to determine which libraries are missing from the error logs.

For more information, see my other post.

Edit: Promoting gcc-4.5 and g++-4.5 does not appear to work, as configure refers to them by the exact path: /usr/bin/gcc

Instead, you have to edit the CMakeLists.txt file for each package that fails to compile with gcc 4.6.

Add the following lines after the rosbuild directives (if any).

set (CMAKE_C_COMPILER gcc-4.5)  
set (CMAKE_CXX_COMPILER g++-4.5)
edit flag offensive delete link more
-1

answered 2011-07-13 21:11:51 -0600

Aslund gravatar image

Hey David

I tried to follow your guide, but I still get the same error. I also noticed that I provided the wrong error information, so I give here the correct one:

Traceback (most recent call last):

File "/usr/bin/rosinstall", line 5, in <module> pkg_resources.run_script('rosinstall==0.5.16', 'rosinstall')

File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 499, in run_script self.require(requires)[0].run_script(script_name, ns)

File "/usr/lib/python2.7/site-packages/pkg_resources.py", line 1235, in run_script execfile(script_filename, namespace, namespace)

File "/usr/lib/python2.7/site-packages/rosinstall-0.5.16-py2.7.egg/EGG-INFO/scripts/rosinstall", line 556, in <module> sys.exit(not rosinstall_main(sys.argv))

File "/usr/lib/python2.7/site-packages/rosinstall-0.5.16-py2.7.egg/EGG-INFO/scripts/rosinstall", line 547, in rosinstall_main subprocess.check_call("source %s && rosmake ros%s --rosdep-install%s" % (os.path.join(options.path, 'setup.sh'), ros_comm_insert, rosdep_yes_insert), shell=True, executable='/bin/bash')

File "/usr/lib/python2.7/subprocess.py", line 511, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command 'source /opt/ros/setup.sh && rosmake ros ros_comm --rosdep-install' returned non-zero exit status 255

edit flag offensive delete link more

Question Tools

Stats

Asked: 2011-07-13 06:14:43 -0600

Seen: 941 times

Last updated: Jul 13 '11