Difference between revisions of "Arch Linux Archive"

From ArchWiki
Jump to: navigation, search
m (add ja link)
m (typo)
Line 10: Line 10:
 
'''You can use it to'''
 
'''You can use it to'''
 
* Downgrade to a previous version of one package (last version is broken, I want the previous one)
 
* Downgrade to a previous version of one package (last version is broken, I want the previous one)
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 moths ago)
+
* Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 months ago)
 
* Find a previous version of an ISO image
 
* Find a previous version of an ISO image
  

Revision as of 18:35, 21 October 2015

The Arch Linux Archive (a.k.a ala), formerly known as Arch Linux Rollback Machine (a.k.a ARM), stores official repositories snapshots, iso images and bootstrap tarballs across time.

You can use it to

  • Downgrade to a previous version of one package (last version is broken, I want the previous one)
  • Restore all your packages at a precise moment (All theses packages are broken, I want to go back 2 months ago)
  • Find a previous version of an ISO image

Location

The Arch Linux Archive is currently available at http://ala.seblu.net/.

Previous locations listed below are deprecated and will be closed soon:

The following locations listed below are now closed:

Directories

The Archive is split into 3 main directories detailed below.

├── iso
├── packages
└── repos

/repos

The repos directory contains daily snapshots of official mirror organized by date like in the following example.

repos
├── 2013
│   ├── 08
│   │   └── 31
│   │       ├── community
│   │       ├── community-staging
│   │       ├── community-testing
│   │       ├── core
│   │       ├── extra
│   │       ├── gnome-unstable
│   │       ├── kde-unstable
│   │       ├── lastsync
│   │       ├── multilib
│   │       ├── multilib-staging
│   │       ├── multilib-testing
│   │       ├── pool
│   │       ├── staging
│   │       └── testing
│   ├── 09
│   │   ├── 01
│   │   ├── 02
│   │   ├── ...
│   │   ├── 21
│   │   └── 22
│   ├── 10
│   │   ├── 01
│   │   ├── 02
│   │   ├── ...
│   │
│   ├── 11
│   └── 12
├── 2014
│   ├── 01
│   │   ├── 01
│   │   ├── 02
│   │   ├── ...
│   │
│   ├── 02
│   ├── 03
│   ├── ...
│   └── 09
│       ├── 01
│       ├── ...
│       └── 28
├── last
├── month
└── week

Note: The last 3 special directories (last, week and month) which links respectively to the last synced repository, to the last monday and to the first of the current month.

/packages

The packages directory contains all versions of each package with their signatures. One directory by package and package directories are grouped by their first letter.

├── packages
│   ├── a
│   │   ├── awesome
│   │   │   ├── awesome-3.5.0-1-i686.pkg.tar.xz
│   │   │   ├── awesome-3.5.0-1-i686.pkg.tar.xz.sig
│   │   │   ├── awesome-3.5.0-1-x86_64.pkg.tar.xz
│   │   │   ├── awesome-3.5.0-1-x86_64.pkg.tar.xz.sig
│   │   │   ├── awesome-3.5.1-1-i686.pkg.tar.xz
│   │   │   ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig
│   │   │   ├── ...
│   │   │ 
│   │   ├── ...
│   │   ├── awstats
│   │   └── axel
│   │   
│   ├── b
│   ├── ...
│   └── z

You can use the magic subdirectory .all to access all packages by their name. In a nutshell, all versions of each package in one flat directory. No clear-text listing allowed here.

├── packages
│   ├── .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
│   │   └── ...

An lightweight index, named index.0.xz is available to list all package in once.

/iso

The iso directory contains official ISO images and bootstrap tarballs sorted by release date.

├── 2014.09.03
├── 2014.10.01
├── 2014.11.01
├── 2014.12.01
├── 2015.07.01
├── 2015.08.01
├── 2015.09.01
└── 2015.10.01
    ├── arch
    ├── archlinux-2015.10.01-dual.iso
    ├── archlinux-2015.10.01-dual.iso.sig
    ├── archlinux-2015.10.01-dual.iso.torrent
    ├── archlinux-bootstrap-2015.10.01-i686.tar.gz
    ├── archlinux-bootstrap-2015.10.01-i686.tar.gz.sig
    ├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz
    ├── archlinux-bootstrap-2015.10.01-x86_64.tar.gz.sig
    ├── md5sums.txt
    └── sha1sums.txt

agetpkg

agetpkg is a command line tool used to quickly list/get/install packages stored in the Archive.

Download a previous version of ferm package
agetpkg ferm
Download xterm version 296
agetpkg ^xterm 296
List all zsh versions
agetpkg -l zsh$
Install all gvfs packages in version 1.26.0 release 3
agetpkg -i gvfs 1.26.0 3
Download all pwgen packages
agetpkg -g -a pwgen

FAQ

How to downgrade one package

You can use agetpkg to easily download a specific package version from the Archive.

Or you can do it manually:

  1. Run your favorite internet browser and go to http://ala.seblu.net/packages;
  2. Go to the package you need and download it;
  3. Run pacman -U pkgname.pkg.tar.xz as root.

How to restore all my packages at a specific date

To restore all the package you have at a specific date, let says 30th March 2014, you have to stuck pacman at this date, by editing your /etc/pacman.conf and use the following server directive:

[core]
SigLevel = PackageRequired
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch

[extra]
SigLevel = PackageRequired
Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch

[community]
SigLevel = PackageRequired
Server=http://ala.seblu.net/repos/2014/03/30/$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://ala.seblu.net/repos/2014/03/30/$repo/os/$arch

Then update the database and force downgrade:

# pacman -Syyuu
Note: It's not safe to mix Archive and up-to-date mirrors. In case of download failure, you can fall-back on an upstream package and you will have packages not from the same epoch as the rest of the system.

Sources

  • archivetools -- Software to run an Archive server
  • agetpkg -- Software to easy downgrade package from the Archive

Future plan

  • Move to official infrastructure.
  • Automatic clean-up after a defined amount of time?
  • Archive more stuff?

History

  • New URL and closing the old ARM hierarchy on 2015-10-13. A new software, agetpkg was introduced.
  • The original ARM (Archlinux Rollback Machine) was closed on 2013-08-18 [1].
  • The new one is hosted on seblu.net since 2013-08-31.