Show EOL distros:
Gentoo Linux Installation Instructions
Contents
SVN Based Install (download-and-compile)
Setup
sudo mkdir -p /etc/portage sudo bash -c 'echo app-portage/gentoolkit >> /etc/portage/package.keywords' sudo bash -c 'echo dev-python/setuptools >> /etc/portage/package.keywords' sudo emerge -u pyyaml cmake subversion hgsubversion gentoolkit setuptools
rosinstall
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 "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=ros_only&overlay=no"
Base Install: ROS plus robot-generic stacks (e.g. navigation, visualization)
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=base&overlay=no"
PR2 Install: ROS plus PR2-specific stacks, including PR2 simulator.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=pr2&overlay=no"
PR2 All Install: ROS plus PR2 and bleeding edge research/experimental stacks.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=cturtle&variant=pr2all&overlay=no"
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
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
Gentoo Linux Installation Instructions
Contents
SVN Based Install (download-and-compile)
Setup
sudo mkdir -p /etc/portage sudo bash -c 'echo app-portage/gentoolkit >> /etc/portage/package.keywords' sudo bash -c 'echo dev-python/setuptools >> /etc/portage/package.keywords' sudo emerge -u pyyaml cmake subversion mercurial gentoolkit setuptools sudo
rosinstall
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
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=desktop&overlay=no"
ROS-Full: ROS package, build, communication, and graphical tools.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=ros-full&overlay=no"
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=diamondback&variant=ros-base&overlay=no"
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.
Please reference REP 108 for description of other available configurations.
Environment Setup
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
Gentoo Linux Installation Instructions
Contents
SVN Based Install (download-and-compile)
Setup
sudo mkdir -p /etc/portage sudo bash -c 'echo app-portage/gentoolkit >> /etc/portage/package.keywords' sudo bash -c 'echo dev-python/setuptools >> /etc/portage/package.keywords' sudo emerge -u pyyaml cmake subversion mercurial gentoolkit setuptools layman sudo sudo layman -f sudo layman -a lorelei sudo bash -c 'echo source /var/lib/layman/make.conf >> /etc/make.conf' sudo bash -c 'echo media-libs/assimp >> /etc/portage/package.keywords' sudo bash -c 'echo media-libs/freeimage >> /etc/portage/package.keywords'
rosinstall
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 using pip (advanced options for pip):
sudo pip install -U rosinstall vcstools
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=desktop&overlay=no"
ROS-Full: ROS package, build, communication, and graphical tools.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=ros-full&overlay=no"
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=electric&variant=ros-base&overlay=no"
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.
Please reference REP 113 for description of other available configurations.
Environment Setup
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
Rviz
If you're having trouble getting rviz to run, take a look at this question
Gentoo Linux Installation Instructions
Contents
SVN Based Install (download-and-compile)
Setup
sudo mkdir -p /etc/portage sudo bash -c 'echo app-portage/gentoolkit >> /etc/portage/package.keywords' sudo bash -c 'echo dev-python/setuptools >> /etc/portage/package.keywords' sudo emerge -u pyyaml cmake subversion mercurial gentoolkit setuptools layman sudo sudo layman -f sudo layman -a lorelei sudo bash -c 'echo source /var/lib/layman/make.conf >> /etc/make.conf' sudo bash -c 'echo media-libs/assimp >> /etc/portage/package.keywords' sudo bash -c 'echo media-libs/freeimage >> /etc/portage/package.keywords'
TODO: need installation line for other ROS Fuerte dependencies, e.g. boost, python-yaml, apr, gtest, python-paramiko
Partial List:
sudo emerge -u boost gtest log4cxx wxpython dev-python/pip sudo pip install empy rospkg nose
Confirm that python2 is selected as python3 is not fully supported as of 2012/11/12. Also ensure that a version of wxwidgets is selected.
eselect python list sudo eselect python set python2 eselect wxwidgets list sudo eselect wxwidgets set 1
rosinstall
The following steps requires two separate installation steps and will compile ROS-related code into two separate places/layers:
Download and install the underlying core ROS libraries and tools into /opt/ros/fuerte.
Download and build some higher-level ROS libraries using rosmake in ~/ros.
The compiled code from (1) is installed into /opt/ros/fuerte. While it is possible to install elsewhere (e.g. /usr), this is not well tested and you will encounter various problems along the way (e.g. having to change rosinstall files, having to manually install system dependencies, etc...). Please see REP 122: Filesystem Hiearchy Layout for more detailed documentation on how the installed files are placed.
The compiled code from (2) is simply built using rosmake, which is familiar to users of previous versions of ROS. The higher-level ROS stacks are download and build in subdirectories inside the ~/ros directory.
First install rosinstall, rospkg and rosdep as described in their instructions:
If you have trouble using rosws/rosinstall, you can manually download the projects by investigating the respective rosinstall file.
Layer 1: Install core libraries
The following instructions will create a system install of the core ROS libraries and tools. The installation is done using standard CMake/make tools, so experts can adjust to their liking.
ROS-Full: ROS package, build, communication, tutorials and graphical tools.
rosinstall --catkin ~/ros-underlay http://ros.org/rosinstalls/fuerte-ros-full.rosinstall
ROS-Base: (Bare Bones) ROS package, build, and communication libraries.
rosinstall --catkin ~/ros-underlay http://ros.org/rosinstalls/fuerte-ros-base.rosinstall
For people having trouble with rosinstall or catkin on their particular OS: If you have downloaded the source files in a different way, you need to run catkin_init_workspace ~/ros-underlay. This script is part of catkin, which should by now also at least be in your workspace, you can use the script without installing catkin. It should create a suitable global CMakeLists.txt to use in the next step.
If you do not want to use catkin, follow standard cmake procedure for building cmake packages, and install the packages in the dependency order by manually checking the package.xml declarations.
Build and install the underlay into /opt/ros/fuerte:
cd ~/ros-underlay mkdir build cd build
Now, run cmake. The invocation depends on the platform you are on:
- Debian-based platforms (e.g. Ubuntu, Mint) use:
cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte
Other platforms use:cmake .. -DCMAKE_INSTALL_PREFIX=/opt/ros/fuerte -DSETUPTOOLS_DEB_LAYOUT=OFF
Finally, build + install the code:
make -j8 sudo make install
Useful TIP: If you encounter problems with the make command due to "Unable to find 'swig.swg'" and "Unable to find 'python.swg'" errors then it probably due to the installation script having placed /swig at the toplevel/root directory.
To get around this problem do the following (and then restart make process as above)
cd / sudo cp -r /swig /usr/local/share cd ~/ros-underlay/build
Useful TIP: If you are having trouble with the make install command due to lib64 and lib problems, a work around is
cd /opt/ros/fuerte/ sudo mv lib/* lib64/ sudo rmdir lib sudo ln -s lib64 lib
This makes the lib and the lib64 directory linked together and the make install command should work now.
Verify the installed environment:
. /opt/ros/fuerte/setup.sh which roscore
You should see:
/opt/ros/fuerte/bin/roscore
You can delete ~/ros-underlay now, if you wish. The ROS core libraries are now installed onto your system.
Layer 2: Higher-level robotics libraries and tools
Now it's time to create the second layer, which contains your main robotics libraries (e.g. navigation) as well as visualization tools like rviz. You will build this layer using rosmake, but it is not installed.
There are many different libraries and tools in ROS. We provided four default configurations to get you started.
NOTE: The rosinstall installation files below assume that you've installed into /opt/ros/fuerte, so you will need to change them manually if you have a different install path.
Desktop-Full Install: (Recommended): ROS Full, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=fuerte&variant=desktop-full&overlay=no"
Desktop Install: : ROS Full, rviz, and robot-generic libraries
rosinstall ~/ros "http://packages.ros.org/cgi-bin/gen_rosinstall.py?rosdistro=fuerte&variant=desktop&overlay=no"
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.
Please reference REP 113 for description of other available configurations.
Environment Setup
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
You'll now need to update your environment. You can do this by typing:
source ~/ros/setup.zsh
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.zsh" >> ~/.zshrc . ~/.zshrc
Build Higher-level/tools (Layer 2)
First, initialize your rosdep. ROS Fuerte comes with rosdep 2. If you get a message that your default sources list exists, then don't worry as it means you've done this before.
sudo rosdep init rosdep update
Now, use rosdep 2 to install system dependencies. Many of the system dependencies will install into /opt/ros/fuerte and will not be usable if you have changed the installation prefix.
rosdep install -a
Useful TIP: to get rid of constant prompts of being sure with proceeding, you can use -y switch to tell the package manager to default 'Yes' while installing.
rosdep install -ay
Finally, build the ROS stacks using rosmake.
rosmake -a
Rviz
If you're having trouble getting rviz to run, take a look at this question
Installing on Gentoo from source
Install from source requires that you download and compile the source code on your own.
Contents
Install Necessary System Tools
Assuming you have not done so, it would be a good idea to emerge the package sudo at this time. We're going to add a line to the make.conf file, as well (assuming you don't already have it there).
As root:
# emerge sudo # echo 'EMERGE_DEFAULT_OPTS="--autounmask-write y"' >> /etc/portage/make.conf
If you get the line (below) stating that the packages are masked during an emerge command (likely, given the quantity), run the command "sudo etc-update". It will update the appropriate configuration files.
Many of ROS's Python libs still depend on Python2.7 so you will likely need to switch.
$ sudo eselect python list $ sudo eselect python set <num> # choose python2.7 $ sudo python-updater
The following mask changes are necessary to proceed:
Now continue with the dependencies for ROS. Log in as a standard user.
$ sudo bash -c 'echo app-portage/gentoolkit >> /etc/portage/package.keywords' $ sudo bash -c 'echo dev-python/setuptools >> /etc/portage/package.keywords' $ sudo emerge -u pyyaml git cmake subversion mercurial gentoolkit setuptools layman $ sudo layman -a lorelei $ sudo bash -c 'echo source /var/lib/layman/make.conf >> /etc/make.conf' $ sudo bash -c 'echo media-libs/assimp >> /etc/portage/package.keywords' $ sudo bash -c 'echo media-libs/freeimage >> /etc/portage/package.keywords' $ sudo emerge -u boost gtest log4cxx wxpython dev-python/pip dev-libs/apr dev-python/paramiko dev-libs/poco dev-cpp/eigen dev-libs/tinyxml dev-python/PyQt4 dev-cpp/yaml-cpp dev-libs/boost[python] media-libs/opencollada $ sudo pip-python2.7 install -U empy nose wstool rosdep rosinstall rospkg catkin-pkg Distribute
Now you need to build the library COLLADA-DOM from source. Unfortunately, this library is not currently part of portage. As this is a large package, it will take some time to build (but, since you run Gentoo, you're probably quite used to it).
$ sudo mkdir -p /usr/local/src $ sudo chown `echo $USER` /usr/local/src $ cd /usr/local/src/ $ svn co https://collada-dom.svn.sourceforge.net/svnroot/collada-dom/trunk colladadom $ cd colladadom $ sudo nano -w /etc/portage/make.conf
Now you need to change your USE flags and recompile zlib (with minizip). For clarity, do not add the "...", just add the word "minizip" in front of what already exists in the file.
USE = "minizip ..."
$ sudo emerge zlib $ cmake . $ make $ sudo make install $ sudo ldconfig
At this point, it is highly suggested that you run python-update. This will make sure your packages are happy and healthy.
$ sudo python-updater
Now you need to clone and install rosinstall_generator from scratch.
$ cd ~ $ git clone https://github.com/ros-infrastructure/rosinstall_generator $ cd rosinstall_generator $ sudo python setup.py install
At this point, you've likely altered your system quite significantly. So, it is a very good idea to update your packages. This will definitely take a while. This will build your packages that need updating, as well as recompiling those that have been altered significantly by the installation process. You probably do not have to do this, but it is much safer if you do.
$ sudo emerge-webrsync $ sudo emerge --sync $ sudo emerge --update --changed-use --deep --with-bdeps=y @world
Installation
Start by building the core ROS packages.
Building the catkin Packages
ROS is in the process of converting to a new build system, catkin, but not all of the packages have been converted and the two build systems cannot be used simultaneously. Therefore it is necessary to build the core ROS packages first (catkin packages) and then the rest.
Create a catkin Workspace
In order to build the core packages, you will need a catkin workspace. Create one now:
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
Next we will want to fetch the core packages so we can build them. We will use wstool for this. Select the wstool command for the particular variant you want to install:
Desktop-Full Install: ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
$ rosinstall_generator desktop-full --rosdistro groovy --deps --wet-only > groovy-desktop-full-wet.rosinstall $ wstool init -j8 src groovy-desktop-full-wet.rosinstall
Desktop Install (recommended): ROS, rqt, rviz, and robot-generic libraries
$ rosinstall_generator desktop --rosdistro groovy --deps --wet-only > groovy-desktop-wet.rosinstall $ wstool init -j8 src groovy-desktop-wet.rosinstall
ROS-Comm: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
$ rosinstall_generator ros_comm --rosdistro groovy --deps --wet-only > groovy-ros_comm-wet.rosinstall $ wstool init -j8 src groovy-ros_comm-wet.rosinstall
This will add all of the catkin or wet packages in the given variant and then fetch the sources into the ~/ros_catkin_ws/src directory. The command will take a few minutes to download all of the core ROS packages into the src folder. The -j8 option downloads 8 packages in parallel.
In addition to the 3 variants above, more are defined in REP 131 such as robot, perception, etc. Just change the package path to the one you want, e.g., for robot do:
$ rosinstall_generator robot --rosdistro groovy --deps --wet-only > groovy-robot-wet.rosinstall $ wstool init -j8 src groovy-robot-wet.rosinstall
Resolving Dependencies
Before you can build your catkin workspace you need to make sure that you have all the required dependencies. We use the rosdep tool for this:
$ rosdep install --from-paths src --ignore-src --rosdistro groovy -y
This will look at all of the packages in the src directory and find all of the dependencies they have. Then it will recursively install the dependencies.
The --from-paths option indicates we want to install the dependencies for an entire directory of packages, in this case src. The --ignore-src option indicates to rosdep that it shouldn't try to install any ROS packages in the src folder from the package manager, we don't need it to since we are building them ourselves. The --rosdistro option is required because we don't have a ROS environment setup yet, so we have to indicate to rosdep what version of ROS we are building for. Finally, the -y option indicates to rosdep that we don't want to be bothered by too many prompts from the package manager.
After a while (and maybe some prompts for your password) rosdep will finish installing system dependencies and you can continue.
Building the catkin Workspace
Once it has completed downloading the packages and resolving the dependencies you are ready to build the catkin packages. We will use the catkin_make_isolated command because there are both catkin and plain cmake packages in the base install, when developing on your catkin only workspaces you should use catkin/commands/catkin_make.
Invoke catkin_make_isolated:
$ ./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release
Note: You might want to select a different CMake build type (e.g. RelWithDebInfo or Debug, see http://cmake.org/cmake/help/v2.8.12/cmake.html#variable:CMAKE_BUILD_TYPE).
Note: The default catkin installation location would be ~/ros_catkin_ws/install_isolated, if you would like to install some where else then you can do this by adding the --install-space /opt/ros/groovy argument to your catkin_make_isolated call.
For usage on a robot without Ubuntu, it is recommended to install compiled code into /opt/ros/groovy just as the Ubuntu packages would do. Don't do this in Ubuntu, as the packages would collide with apt-get packages. It is also possible to install elsewhere (e.g. /usr), but it is not recommended unless you really know what you are doing.
Please see REP 122: Filesystem Hierarchy Layout for more detailed documentation on how the installed files are placed.
Note: In the above command we are running the catkin_make_isolated command from the catkin source folder because it has not been installed yet, once installed it can be called directly.
Now the packages should have been installed to ~/ros_catkin_ws/install_isolated or to wherever you specified with the --install-space argument. If you look in that directory you will see that a setup.bash file have been generated. To utilize the things installed there simply source that file. Lets do that now before building the rest of ROS:
$ source ~/ros_catkin_ws/install_isolated/setup.bash
Build the rosbuild Packages
Now that you have the catkin ROS packages built and sourced, you can build any of the packages and stacks using the rosbuild build system.
Create a rosbuild workspace
Note: You do not need to do this part of the installation for the ROS-Comm: (Bare Bones) variant as it does not contain any rosbuild packages in it.
Like with building catkin packages, it is convenient to build rosbuild packages in a workspace. Lets create a ROS workspace using rosws:
$ mkdir ~/ros_ws $ cd ~/ros_ws $ rosws init . ~/ros_catkin_ws/install_isolated
Note that we are pointing the ROS workspace to the catkin install location that we built in the previous step. This allows the ROS workspace to always source the catkin install location environment before you use the ROS workspace.
Download ROS Stacks
Now we need to get the dry (rosbuild) components of the variant you chose before. Use the corresponding command for your variant to do this:
Desktop-Full Install: 2d/3d simulators, navigation, robot models and several tutorial stacks
$ rosinstall_generator desktop-full --rosdistro groovy --deps --dry-only > groovy-desktop-full-dry.rosinstall $ rosws merge groovy-desktop-full-dry.rosinstall
Desktop Install (recommended): ROS, rqt, rviz, and robot-generic libraries
$ rosinstall_generator desktop --rosdistro groovy --deps --dry-only > groovy-desktop-dry.rosinstall $ rosws merge groovy-desktop-dry.rosinstall
Now this just setups your rosbuild workspace, you need to tell rosws to fetch the packages still:
$ rosws update -j8
Build the ROS Stack
Once this is done fetching the stack you can source this workspace and then build the stack:
$ source ~/ros_ws/setup.bash $ rosmake -a
Installing On Gentoo
Gentoo installation is rather experimental at the moment. The installation is quite functional, though. Notice: on Funtoo Linux, the following instructions work, but you will need to make several modifications (so proceed at your own risk).
Contents
Prerequisites
Selecting Python 2.7
Currently, we need to use Python-2.7. To do so, we will use eselect.
# eselect python list Available Python interpreters: [1] python2.7 * [2] python3.3
Then do the following command to select 2.7.
# eselect python set 1
We will also install some other libraries for ROS, such as OpenCV, Gazebo and Bullet.
# emerge sci-physics/bullet sci-electronics/gazebo media-libs/opencv --jobs --load-average `nproc`
If gazebo fails to install, which is highly probable at the moment, omit it from the above command:
# emerge sci-physics/bullet media-libs/opencv --jobs --load-average `nproc`
Installing the Overlay
Before proceeding, the necessary tools for installing ROS must be installed on your system. To do so, you need to install Layman, an overlay manager for Gentoo.
# emerge layman -vaj
# echo "source /var/lib/layman/make.conf" >> /etc/portage/make.conf
Now we add the overlay with the necessary Gentoo packages.
# layman -f -o https://raw.githubusercontent.com/ros/ros-overlay/master/overlay.xml -a ros-overlay # emerge --sync
Now we install the necessary tools for installation.
# emerge rosdep rosinstall_generator wstool rosinstall catkin_pkg # pip install --upgrade setuptools
Next, add the following lines to the end of /etc/portage/package.use.
# required by ROS sys-libs/zlib minizip dev-libs/boost python
At this point, it is strongly advised that you perform a full system update.
# emerge --sync # emerge -uDNvaj @world --load-average `nproc`
Initializing rosdep
$ sudo rosdep init $ rosdep update
Installation
Start by building the core ROS packages.
Building the catkin Packages
ROS is in the process of converting to a new build system, catkin, but not all of the packages have been converted and the two build systems cannot be used simultaneously. Therefore it is necessary to build the core ROS packages first (catkin packages) and then the rest.
Create a catkin Workspace
In order to build the core packages, you will need a catkin workspace. Create one now:
$ mkdir ~/ros_catkin_ws $ cd ~/ros_catkin_ws
Next we will want to fetch the core packages so we can build them. We will use wstool for this. Select the wstool command for the particular variant you want to install.
$ rosinstall_generator desktop_full --rosdistro jade --deps --wet-only --tar > jade-desktop_full-wet.rosinstall $ wstool init -j8 src jade-desktop_full-wet.rosinstall
This will add all of the catkin or wet packages in the given variant and then fetch the sources into the ~/ros_catkin_ws/src directory. The command will take a few minutes to download all of the core ROS packages into the src folder. The -j8 option downloads 8 packages in parallel.
If wstool init fails or is interrupted, you can resume the download by running:
wstool update -j 4 -t src
Resolving Dependencies
Before you can build your catkin workspace you need to make sure that you have all the required dependencies. We use the rosdep tool for this:
$ rosdep install --from-paths src --ignore-src --rosdistro jade -y
This will look at all of the packages in the src directory and find all of the dependencies they have. Then it will recursively install the dependencies.
The --from-paths option indicates we want to install the dependencies for an entire directory of packages, in this case src. The --ignore-src option indicates to rosdep that it shouldn't try to install any ROS packages in the src folder from the package manager, we don't need it to since we are building them ourselves. The --rosdistro option is required because we don't have a ROS environment setup yet, so we have to indicate to rosdep what version of ROS we are building for. Finally, the -y option indicates to rosdep that we don't want to be bothered by too many prompts from the package manager.
After a while (and maybe some prompts for your password) rosdep will finish installing system dependencies and you can continue.
Lastly, we need to do the following:
$ echo 'PYTHONPATH="/opt/ros/jade/lib64/python2.7/site-packages"' >> ~/.bashrc $ source ~/.bashrc
Building the catkin Workspace
Once it has completed downloading the packages and resolving the dependencies you are ready to build the catkin packages. We will use the catkin_make_isolated command because there are both catkin and plain cmake packages in the base install, when developing on your catkin only workspaces you should use catkin/commands/catkin_make.
Invoke catkin_make_isolated:
$ sudo PYTHONPATH="/opt/ros/jade/lib64/python2.7/site-packages" ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/jade -DSETUPTOOLS_DEB_LAYOUT=OFF
At the time of writing, you will need to use a more up to date version of image pipeline, as OpenCV has just made a major bump (2.0 -> 3.0):
$ rm -rf src/image_pipeline $ git clone https://github.com/ros-perception/image_pipeline
Should your Gazebo installation fail, you may remove gazebo from the source directory and proceed with the rest of the install.
$ rm -rf src/gazebo_ros_pkgs
Now the packages should have been installed to /opt/ros/jade/ or to wherever you specified with the --install-space argument. If you look in that directory you will see that a setup.bash file have been generated. To utilize the things installed there simply source that file. Lets do that now before building the rest of ROS:
$ source /opt/ros/jade/setup.bash
To verify that your ROS install is operational, try and run roscore. You should get something similar to the image below.
Post-Installation Instructions
Creating a Workspace
It's recommended that you do your work in a separate ros workspace. To make one named catkin_ws, run the following.
$ mkdir -p ~/catkin_ws/src $ cd ~/catkin_ws/src && catkin_init_workspace & cd ../ && catkin_make
Editing Environment Variables
Now we add some lines to our ~/.bashrc file. Add these lines, replacing catkin_ws with the name you chose above.
PYTHONPATH="/opt/ros/jade/lib/python2.7/site-packages:/opt/ros/jade/lib64/python2.7/site-packages/" source /opt/ros/jade/setup.bash source ~/catkin_ws/devel/setup.bash
Install GMapping
Next we demonstrate how to install extra packages, such as GMapping.
$ roscd && cd ../src $ git clone https://github.com/ros-perception/openslam_gmapping $ git clone https://github.com/ros-perception/slam_gmapping $ cd ../ && catkin_make
with luck, you should now have GMapping.
Maintaining a Source Checkout
If we want to keep our source checkout up to date, we will have to periodically update our rosinstall file, download the latest sources, and rebuild our workspace.
Update the workspace
To update your workspace, first move your existing rosinstall file so that it doesn't get overwritten, and generate an updated version. For simplicity, we will cover the *destop-full* variant. For other variants, update the filenames and rosinstall_generator arguments appropriately.
$ mv -i jade-desktop_full-wet.rosinstall jade-desktop_full-wet.rosinstall.old $ rosinstall_generator desktop_full --rosdistro jade --deps --wet-only --tar > jade-desktop_full-wet.rosinstall
Then, compare the new rosinstall file to the old version to see which packages will be updated:
$ diff -u jade-desktop_full-wet.rosinstall jade-desktop_full-wet.rosinstall.old
If you're satified with these changes, incorporate the new rosinstall file into the workspace and update your workspace:
$ wstool merge -t src jade-desktop_full-wet.rosinstall $ wstool update -t src
Rebuild your workspace
Now that the workspace is up to date with the latest sources, rebuild it:
$ ./src/catkin/bin/catkin_make_isolated --install
If you specified the --install-space option when your workspace initially, you should specify it again when rebuilding your workspace
Once your workspace has been rebuilt, you should source the setup files again:
$ source ~/ros_catkin_ws/install_isolated/setup.bash
Gentoo install of ROS Kinetic
We are automatically generating the Ebuilds for Gentoo. Please note that there are also packages available from the Gentoo developers, but those packages are incomplete. Also note that these are being automatically generated from the rosdistro file, and there are a number of unresolved dependencies for some packages.
Should your package fail to emerge, please report an issue on the ros-overlay repo.
If you need to install from source (not recommended), please see source (download-and-compile) installation instructions.
If you rely on these packages, please support OSRF.
These ebuilds are generated and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downloaded package for just two months, we could cover our annual costs to manage, update, and host all of our online services. Please consider donating to OSRF today.
Contents
Installation
First, set the following in /etc/portage/profile/eapi.
6
Next, you need to add the ros-overlay sources to your emaint configuration.
# mkdir /etc/portage/repos.conf
Add the following to the file /etc/portage/repos.conf/ros-overlay.conf
[ros-overlay] location = /usr/local/portage sync-type = git sync-uri = https://github.com/ros/ros-overlay auto-sync = yes masters = gentoo
Then synchronize the repository.
# emaint sync -r ros-overlay
While Python 3 works for most of the libraries in ROS, there are still many components that rely on Python 2, making it the recommended choice for installation.
This implies you'll need to use eselect python to choose Python2.7 and add to /etc/portage/package.use:
ros-kinetic/* PYTHON_TARGETS: -* python2_7 ros-kinetic/* PYTHON_SINGLE_TARGET: -* python2_7
There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.
In case of problems with the next step, you can use following repositories instead of the ones mentioned above ros-shadow-fixed
Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
# emerge ros-kinetic/desktop_full --ask
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
# emerge ros-kinetic/desktop --ask
ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
# emerge ros-kinetic/ros_base
Individual Package: You can also install a specific ROS package:
# emerge ros-kinetic/PACKAGE
e.g.
# emerge ros-kinetic/slam_gmapping
To find available packages, use:
ls /usr/local/portage/ros/ros-kinetic
Initialize rosdep
Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
sudo rosdep init rosdep update
Getting rosinstall
rosinstall is a frequently used command-line tool in ROS that is distributed separately. It enables you to easily download many source trees for ROS packages with one command.
To install this tool on Gentoo, run:
# emerge dev-python/rosinstall
Build farm status
todo!
Gentoo install of ROS Lunar
We are automatically generating the Ebuilds for Gentoo. Please note that there are also packages available from the Gentoo developers, but those packages are incomplete. Also note that these are being automatically generated from the rosdistro file, and there are a number of unresolved dependencies for some packages.
Should your package fail to emerge, please report an issue on the ros-overlay repo.
If you need to install from source (not recommended), please see source (download-and-compile) installation instructions.
If you rely on these packages, please support OSRF.
These ebuilds are generated and hosted on infrastructure maintained and paid for by the Open Source Robotics Foundation, a 501(c)(3) non-profit organization. If OSRF were to receive one penny for each downloaded package for just two months, we could cover our annual costs to manage, update, and host all of our online services. Please consider donating to OSRF today.
Contents
Installation
First, set the following in /etc/portage/profile/eapi.
6
Next, you need to add the ros-overlay sources to your emaint configuration.
# mkdir /etc/portage/repos.conf
Add the following to the file /etc/portage/repos.conf/ros-overlay.conf
[ros-overlay] location = /usr/local/portage sync-type = git sync-uri = https://github.com/ros/ros-overlay auto-sync = yes masters = gentoo
Then synchronize the repository.
# emaint sync -r ros-overlay
While Python 3 works for most of the libraries in ROS, there are still many components that rely on Python 2, making it the recommended choice for installation.
There are many different libraries and tools in ROS. We provided four default configurations to get you started. You can also install ROS packages individually.
In case of problems with the next step, you can use following repositories instead of the ones mentioned above ros-shadow-fixed
Desktop-Full Install: (Recommended) : ROS, rqt, rviz, robot-generic libraries, 2D/3D simulators, navigation and 2D/3D perception
# emerge ros-lunar/desktop_full --ask
Desktop Install: ROS, rqt, rviz, and robot-generic libraries
# emerge ros-lunar/desktop --ask
ROS-Base: (Bare Bones) ROS package, build, and communication libraries. No GUI tools.
# emerge ros-lunar/ros_base
Individual Package: You can also install a specific ROS package (replace underscores with dashes of the package name):
# emerge ros-lunar/PACKAGE
e.g.
# emerge ros-lunar/slam_gmapping
To find available packages, use:
ls /usr/local/portage/ros/ros-lunar
Initialize rosdep
Before you can use ROS, you will need to initialize rosdep. rosdep enables you to easily install system dependencies for source you want to compile and is required to run some core components in ROS.
sudo rosdep init rosdep update
Getting rosinstall
rosinstall is a frequently used command-line tool in ROS that is distributed separately. It enables you to easily download many source trees for ROS packages with one command.
To install this tool on Gentoo, run:
# emerge dev-python/rosinstall
Build farm status
todo!