For an explanation of the design goals and design decisions, in addition to the rationale for why Catkin ("yet another build system?") was created, see the catkin/conceptual_overview page.
Note for ROS Fuerte Users: An experimental version of catkin was released with ROS Fuerte that is quite different from the version in Groovy. Those using ROS Fuerte should continue utilizing rosbuild.
Catkin is included by default when ROS is installed. Catkin can also be installed from source or prebuilt packages. Most users will want to use the prebuilt packages, but installing it from source is also quite simple.
Install Prebuilt Package
If you are using a ROS binary distribution (Groovy or higher) on Ubuntu then you can install catkin with apt-get:
sudo apt-get install ros-$ROS_DISTRO-catkin
Most ROS installations will include this by default.
Install From Source
Catkin has the following dependencies:
CMake - A cross-platform, open-source build system.
GTest - A cpp unittest framework from Google.
GNU C++ Compiler (g++) - The GNU C++ compiler
You can resolve these dependencies on Ubuntu with this command:
sudo apt-get install cmake python-catkin-pkg python-empy python-nose python-setuptools libgtest-dev build-essential
If you are not on Ubuntu you can install catkin_pkg from PyPi via pip.
If you have trouble installing the python-* packages in the command above, make sure you have added the packages.ros.org debian repository to your apt source lists as described on this page.
Then install catkin like any CMake package
mkdir build && cd build && cmake ../ && make && sudo make install
Note: You usually want to pass a specific build type when invoking CMake, e.g. cmake -DCMAKE_BUILD_TYPE=Release ../ (or RelWithDebInfo / Debug instead of Release, see http://cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_BUILD_TYPE).
Migrating from rosbuild
See the external catkin docs containing:
- How to do common tasks
- User guide
- Advanced user guide
- Information for developers
Using catkin with Python http://docs.ros.org/api/catkin/html/user_guide/setup_dot_py.html
Configuration File References
Glossary of Terms