Arch Linux Archive
Arch Linux Archive (ALA) —— 前身为 Arch Linux Rollback Machine (ARM) —— 存储了
你可以使用它来
软件包仅保留几年,之后会被移动到 Internet Archive 上的 Arch Linux Historical Archive 中。
位置
Arch Linux Archive 可通过 https://archive.archlinux.org/ 及 镜像站访问。
同时也提供了源代码,以便你建立自己的镜像站。
目录
Arch Linux Archive 分为以下三个主要目录:
├── iso ├── packages └── repos
/iso
iso 目录包含按发布日期排序的官方 ISO 镜像和 bootstrap tarball 压缩包
├── 2014.09.03
├── 2014.10.01
├── 2014.11.01
├── 2014.12.01
├── 2015.07.01
├── 2015.08.01
├── 2015.09.01
└── 2017.04.01
├── arch
├── archlinux-2017.04.01-x86_64.iso
├── archlinux-2017.04.01-x86_64.iso.sig
├── archlinux-2017.04.01-x86_64.iso.torrent
├── archlinux-bootstrap-2017.04.01-x86_64.tar.gz
├── archlinux-bootstrap-2017.04.01-x86_64.tar.gz.sig
├── md5sums.txt
└── sha1sums.txt
/packages
packages 目录包含每个软件包的所有版本及其签名。每个软件包一个目录,软件包目录按首字母分组
├── packages │ ├── a │ │ ├── awesome │ │ │ ├── awesome-4.3-2-x86_64.pkg.tar.zst │ │ │ ├── awesome-4.3-2-x86_64.pkg.tar.zst.sig │ │ │ ├── awesome-4.3-3-x86_64.pkg.tar.zst │ │ │ ├── awesome-4.3-3-x86_64.pkg.tar.zst.sig │ │ │ ├── ... │ │ │ │ │ ├── ... │ │ ├── awstats │ │ └── axel │ │ │ ├── b │ ├── ... │ └── z
你可以使用特殊的子目录 .all 通过名称访问所有软件包。它就像一个扁平的目录,包含了每个软件包的所有版本
├── packages │ ├── .all │ │ ├── awesome-4.3-2-x86_64.pkg.tar.zst │ │ ├── ... │ │ ├── zsh-5.8-1-x86_64.pkg.tar.zst │ │ ├── zsh-5.8.1-1-x86_64.pkg.tar.zst │ │ └── ...
.all 目录不允许列出文件:因为软件包数量大约有十万个。你可以下载压缩后的索引来获取完整的软件包列表
$ curl https://archive.archlinux.org/packages/.all/index.0.xz | unxz | less
a2jmidid-9-1-x86_64 a2jmidid-9-2-x86_64 … 389-ds-base-3.2.0-2-x86_64 389-ds-base-3.2.0-3-x86_64
/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 — 最近一次同步的仓库,
- month — 本月的第一天,archive.org
- week — 上个星期一。
Arch Linux 历史存档 (Historical Archive)
维护 Arch Linux Archive 消耗大量资源,因此旧软件包会不定期清理。在删除之前,旧软件包会被上传到 Internet Archive 上专门的 Arch Linux Historical Archive 集合中。
Arch Linux Historical Archive 不能像 Arch Linux Archive 的 repos 目录那样提供在给定时间点访问 Arch Linux 软件包快照的方法。不过,Arch Linux Archive 设置了重定向,使得对旧软件包的下载请求会被重定向到 Arch Linux Historical Archive。从用户端来看应该没有明显影响,除了 https://archive.org 的下载速度通常较慢。
查找软件包
Arch Linux Historical Archive 集合拥有所有软件包的索引。
也可以直接通过软件包的标识符 (identifier)进行访问。标识符的通用模式是 archlinux_pkg_sanitized_package_name。要获得sanitized (净化后)的软件包名称,只需将软件包名称中的任何 @, + 或 . 字符替换为下划线 (_)。
例如,lucene++ 的标识符是 archlinux_pkg_lucene__。随后你可以通过 https://archive.org/details/archlinux_pkg_lucene__ 访问该软件包的详情页。
还可以使用 archive.org Python 客户端进行搜索
$ ia search subject:"archlinux package" subject:'mysql'
{"identifier": "archlinux_pkg_ejabberd-mod_mysql"}
{"identifier": "archlinux_pkg_ejabberd-mod_mysql-svn"}
{"identifier": "archlinux_pkg_gambas3-gb-db-mysql"}
{"identifier": "archlinux_pkg_gambas3-gb-mysql"}
{"identifier": "archlinux_pkg_libgda-mysql"}
下载软件包
所有可用的软件包版本(及其签名)可以通过软件包的下载页面访问:https://archive.org/download/archlinux_pkg_lucene__。
使用 pacman 下载、验证并安装软件包
# pacman -U https://archive.org/download/archlinux_pkg_cjdns/cjdns-20.5-1-x86_64.pkg.tar.zst
软件包验证由 pacman 的 RemoteFileSigLevel 选项控制。请注意,如果你使用 pacman,你需要自行解决依赖关系。
也可以使用 archive.org Python 客户端。
下载软件包的特定版本
$ ia download archlinux_pkg_cjdns cjdns-20.5-1-x86_64.pkg.tar.zst{,.sig}
下载软件包的所有 x86_64 版本及其签名
$ ia download archlinux_pkg_cjdns --glob="*x86_64.pkg.tar.*"
技巧与提示
降级单个软件包
在 /packages 下找到你想要的软件包,并让 pacman 获取并安装。例如
# pacman -U https://archive.archlinux.org/packages/path/packagename.pkg.tar.zst
让 pacman 获取会自动下载软件包的分离 .sig 文件,并根据 /etc/pacman.conf 的设置进行验证。
或者,使用 pacman -U 手动下载并安装软件包。
另请参阅 降级软件包#自动化 以了解简化此过程的工具。
将所有软件包还原至特定日期
要将所有软件包还原到特定日期的版本 —— 假设是 2014 年 3 月 30 日 —— 你需要通过在 pacman.conf 中使用以下 Server 指令将 pacman 指向该日期
Server = https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
然后更新数据库并强制降级
# pacman -Syyuu
如果你收到关于 PGP 签名导致软件包损坏/无效的错误,请尝试先单独更新 archlinux-keyring 和 ca-certificates。或者,你可以决定临时完全禁用签名检查。
历史
- 原始的 Arch Linux Rollback Machine (ARM) 于 2013-08-18 关闭。
- 之后自 2013-08-31 起托管在 seblu.net。
- 2015-10-13 更改 URL 并关闭旧的 ARM 层级结构。引入了新软件 —— agetpkgAUR。
- 2015-12-19 迁移至 https://archive.archlinux.org。
- 2018-06-05 将 2013-2016 年的旧软件包上传至 https://archive.org/details/archlinuxarchive。
- 自 2022.10.01 版本起,Arch Linux Archive 还被添加为 torrent 的 WebSeed(但不包括 magnet 链接)。