Arch Linux Archive
関連記事
Arch Linux Archive (略して ala), 旧称 Arch Linux Rollback Machine (略して ARM) は公式リポジトリのスナップショットや昔の ISO イメージ、ブートストラップ tarball などを保存しています。
ala を使うことで以下のことができます:
- パッケージを昔のバージョンにダウングレード (最新版が壊れていて、1つ前のバージョンに戻したい場合)
- ある特定の時間まで全てのパッケージをリストア (全てのパッケージが壊れていて、2ヶ月前まで戻したい場合)
- 1つ前のバージョンの ISO イメージを取得
目次
場所
Arch Linux Archive は現在 http://ala.seblu.net/ から利用可能です。
以下の URL は非推奨となっており後に廃止される予定です:
以下の URL はもう使うことができません:
ディレクトリ
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
/packages
packages ディレクトリには全てのバージョンのパッケージと署名が含まれています。1つのパッケージに1つのディレクトリとなっており、パッケージのディレクトリは最初の一文字によってまとめられています。
├── 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 という名前のインデックスが存在します。
/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 └── 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 は Archive に保存されているパッケージを素早く確認・取得・インストールするためのコマンドラインツールです。
一つ前のバージョンの ferm パッケージをダウンロード
agetpkg ferm
xterm のバージョン 296 をダウンロード
agetpkg ^xterm 296
zsh のバージョンを全て確認
agetpkg -l zsh$
バージョン 1.26.0 リリース 3 の gvfs パッケージをインストール
agetpkg -i gvfs 1.26.0 3
pwgen パッケージを全てダウンロード
agetpkg -g -a pwgen
FAQ
パッケージをダウングレードする方法
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 -- Archive サーバーを動かすためのソフトウェア
- agetpkg -- Archive から簡単にパッケージをダウングレードするためのソフトウェア
将来の予定
- 公式のインフラに移行。
- ある程度時間が経過したら自動でクリーンアップ。
- 他のパッケージもアーカイブ化。