跳转至内容

Arch Linux Archive

来自 ArchWiki

Arch Linux Archive (简称ALA),前身是Arch Linux Rollback Machine (简称ARM),存储了历代的官方仓库快照ISO 镜像引导tarball

您可以使用它来

  • 降级单个软件包到之前的版本(最新版本出问题了,我想要上一个版本)
  • 将所有软件包恢复到某个特定时刻(我的系统出问题了,我想回到两个月前)
  • 查找 ISO 镜像的旧版本

软件包仅保留几年,之后会被移动到 Arch Linux 历史存档,托管在 archive.org

位置

Arch Linux Archive 可通过 https://archive.archlinux.org/ 访问,并在全球各地设有 镜像

您也可以通过 源代码 来搭建自己的镜像。

目录

Archive 分为以下 3 个主要目录,详见下文。

├── 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

注意:最后 3 个特殊目录(lastweekmonth)分别链接到最后一个同步的仓库、上一个星期一和当前月份的第一天。

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

您可以下载完整的软件包列表(超过十万个软件包),这是一个压缩的索引:index.0.xz

$ curl https://archive.archlinux.org/packages/.all/index.0.xz | unxz
0ad-a23.1-2-x86_64
0ad-a23.1-3-x86_64
...
zziplib-0.13.69-1-x86_64
zziplib-0.13.70-1-x86_64

/iso

iso 目录包含按发布日期排序的官方 ISO 镜像和引导 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
提示 自 2022.10.01 版本起,Arch Linux Archive 也被添加为 torrent 的 WebSeed(但不包括 magnet 链接)。所有 torrent 文件可从 releases page 下载。

常见问题解答

如何降级单个软件包

/packages 下找到您想要的软件包,然后让 pacman 获取并安装。例如:

# pacman -U https://archive.archlinux.org/packages/path/packagename.pkg.tar.zst

让 pacman 获取它将自动下载软件包的独立 .sig 文件,并根据 /etc/pacman.conf 的设置进行验证。

或者,使用 pacman -U 手动下载并安装软件包。

另请参阅 Downgrading packages#Automation 以获取简化该过程的工具。

如何将所有软件包恢复到特定日期

要将所有软件包恢复到特定日期(例如 2014 年 3 月 30 日)的版本,您需要通过编辑 /etc/pacman.conf 来指示 pacman 使用此日期,并添加以下服务器指令:

/etc/pacman.conf
[core]
SigLevel = PackageRequired
Server = https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch

[extra]
SigLevel = PackageRequired
Server = https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch

通过将您的 /etc/pacman.d/mirrorlist 替换为以下内容:

/etc/pacman.d/mirrorlist
##
## Arch Linux repository mirrorlist
## Generated on 2042-01-01
##
Server = https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
注意 2023 年 5 月,community 仓库 已被移除。如果您需要在此日期之前进行降级,则必须添加一个类似的 community 条目。

然后更新数据库并强制降级:

# pacman -Syyuu

如果您收到关于 PGP 签名损坏/无效软件包的错误,请尝试先单独更新 archlinux-keyringca-certificates。或者,您可以选择暂时 禁用签名检查

警告 混合使用 Archive 和最新的镜像 是不安全的。如果下载失败,您将回退到上游软件包,并且系统其余部分将包含不同时期的软件包。

历史存档

维护 Arch Linux Archive 会消耗大量资源,因此旧软件包会不时被清理。

在删除之前,旧软件包会被上传到 archive.org 上的专用集合“Arch Linux Historical Archive”

历史存档不提供按特定时间点访问 Arch 软件包“快照”的方法。但是,archive.archlinux.org 上有一个重定向,以便旧软件包的下载会重定向到 archive.org 上的历史存档。从用户角度来看,应该没有可见的影响,除了 archive.org 通常下载速度较慢。

在历史存档中查找软件包

Arch Linux Historical Archive 集合包含所有软件包的索引:https://archive.org/details/archlinuxarchive

也可以通过其标识符直接访问软件包。标识符的通用模式是 archlinux_pkg_sanitized_package_name

要获得已清理的软件包名称,只需将软件包名称中的任何 @+. 字符替换为下划线 _

例如,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.*"

历史

  • 原始的 ARM (Archlinux Rollback Machine) 于 2013-08-18 关闭。[1]
  • 此后,它于 2013-08-31 起托管在 seblu.net
  • 新 URL 和关闭旧 ARM 层级结构于 2015-10-13。引入了新软件 agetpkg-gitAUR
  • 于 2015-12-19 迁移到 archive.archlinux.org[2]
  • 2013-2016 年的旧软件包于 2018-06-05 上传到 archive.org

© . This site is unofficial and not affiliated with Arch Linux.

Content is available under GNU Free Documentation License 1.3 or later unless otherwise noted.