This page explains what the ros-snapshots repository is and how to use it.
Contents
Overview
Package syncs from testing to the main ROS repository occur roughly every two weeks for active ROS distros. When a sync occurs, older versions of updated packages are removed from the repository. This can cause disruptions if your system depends specifically on these earlier packages. Open Robotics is providing snapshots of the ROS repository after each sync which provide an option for users or organizations who want more control over when they upgrade to the latest sync.
For more information you can also see the announcement on Discourse
ROS distributions with periodic snapshots
Periodic snapshots are taken for the following distributions and platforms. Snapshots will be available for at least six months from the sync date.
ROS DISTRO |
OS |
ARCHITECTURE |
ROS Indigo |
Ubuntu Trusty |
i386, AMD64, ARMv7 |
ROS Kinetic |
Ubuntu Xenial |
i386, AMD64, ARMv7, ARMv8 |
ROS Melodic |
Ubuntu Bionic |
AMD64, ARMv7, ARMv8 |
ROS 2 Ardent |
Ubuntu Xenial |
AMD64, ARMv8 |
ROS 2 Bouncy |
Ubuntu Bionic |
AMD64, ARMv8 |
ROS 2 Crystal |
Ubuntu Bionic |
AMD64, ARMv8 |
Usage
Most ROS users and developers should continue to use ROS from the regular installation guide. The snapshot repository is still in preview so we don't recommend that you use it on production robots directly but if your build and deploy process involves bundling ROS packages before transferring a comprehensive artifact, like a Docker image or OCI container image, then the snapshot repository is worth checking out today.
Snapshots do not receive bug fixes or security updates so it is still recommended to follow ROS releases and upgrade periodically.
Browse the snapshots repository and decide which snapshot to use.
- Add the snapshot repository key
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA
- Add the snapshot repository to apt sources.
ROS_DISTRO=melodic # or indigo, kinetic, bouncy, crystal SYNC_DATESTAMP=2019-01-24 sudo sh -c 'echo "deb http://snapshots.ros.org/${ROS_DISTRO}/${SYNC_DATESTAMP}/ubuntu $(lsb_release -sc) main" >> /etc/apt/sources.list.d/ros-snapshots.list'
- When this is done, update your apt index:
sudo apt-get update
- Update your rosdep and rosdistro sources to use the same snapshot
# adjust the rosdep sources to use the tag sed -i "s|ros\/rosdistro\/master|ros\/rosdistro\/${ROS_DISTRO}\/${SYNC_DATESTAMP}|" /etc/ros/rosdep/sources.list.d/20-default.list # switch rosdistro to use the tag export ROSDISTRO_INDEX_URL=https://raw.githubusercontent.com/ros/rosdistro/${ROS_DISTRO}/${SYNC_DATESTAMP}/index-v4.yaml
- Now update your rosdep database
rosdep update
- You're now ready to install ROS from a snapshot repository.
Snapshots of End-Of-Life ROS distributions
When a ROS distribution or release platform reaches the end of its support cycle. A snapshot labelled final is taken and can be used like any other snapshot.
We will provide these snapshots for all previously supported architectures at the time that those architectures last were synced. Note that this means that some architectures will have different versions according to when they go out of support.
ROS_DISTRO=indigo SYNC_DATESTAMP=final sudo sh -c 'echo "deb http://snapshots.ros.org/${ROS_DISTRO}/${SYNC_DATESTAMP}/ubuntu $(lsb_release -sc) main" >> /etc/apt/sources.list.d/ros-snapshots.list'