This page explains what the ros-snapshots repository is and how to use it.

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.

  1. Browse the snapshots repository and decide which snapshot to use.

  2. Add the snapshot repository key
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key 4B63CF8FDE49746E98FA01DDAD19BAB3CBF125EA
  3. 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'
  4. When this is done, update your apt index:
    sudo apt-get update
  5. 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
  6. Now update your rosdep database
    rosdep update
  7. 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'

Wiki: SnapshotRepository (last edited 2021-04-07 18:04:35 by TullyFoote)