Arch Linux 存檔庫 - Arch Linux 中文维基

跳至內容

# Arch Linux 存檔庫

出自 Arch Linux 中文维基

相關文章

- 軟體包降級

Arch Linux 存檔庫（Arch Linux Archive，簡稱 ala），以前稱為 Arch Linux 回滾機（Arch Linux Rollback Machine，簡稱 ARM），保存了官方倉庫快照、iso 鏡像和 引導（Bootstrap）程序包的歷史版本。

用途

- 將某個包降級到某個早期版本（最新版本不能用，我需要之前的版本）
- 將所有包恢復到某個指定的歷史時刻（所有包都不能用，我要恢復到兩個月之前的狀態）
- 查找某個歷史版本的 ISO 鏡像

軟體包僅會保存幾年時間，之後會被移動到 archive.org 的 Arch Linux Historical Archive.

## 位置

Arch Linux 存檔庫目前位於 https://archive.archlinux.org/ 和全球鏡像.

這裡的原始碼可以幫助您架設自己的存檔庫伺服器。

## 目錄

存檔庫分為下列三個主目錄：

    ├── 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 按包名訪問所有包。這是一個沒有子目錄的結構。

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

可以下載一個壓縮的索引文件，包含完整的軟體包列表 index.0.xz.

    $ curl https://archive.archlinux.org/packages/.all/index.0.xz | unxz

    0ad-a14-1-i686
    0ad-a14-1-x86_64
    0ad-a14-2-i686
    ...
    zziplib-0.13.62-1-x86_64
    zziplib-0.13.62-2-i686
    zziplib-0.13.62-2-x86_64

### /iso

iso 目錄按發布日期，保存官方 ISO 鏡像和啟動壓縮包。

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

提示：從 2022.10.01 開始 Arch Linux Archive 加入了 BT 種子(非磁力鏈). 所有種子文件可以從發布頁面 下載。

## 常見問題

### 如何降級某個包

在 /packages 中找到需要的軟體包，用 pacman 獲取並安裝:

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

pacman 會自動下載 .sig 文件並根據 `/etc/pacman.conf` 設置進行校驗。

或者手動下載並通過 `pacman -U` 安裝.

軟體包降級#自動化包含了可以簡化這個過程的工具。

### 如何恢復所有包到指定日期

如果想恢復所有包到指定日期（比如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

    [community]
    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

然後同步包資料庫以強制降級：

    # pacman -Syyuu

如果抱 PGP 簽名錯誤，軟體包損壞(corrupted/invalid packages),請先嘗試更新 archlinux-keyring包 和 ca-certificates包. Alternatively, you can decide to temporarily disable signature checking altogether.

注意：混用歸檔和更新鏡像很不安全。萬一降級失敗，可能使用的是上游軟體包，會出現軟體包的 epoch 和系統其它軟體不一致的現象。

## 歷史存檔

維護 Arch Linux Archive 需要很多資源，所以需要定期刪除老軟體包。

刪除前軟體包會被上傳到 archive.org 上的 "Arch Linux Historical Archive".

此倉庫並沒有提供某個時間的快照，而是提供了 `archive.archlinux.org` 重定向，老軟體包會被重定向到 `archive.org`。除了下載速度慢，用戶側使用上差別不大。

### 從 Historical Archive 查找軟體包

Arch Linux Historical Archive 包含所有軟體包的索引: https://archive.org/details/archlinuxarchive

可以通過 identifier 獲取軟體包，格式是 `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"}

### 從 Historical Archive 下載軟體包

所有軟體包的版本可以通過如下下載頁面獲取: https://archive.org/download/archlinux_pkg_lucene__.

要通過 pacman 下載安裝:

    # pacman -U https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz

pacman 的 `RemoteFileSigLevel` 選項控制校驗方式，注意依賴關係需要自己解決。

通過 [https://gi

- Moved to archive.archlinux.org on 2015-12-19.[1]

- Old packages from 2013-2016 uploaded to archive.org on 2018-06-05.thub.com/jjjake/internetarchive archive.org Python 客戶端]也能進行下載。

下載某個指定版本：

    $ ia download archlinux_pkg_cjdns cjdns-16.1-3-x86_64.pkg.tar.xz{,.sig}

下載某個軟體包的所有 x86_64 版本：

    $ ia download archlinux_pkg_cjdns --glob="*x86_64.pkg.tar.xz*"

## 歷史

- 最早的 ARM （Archlinux 回滾機） 已於 2013-08-18 關閉[2]。
- seblu.net 新站點已於 2013-08-31 上線。
- 2015-10-13 舊站關閉，同時啟用新 URL 並導入一個新軟體 agetpkg-gitAUR 。
- 2015-12-19 遷移至 archive.archlinux.org。[3]
- 從 2018-06-05 開始 2013-2016 的老軟體包上傳到了 archive.org on .

分類：​

- 包管理
- Arch 項目

Arch Linux 存檔庫
新增話題