Arch Rollback Machine
The Arch Rollback Machine (ARM for short) is a daily snapshot of official Archlinux mirror. You can use it to find an old version of a package or to change the way you upgrade your system.
Location
The ARM is available at http://seblu.net/a/arm or ftp://seblu.net/archlinux/arm
Architecture
The ARM stores each day snapshot in a filesystem hierarchy like the following. In addition there are 3 symlinks pointing to special snapshots and one packages directory.
├── 2013 │ ├── 08 │ │ └── 31 │ ├── 09 │ │ ├── 01 │ │ ├── 02 │ │ ├── ... │ │ ├── 21 │ │ └── 22 │ └── 10 │ ├── 01 │ ├── 02 │ ├── ... │ ├── packages │ ├── a │ │ ├── awesome │ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz │ │ │ ├── awesome-3.5.0-1-x86_64.pkg.tar.xz │ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz │ │ │ ├── ... │ │ │ │ │ ├── ... │ │ ├── awstats │ │ └── axel │ │ │ ├── b │ ├── ... │ └── z │ ├── all │ ├── awesome-3.5.1-1-i686.pkg.tar.xz │ ├── ... │ ├── zsh-5.0.2-3-i686.pkg.tar.xz │ ├── zsh-5.0.2-4-i686.pkg.tar.xz │ └── ... │ ├── last -> 2013/09/22 ├── month -> 2013/09/01 └── week -> 2013/09/16
- The 20xx hierarchy contains daily snapshots of official mirror organized by date.
- The packages hierarchy contains symlinks to all versions of each package. One directory by package.
- The all hierarchy contains symlinks to all versions of each package in one flat directory. No listing.
- The last symlink is updated every day and points to the last finished mirror snapshot.
- The week symlink is updated every week and points to the monday of the current week.
- The month symlink is updated every month and points to the first day of the current month.
Time travel
This feature allow you to get packages and databases at a given date. You can use it to:
- download an old package;
- use pacman stuck on a particular day.
To have pacman be stuck on 11th September 2013, edit your /etc/pacman.conf
and use the following server directive:
[core] SigLevel = PackageRequired Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch [extra] SigLevel = PackageRequired Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch [community] SigLevel = PackageRequired Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch
or by replace your /etc/pacman.d/mirrorlist
by the following content:
## ## Arch Linux repository mirrorlist ## Generated on 2042-01-01 ## Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch
Time relativity
The feature allow you to get Archlinux upgrades delayed in time.
To upgrade your computer on a weekly or a monthly basis, edit your /etc/pacman.conf
and use the following server directive:
[core] SigLevel = PackageRequired Server=http://seblu.net/a/arm/month/$repo/os/$arch #Server=http://seblu.net/a/arm/week/$repo/os/$arch [extra] SigLevel = PackageRequired Server=http://seblu.net/a/arm/month/$repo/os/$arch #Server=http://seblu.net/a/arm/week/$repo/os/$arch [community] SigLevel = PackageRequired Server=http://seblu.net/a/arm/month/$repo/os/$arch #Server=http://seblu.net/a/arm/week/$repo/os/$arch
or by replace your /etc/pacman.d/mirrorlist
by the following content:
## ## Arch Linux repository mirrorlist ## Generated on 2042-01-01 ## Server=http://seblu.net/a/arm/month/$repo/os/$arch #Server=http://seblu.net/a/arm/week/$repo/os/$arch
Future
This is a kind a TODO list for ARM.
- Move to official infrastructure.
- Automatic cleanup after a defined amount of time.
Sources
Scripts used to create this are simple.
You can find them here: https://github.com/seblu/armtools
Past
The original ARM has been closed on 2013-08-18 [1].
The new one is hosted on seblu.net since 2013-08-31.