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

Revision history [back]

click to hide/show revision 1
initial version

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.

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)