Difference between revisions of "Arch Rollback Machine"

From ArchWiki
Jump to: navigation, search
(use bc template with nowiki tags so that URLs are not "clickable" - they contain variables anyway)
Line 129: Line 129:
 
* Move to official infrastructure.
 
* Move to official infrastructure.
 
* Automatic cleanup after a defined amount of time.
 
* 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 ==
 
== Past ==

Revision as of 01:07, 4 December 2013

Summary help replacing me
This guide gather information around the Arch Rollback Machine
Related
Downgrading Packages

The Arch Rollback Machine (ARM for short) is an everyday 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-3.5.1-1-i686.pkg.tar.xz
│   │   ├── awesome-3.5.2-1-i686.pkg.tar.xz
│   │   ├── ...
│   │   
│   ├── b
│   ├── ...
│   └── z
│
├── last -> 2013/09/22
├── month -> 2013/09/01
└── week -> 2013/09/16
  • The 20xx hierarchy contains snapshots of official mirror sorted by date.
  • The packages hierarchy contains symlinks to each version of a package sorted by name.
  • 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:

  1. download an old package;
  2. 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
Note: It's not safe to mix ARM and up-to-date mirrror. In case of download failure, you can fallback on a upstream package and you will have packages not from the same epoch than the rest of the system.

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
Note: It's not safe to mix ARM and up-to-date mirrror. In case of download failure, you can fallback on a upstream package and you will have packages not from the same epoch than the rest of the system.

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.