Slackware Installation

The following instructions have been compiled and tested for Slackware 13.1. Due to its simple vanilla-linux setup and highly customizable design Slackware is a great distribution to pair with ROS when building a custom robot. Unfortunately, it will require a little more setup work from the end-user due to the lack of a proper package-management system. ROS assumes we have multiple non-standard packages installed already, many which Slackware does not currently include. These instructions should help you get past the major initial hurdles. After completing these steps you should be able to run through the ROS/Tutorials without any compile or run-time errors.

SVN Based Install (download-and-compile)


  • Get super-user access. You will need your system administrator to give you sudo access. If you can login as root yourself you can add sudo access to your account by running:

echo 'your_username ALL=(ALL) ALL' >> /etc/sudoers
  • Install libyaml from source

cd /opt
sudo wget 
sudo tar -xzf yaml-0.1.3.tar.gz 
cd ./yaml-0.1.3 && sudo ./configure && sudo make && sudo make install

You can now sudo rm /opt/yaml-0.1.3.tar.gz if you want to.

  • Build and install python-setuptools from source:

cd /opt
sudo wget
sudo tar -xzf pysetuptools.tar.gz
cd pysetuptools
sudo wget
sudo chmod +x pysetuptools.SlackBuild
sudo ./pysetuptools.SlackBuild

The output you see from building should end with something like: Slackware package /tmp/pysetuptools-0.6c11-i486-1_SBo.tgz created. Now create a directory where you will keep your compiled packages, and move this created package there for safekeeping and install it:

sudo mkdir /opt/installed_tgz
sudo mv /tmp/pysetuptools-0.6c11-i486-1_SBo.tgz  /opt/installed_tgz/
sudo /sbin/installpkg /opt/installed_tgz/pysetuptools-0.6c11-i486-1_SBo.tgz

You can now sudo rm -rf /opt/pysetuptools and the tar.gz file if you want to.

  • Build and install logcxx from source:

cd /opt
sudo wget
sudo tar -xzf apache-log4cxx-0.10.0.tar.gz  
cd apache-log4cxx-0.10.0

Unfortunately there are some issues currently between logcxx and the most recent version of gcc that Slackware uses. We will need to modify the logcxx code as follows.

First download the following two patch files to your log4cxx directory and apply them by issuing these commands:

sudo wget --no-check-certificate
sudo wget --no-check-certificate
sudo patch -p1 -i cppFolder_stringInclude.patch 
sudo patch -p1 -i exampleFolder_stringInclude.patch 

Now you will need to prepend one line that the makers of log4cxx forgot to include in one of the example header files. Do this with the little trick below, or just use your text editor:

sudo touch console_temp.cpp && sudo chmod 777 console_temp.cpp && echo "#include <stdio.h>" | sudo tac src/examples/cpp/console.cpp - | sudo tac > console_temp.cpp && sudo mv console_temp.cpp src/examples/cpp/console.cpp

Now, finally we can build and install log4cxx:

sudo ./configure --prefix=/usr 
sudo make
sudo make install

You can now rm the .tar.gz file we downloaded if you want to.

  • easyinstall pyyaml

sudo easy_install pyyaml
  • Build and install wxWidgets (Optional). Many of the ROS graphical tools (turtlesim,rviz,gazebo,pr2_dashboard) assume you have a working installation of wxWidgets. In order to compile and use these tools build and install wxWidgets as follows:

cd /opt
sudo wget
sudo tar xvf wxPython.tar.gz 
cd wxPython
sudo wget
sudo chmod +x wxPython.SlackBuild
sudo ./wxPython.SlackBuild
sudo mv /tmp/wxPython- /opt/installed_tgz/
sudo /sbin/installpkg  /opt/installed_tgz/wxPython-

You can now sudo rm -rf /opt/wxPython and the .tar.gz file if you want to.

  • Since rosdep cannnot detect the Slackware OS the commands in the section below will fail to detect the os, add a "-n" option to not automatically build. Then you will need to build manually like this, after manually resolving the dependencies.

. ~/ros/
rosmake --no-rosdep rostest


The following lines will download the ROS source code using the rosinstall tool, and bootstrap the installation. The installation downloads all ROS stacks in subdirectories inside the ~/ros directory, one subdirectory for each stack in the rosinstall file.

First install rosinstall:

  • sudo easy_install -U rosinstall

Then use rosinstall to download your preferred C-Turtle variant:

  • ROS-only: Includes basic ROS and tutorials.

    • rosinstall ~/ros ""

    Base Install: ROS plus robot-generic stacks (e.g. navigation, visualization)

    • rosinstall ~/ros ""

    PR2 Install: ROS plus PR2-specific stacks, including PR2 simulator.

    • rosinstall ~/ros ""

    PR2 All Install: ROS plus PR2 and bleeding edge research/experimental stacks.

    • rosinstall ~/ros ""

NOTE: the instructions above download all stacks inside the ~/ros folder. If you prefer a different location, simply change the ~/ros in the commands above.

Environment Setup

Shell language:   Bash     Zsh    

You'll now need to update your environment. You can do this by typing:

source ~/ros/setup.bash

It's convenient if the ROS environment variables are automatically added to your bash session every time a new shell is launched, which you can do with the command below:

echo "source ~/ros/setup.bash" >> ~/.bashrc
. ~/.bashrc

For Zsh users, change the last line of ~/ros/setup.zsh to

source $ROS_ROOT/tools/rosbash/roszsh

before running source ~/ros/setup.zsh Similarly, have the setup script called at the start of each new shell session with

echo "source ~/ros/setup.zsh" >> ~/.zshrc
. ~/.zshrc


Now, to test your installation, please proceed to the ROS Tutorials.

Wiki: cturtle/Installation/Slackware (last edited 2010-11-10 15:34:57 by JoeRomano)