Arch Linux Archive (简体中文)
Related articles
Arch Linux 存档(Arch Linux Archive,简称 ala),以前称为 Arch Linux 回滚机器(Arch Linux Rollback Machine,简称 ARM),保存了 官方仓库快照、iso 镜像 和 引导程序包 的历史版本。
用途
- 将某个包降级到某个早期版本(最新版本不能用,我需要之前的版本)
- 将所有包恢复到某个指定的历史时刻(所有包都不能用,我要恢复到两个月之前的状态)
- 查找某个历史版本的 ISO 镜像
位置
Arch Linux 存档目前位于 https://archive.archlinux.org/ (即以前的 http://ala.seblu.net/ ) 。
此前的下列网址即将关闭,建议不要再使用:
下列网址已关闭:
目录
存档分为下列三个主目录:
├── iso ├── packages └── repos
/repos
repos 这个目录包含官方仓库镜像的每日快照,按下例结构组织:
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
注意: 最下面的三个特定目录(last、week 和 month)分别链接到已同步的最新仓库版本、本周星期一版本和本月一日版本。
/packages
packages 这个目录包含每个包的所有版本及其相应的数字签名。每个包一个目录,按首字母排序。
├── 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
你可以使用“魔法目录”.all 按包名访问所有包。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[broken link: package not found] 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
常见问题
如何降级某个包
You can use #agetpkg to easily download a specific package version from the Archive.
Or you can do it manually:
- Run your favorite internet browser and go to http://ala.seblu.net/packages;
- Go to the package you need and download it;
- Run
pacman -U pkgname.pkg.tar.xz
as root.
如何恢复所有包到指定日期
如果想恢复所有包到指定日期(比如2014年3月30日),你必须如下例所示编辑 /etc/pacman.conf
,从而让 pacman 保持在这个时间点并且直接使用指定的服务器:
[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
或者如下例编辑 /etc/pacman.d/mirrorlist
:
## ## Arch Linux repository mirrorlist ## Generated on 2042-01-01 ## Server=http://ala.seblu.net/repos/2014/03/30/$repo/os/$arch
然后同步包数据库以强制降级:
# pacman -Syyuu
源码
- archivetools -- Software to run an Archive server
- agetpkg -- Software to easy downgrade package from the Archive
未来计划
- Move to official infrastructure.
- Automatic clean-up after a defined amount of time?
- Archive more stuff?