「Arch Linux Archive」の版間の差分
(ページの作成:「Category:パッケージ管理 en:Arch Rollback Machine fr:Arch Rollback Machine {{Related articles start (日本語)}} {{Related|パッケージのダウン...」) |
Kusanaginoturugi (トーク | 投稿記録) (Category:Arch プロジェクト を追加) |
||
(他の1人の利用者による、間の9版が非表示) | |||
1行目: | 1行目: | ||
[[Category:パッケージ管理]] |
[[Category:パッケージ管理]] |
||
− | [[ |
+ | [[Category:Arch プロジェクト]] |
− | [[ |
+ | [[en:Arch Linux Archive]] |
+ | [[fr:Arch Linux Archive]] |
||
− | {{Related articles start (日本語)}} |
||
+ | [[pt:Arch Linux Archive]] |
||
+ | [[zh-hans:Arch Linux Archive]] |
||
+ | {{Related articles start}} |
||
{{Related|パッケージのダウングレード}} |
{{Related|パッケージのダウングレード}} |
||
{{Related articles end}} |
{{Related articles end}} |
||
− | ''' |
+ | '''A'''rch '''L'''inux '''Archive''' (''略して ALA''), 旧称 ''Arch Linux Rollback Machine'' (''略して ARM'') は公式リポジトリのスナップショットや昔の ISO イメージ、ブートストラップ tarball などを保存しています。 |
+ | |||
− | ARM を使うことでパッケージの古いバージョンを探したりシステムの更新方法を変えることができます。 |
||
+ | ALA を使うことで以下のことができます: |
||
+ | * パッケージを昔のバージョンにダウングレード (最新版が壊れていて、1つ前のバージョンに戻したい場合) |
||
+ | * ある特定の時間まで全てのパッケージをリストア (全てのパッケージが壊れていて、2ヶ月前まで戻したい場合) |
||
+ | * 1つ前のバージョンの ISO イメージを取得 |
||
+ | |||
+ | パッケージが保存される期間は数年間だけで、それ以降は archive.org の [[#Historical_Archive|Arch Linux Historical Archive]] に移動されます。 |
||
== 場所 == |
== 場所 == |
||
− | + | Arch Linux Archive は現在 https://archive.archlinux.org/ から利用可能です。 |
|
+ | |||
+ | [https://github.com/seblu/archivetools ソースコード] を入手して自分で Arch Linux Archive をセットアップすることもできます。 |
||
+ | |||
+ | == ディレクトリ == |
||
+ | |||
+ | '''Archive''' は以下のように3つのメインディレクトリに分かれています。 |
||
+ | |||
+ | ├── iso |
||
+ | ├── packages |
||
+ | └── repos |
||
− | == |
+ | === /repos === |
− | + | [https://archive.archlinux.org/repos repos] ディレクトリには公式ミラーの毎日のスナップショットが含まれており、以下のように日付でまとめられています。 |
|
− | さらに特別なスナップショットにリンクする3つのシンボリックリンクと1つのパッケージディレクトリがあります。 |
||
+ | repos |
||
├── 2013 |
├── 2013 |
||
│ ├── 08 |
│ ├── 08 |
||
│ │ └── 31 |
│ │ └── 31 |
||
+ | │ │ ├── community |
||
+ | │ │ ├── community-staging |
||
+ | │ │ ├── community-testing |
||
+ | │ │ ├── core |
||
+ | │ │ ├── extra |
||
+ | │ │ ├── gnome-unstable |
||
+ | │ │ ├── kde-unstable |
||
+ | │ │ ├── lastsync |
||
+ | │ │ ├── multilib |
||
+ | │ │ ├── multilib-staging |
||
+ | │ │ ├── multilib-testing |
||
+ | │ │ ├── pool |
||
+ | │ │ ├── staging |
||
+ | │ │ └── testing |
||
│ ├── 09 |
│ ├── 09 |
||
│ │ ├── 01 |
│ │ ├── 01 |
||
27行目: | 60行目: | ||
│ │ ├── 21 |
│ │ ├── 21 |
||
│ │ └── 22 |
│ │ └── 22 |
||
− | │ |
+ | │ ├── 10 |
+ | │ │ ├── 01 |
||
+ | │ │ ├── 02 |
||
+ | │ │ ├── ... |
||
+ | │ │ |
||
+ | │ ├── 11 |
||
+ | │ └── 12 |
||
+ | ├── 2014 |
||
+ | │ ├── 01 |
||
+ | │ │ ├── 01 |
||
+ | │ │ ├── 02 |
||
+ | │ │ ├── ... |
||
+ | │ │ |
||
+ | │ ├── 02 |
||
+ | │ ├── 03 |
||
+ | │ ├── ... |
||
+ | │ └── 09 |
||
│ ├── 01 |
│ ├── 01 |
||
− | │ ├── 02 |
||
│ ├── ... |
│ ├── ... |
||
+ | │ └── 28 |
||
− | │ |
||
+ | ├── last |
||
+ | ├── month |
||
+ | └── week |
||
+ | |||
+ | {{Note|最後の3つの特殊なディレクトリ ('''last''', '''week''', '''month''') はそれぞれ最後に同期したリポジトリ、最後の月曜日に同期したリポジトリ、月の初めに同期したリポジトリにリンクしています。}} |
||
+ | |||
+ | === /packages === |
||
+ | |||
+ | [https://archive.archlinux.org/packages packages] ディレクトリには全てのバージョンのパッケージと署名が含まれています。1つのパッケージに1つのディレクトリとなっており、パッケージのディレクトリは最初の一文字によってまとめられています。 |
||
+ | |||
├── packages |
├── packages |
||
│ ├── a |
│ ├── a |
||
│ │ ├── awesome |
│ │ ├── awesome |
||
│ │ │ ├── awesome-3.5.0-1-i686.pkg.tar.xz |
│ │ │ ├── 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 |
||
+ | │ │ │ ├── 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 |
||
+ | │ │ │ ├── awesome-3.5.1-1-i686.pkg.tar.xz.sig |
||
│ │ │ ├── ... |
│ │ │ ├── ... |
||
│ │ │ |
│ │ │ |
||
47行目: | 108行目: | ||
│ ├── ... |
│ ├── ... |
||
│ └── z |
│ └── z |
||
− | │ |
||
− | ├── 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 |
||
− | │ └── ... |
||
− | │ |
||
− | ├── last -> 2013/09/22 |
||
− | ├── month -> 2013/09/01 |
||
− | └── week -> 2013/09/16 |
||
+ | [https://archive.archlinux.org/packages/.all .all] サブディレクトリを使うことでパッケージの名前で直接アクセスすることができます。要するに、全てのパッケージの全てのバージョンが一つのディレクトリに収まっています。 |
||
− | * '''20xx''' の階層には日付によってまとめられた公式ミラーの日毎のスナップショットが含まれています。 |
||
− | * [http://seblu.net/a/arm/packages packages] の階層にはそれぞれのパッケージの全てのバージョンのシンボリックリンクが含まれています。パッケージごとに一つのディレクトリにまとめれています。 |
||
− | * [http://seblu.net/a/arm/all all] の階層にはひとつのディレクトリにそれぞれのパッケージの全てのバージョンのシンボリックリンクが含まれています。順番はありません。 |
||
− | * [http://seblu.net/a/arm/last last] シンボリックリンクは毎日更新され、最後に完了したミラーのスナップショットにリンクします。 |
||
− | * [http://seblu.net/a/arm/week week] シンボリックリンクは毎週更新され、今週の月曜日にリンクします。 |
||
− | * [http://seblu.net/a/arm/month month] シンボリックリンクは毎月更新され、今月の最初の日にリンクします。 |
||
+ | ├── 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 |
||
+ | │ │ └── ... |
||
+ | 完全なパッケージリストは次の URL からダウンロードできます (圧縮済みです): [https://archive.archlinux.org/packages/.all/index.0.xz index.0.xz]。 |
||
− | この機能によって指定した月日のパッケージとデータベースを取得することが可能です。時間旅行を行うことで: |
||
− | # 古いパッケージをダウンロードできます。 |
||
− | # pacman の時間を特定の日で止められます。 |
||
+ | {{hc|$ curl <nowiki>https://archive.archlinux.org/packages/.all/index.0.xz |</nowiki> unxz| |
||
− | '''pacman''' を2013年10月11日に飛ばすには、{{ic|/etc/pacman.conf}} を編集して以下の server ディレクティブを使って下さい: |
||
+ | 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 === |
||
− | {{bc|<nowiki> |
||
− | [core] |
||
− | SigLevel = PackageRequired |
||
− | Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch |
||
+ | [https://archive.archlinux.org/iso iso] ディレクトリには公式 ISO イメージとブートストラップ tarball が収められており、リリース日によって分けられています。 |
||
− | [extra] |
||
− | SigLevel = PackageRequired |
||
− | Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch |
||
+ | ├── 2014.09.03 |
||
− | [community] |
||
+ | ├── 2014.10.01 |
||
− | SigLevel = PackageRequired |
||
+ | ├── 2014.11.01 |
||
− | Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch |
||
+ | ├── 2014.12.01 |
||
− | </nowiki>}} |
||
+ | ├── 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 |
||
+ | == FAQ == |
||
− | もしくは {{ic|/etc/pacman.d/mirrorlist}} を以下の内容で置き換えてください: |
||
+ | === パッケージをダウングレードする方法 === |
||
− | {{bc|<nowiki> |
||
+ | |||
− | ## |
||
+ | [[#/packages|/packages]] の中からダウングレードしたいパッケージを探して以下のようにインストールしてください: |
||
− | ## Arch Linux repository mirrorlist |
||
+ | |||
− | ## Generated on 2042-01-01 |
||
+ | # pacman -U <nowiki>https://archive.archlinux.org/packages/</nowiki> ... ''packagename''.pkg.tar.xz |
||
− | ## |
||
+ | |||
− | Server=http://seblu.net/a/arm/2013/09/11/$repo/os/$arch |
||
+ | pacman はパッケージに付属している ''.sig'' ファイルを自動的にダウンロードして {{ic|/etc/pacman.conf}} の設定にしたがって検証を実行します。 |
||
− | </nowiki>}} |
||
+ | もしくは、パッケージを手動でダウンロードして {{ic|pacman -U}} でインストールする方法もあります。 |
||
− | それからデータベースを更新してください: {{Ic|# pacman -Syy}} |
||
+ | ダウングレードを簡単にするツールについては[[パッケージのダウングレード#公式パッケージ]]を見てください。 |
||
− | {{Note|ARM と最新のミラーを混ぜるのは危険です。ダウンロードが失敗した場合に、上流のパッケージが拾われる可能性があり、システムの他の部分と epoch が合わないパッケージが入ることになってしまいます。}} |
||
+ | === 特定の日時まで全てのパッケージをリストアする方法 === |
||
− | == 時間の遅れ == |
||
+ | 特定の日時にあったパッケージにリストアするには、例えば2014年3月30日の場合、{{ic|/etc/pacman.conf}} を編集して以下のようにサーバーを記述することで [[pacman]] にその時のパッケージをダウンロードさせます: |
||
− | この機能を使うことで Archlinux の更新を将来に先送りすることが可能です。 |
||
− | コンピュータを週ごと・月ごとのペースで更新するには、{{ic|/etc/pacman.conf}} を編集して以下の server ディレクティブを使って下さい: |
||
{{bc|<nowiki> |
{{bc|<nowiki> |
||
[core] |
[core] |
||
SigLevel = PackageRequired |
SigLevel = PackageRequired |
||
− | Server= |
+ | Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch |
− | #Server=http://seblu.net/a/arm/week/$repo/os/$arch |
||
[extra] |
[extra] |
||
SigLevel = PackageRequired |
SigLevel = PackageRequired |
||
− | Server= |
+ | Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch |
− | #Server=http://seblu.net/a/arm/week/$repo/os/$arch |
||
[community] |
[community] |
||
SigLevel = PackageRequired |
SigLevel = PackageRequired |
||
− | Server= |
+ | Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch |
− | #Server=http://seblu.net/a/arm/week/$repo/os/$arch |
||
</nowiki>}} |
</nowiki>}} |
||
− | もしくは {{ic|/etc/pacman.d/mirrorlist}} を |
+ | もしくは以下の内容で {{ic|/etc/pacman.d/mirrorlist}} を置き換えます: |
{{bc|<nowiki> |
{{bc|<nowiki> |
||
131行目: | 190行目: | ||
## Generated on 2042-01-01 |
## Generated on 2042-01-01 |
||
## |
## |
||
− | Server= |
+ | Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch |
− | #Server=http://seblu.net/a/arm/week/$repo/os/$arch |
||
</nowiki>}} |
</nowiki>}} |
||
+ | そしてデータベースをアップデートして強制的にダウングレード: |
||
− | {{Note|ARM と最新のミラーを混ぜるのは危険です。ダウンロードが失敗した場合に、上流のパッケージが拾われる可能性があり、システムの他の部分と epoch が合わないパッケージが入ることになってしまいます。}} |
||
+ | # pacman -Syyuu |
||
+ | {{Note|Archive と最新のミラーを混ぜるのは[[pacman#部分的なアップグレードはサポートされていません|危険]]です。ダウンロードが失敗した場合に、上流のパッケージが拾われる可能性があり、システムの他の部分と epoch が合わないパッケージが入ることになってしまいます。}} |
||
− | == 未来 == |
||
+ | == Historical Archive == |
||
− | 以下 '''ARM''' の TODO リスト。 |
||
+ | Arch Linux Archive を維持するのに大量のリソースが消費されるため、古いパッケージは随時消去されます。 |
||
− | * 公式のインフラに移動。 |
||
− | * ある程度時間が経過したら自動でクリーンアップ。 |
||
− | * AUR を ARM に追加する。 |
||
+ | 古いパッケージは削除される前に、archive.org の [https://archive.org/details/archlinuxarchive "Arch Linux Historical Archive"] コレクションにアップロードされます。 |
||
− | == ソース == |
||
+ | Historical Archive には特定の日時における Arch パッケージの「スナップショット」を取得する機能がありません。ただし、{{ic|archive.archlinux.org}} のリダイレクトによって古いパッケージをダウンロードしようとすると {{ic|archive.org}} の Historical Archive にリダイレクトされるようになっています。ユーザーから見れば特に影響はありませんが、{{ic|archive.org}} からのダウンロードは基本的に速度が遅くなります。 |
||
− | ARM を作るためのスクリプトはシンプルです。 |
||
+ | === Historical Archive でパッケージを検索 === |
||
− | スクリプトはここから入手できます: https://github.com/seblu/armtools |
||
+ | '''Arch Linux Historical Archive''' コレクションには全てのパッケージのインデックスが存在します: https://archive.org/details/archlinuxarchive |
||
− | == 過去 == |
||
+ | |||
+ | 識別子を使ってパッケージに直接アクセスすることも可能です。識別子の基本パターンは: |
||
+ | |||
+ | archlinux_pkg_<sanitized package name> |
||
+ | |||
+ | サニタイズされたパッケージ名は、パッケージ名に含まれている {{ic|@}}, {{ic|+}}, {{ic|.}} 記号をアンダーバーの {{ic|_}} に置き換えた名前となります。 |
||
+ | |||
+ | 例えば {{pkg|lucene++}} の識別子は {{ic|archlinux_pkg_lucene__}} です。 |
||
+ | |||
+ | 識別子でパッケージの詳細ページにアクセスすることが可能です。例: https://archive.org/details/archlinux_pkg_lucene__ |
||
+ | |||
+ | [https://github.com/jjjake/internetarchive archive.org の Python クライアント] を使って検索を行うこともできます: |
||
+ | |||
+ | {{hc|$ ia search subject:"archlinux package" subject:'mysql'|<nowiki> |
||
+ | {"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"}</nowiki>}} |
||
+ | |||
+ | === Historical Archive からパッケージをダウンロード === |
||
+ | |||
+ | 全てのバージョンのパッケージ (と署名) はパッケージのダウンロードページからアクセスできます: https://archive.org/download/archlinux_pkg_lucene__ |
||
+ | |||
+ | パッケージの取得例: |
||
+ | |||
+ | $ wget <nowiki>https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz{,.sig}</nowiki> |
||
+ | # pacman -U <nowiki>https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz</nowiki> |
||
+ | |||
+ | pacman を使用する場合、依存関係を自分で解決する必要があります。 |
||
+ | |||
+ | [https://github.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*" |
||
+ | |||
+ | === パッケージのダウンロードを Historical Archive にリダイレクト === |
||
+ | |||
+ | 古いパッケージのダウンロードを {{ic|archive.org}} にリダイレクトする orion サーバーの Nginx 設定: |
||
+ | |||
+ | {{bc|<nowiki> |
||
+ | location ~ /repos/201[3456]/.*/.*\.pkg\.tar\.xz(\.sig)? { |
||
+ | # Tricky regexp to separate the pkgname from the pkgver (both can contain "-") |
||
+ | rewrite ^/repos/.*/((.*?)-[^-/]+-[0-9]+-[^-]+.*\.pkg\.tar\.xz(\.sig)?)$ /archive.org/archlinux_pkg_$2/$1 last; |
||
+ | } |
||
+ | |||
+ | # archive.org download URLs look like: |
||
+ | # https://archive.org/download/archlinux_pkg_lucene__/lucene++-1.4.2-3-i686.pkg.tar.xz |
||
+ | # We need to remove @.+ in the identifier (archlinux_pkg_*) but keep it in the filename at the end. |
||
+ | location /archive.org/ { |
||
+ | # Rewrite @, + and . into _ |
||
+ | # This is recursive so it will work even for multiple replacement, |
||
+ | # with up to 10 replacements for each character (nginx recursion limit). |
||
+ | # Idea from https://stackoverflow.com/a/15934256 |
||
+ | rewrite ^/archive\.org/([^@]*)@(.*)/(.*)$ /archive.org/$1_$2/$3; |
||
+ | rewrite ^/archive\.org/([^\.]*)\.(.*)/(.*)$ /archive.org/$1_$2/$3; |
||
+ | rewrite ^/archive\.org/([^\+]*)\+(.*)/(.*)$ /archive.org/$1_$2/$3; |
||
+ | # Once there are no more @.+ in the identifier part, redirect to archive.org |
||
+ | rewrite ^/archive\.org/([^@\+\.]*/.*)$ https://archive.org/download/$1 permanent; |
||
+ | } |
||
+ | </nowiki>}} |
||
+ | == 歴史 == |
||
− | オリジナルの '''ARM''' は 2013-08-18 に幕を閉じました [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360]。 |
||
+ | * オリジナルの ARM (''Archlinux Rollback Machine'') は2013年8月18日に幕を閉じました [https://bbs.archlinux.org/viewtopic.php?pid=1313360#p1313360]。 |
||
− | 新しい ARM は 2013-08-31 から [http://seblu.net seblu.net] でホストされています。 |
||
+ | * 新しい ARM は2013年8月31日から [http://seblu.net seblu.net] でホストされています。 |
||
+ | * 2015年10月13日に、新しい URL が作られ昔の ARM ディレクトリは無くなりました。新しいソフトウェア、{{AUR|agetpkg-git}} が作られました。 |
||
+ | * 2015年12月19日に [https://archive.archlinux.org archive.archlinux.org] に移動しました [https://lists.archlinux.org/pipermail/arch-dev-public/2015-December/027635.html]。 |
||
+ | * 2018年6月5日に2013年〜2016年の古いパッケージは [https://archive.org/details/archlinuxarchive archive.org] にアップロードされました。 |
2020年7月7日 (火) 15:27時点における最新版
関連記事
Arch Linux Archive (略して ALA), 旧称 Arch Linux Rollback Machine (略して ARM) は公式リポジトリのスナップショットや昔の ISO イメージ、ブートストラップ tarball などを保存しています。
ALA を使うことで以下のことができます:
- パッケージを昔のバージョンにダウングレード (最新版が壊れていて、1つ前のバージョンに戻したい場合)
- ある特定の時間まで全てのパッケージをリストア (全てのパッケージが壊れていて、2ヶ月前まで戻したい場合)
- 1つ前のバージョンの ISO イメージを取得
パッケージが保存される期間は数年間だけで、それ以降は archive.org の Arch Linux Historical Archive に移動されます。
目次
場所
Arch Linux Archive は現在 https://archive.archlinux.org/ から利用可能です。
ソースコード を入手して自分で Arch Linux Archive をセットアップすることもできます。
ディレクトリ
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 │ │ └── ...
完全なパッケージリストは次の URL からダウンロードできます (圧縮済みです): 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 イメージとブートストラップ 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
FAQ
パッケージをダウングレードする方法
/packages の中からダウングレードしたいパッケージを探して以下のようにインストールしてください:
# pacman -U https://archive.archlinux.org/packages/ ... packagename.pkg.tar.xz
pacman はパッケージに付属している .sig ファイルを自動的にダウンロードして /etc/pacman.conf
の設定にしたがって検証を実行します。
もしくは、パッケージを手動でダウンロードして pacman -U
でインストールする方法もあります。
ダウングレードを簡単にするツールについてはパッケージのダウングレード#公式パッケージを見てください。
特定の日時まで全てのパッケージをリストアする方法
特定の日時にあったパッケージにリストアするには、例えば2014年3月30日の場合、/etc/pacman.conf
を編集して以下のようにサーバーを記述することで pacman にその時のパッケージをダウンロードさせます:
[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
を置き換えます:
## ## Arch Linux repository mirrorlist ## Generated on 2042-01-01 ## Server=https://archive.archlinux.org/repos/2014/03/30/$repo/os/$arch
そしてデータベースをアップデートして強制的にダウングレード:
# pacman -Syyuu
Historical Archive
Arch Linux Archive を維持するのに大量のリソースが消費されるため、古いパッケージは随時消去されます。
古いパッケージは削除される前に、archive.org の "Arch Linux Historical Archive" コレクションにアップロードされます。
Historical Archive には特定の日時における Arch パッケージの「スナップショット」を取得する機能がありません。ただし、archive.archlinux.org
のリダイレクトによって古いパッケージをダウンロードしようとすると archive.org
の Historical Archive にリダイレクトされるようになっています。ユーザーから見れば特に影響はありませんが、archive.org
からのダウンロードは基本的に速度が遅くなります。
Historical Archive でパッケージを検索
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"}
Historical Archive からパッケージをダウンロード
全てのバージョンのパッケージ (と署名) はパッケージのダウンロードページからアクセスできます: https://archive.org/download/archlinux_pkg_lucene__
パッケージの取得例:
$ wget https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz{,.sig} # pacman -U https://archive.org/download/archlinux_pkg_cjdns/cjdns-16.1-3-x86_64.pkg.tar.xz
pacman を使用する場合、依存関係を自分で解決する必要があります。
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*"
パッケージのダウンロードを Historical Archive にリダイレクト
古いパッケージのダウンロードを archive.org
にリダイレクトする orion サーバーの Nginx 設定:
location ~ /repos/201[3456]/.*/.*\.pkg\.tar\.xz(\.sig)? { # Tricky regexp to separate the pkgname from the pkgver (both can contain "-") rewrite ^/repos/.*/((.*?)-[^-/]+-[0-9]+-[^-]+.*\.pkg\.tar\.xz(\.sig)?)$ /archive.org/archlinux_pkg_$2/$1 last; } # archive.org download URLs look like: # https://archive.org/download/archlinux_pkg_lucene__/lucene++-1.4.2-3-i686.pkg.tar.xz # We need to remove @.+ in the identifier (archlinux_pkg_*) but keep it in the filename at the end. location /archive.org/ { # Rewrite @, + and . into _ # This is recursive so it will work even for multiple replacement, # with up to 10 replacements for each character (nginx recursion limit). # Idea from https://stackoverflow.com/a/15934256 rewrite ^/archive\.org/([^@]*)@(.*)/(.*)$ /archive.org/$1_$2/$3; rewrite ^/archive\.org/([^\.]*)\.(.*)/(.*)$ /archive.org/$1_$2/$3; rewrite ^/archive\.org/([^\+]*)\+(.*)/(.*)$ /archive.org/$1_$2/$3; # Once there are no more @.+ in the identifier part, redirect to archive.org rewrite ^/archive\.org/([^@\+\.]*/.*)$ https://archive.org/download/$1 permanent; }
歴史
- オリジナルの ARM (Archlinux Rollback Machine) は2013年8月18日に幕を閉じました [1]。
- 新しい ARM は2013年8月31日から seblu.net でホストされています。
- 2015年10月13日に、新しい URL が作られ昔の ARM ディレクトリは無くなりました。新しいソフトウェア、agetpkg-gitAUR が作られました。
- 2015年12月19日に archive.archlinux.org に移動しました [2]。
- 2018年6月5日に2013年〜2016年の古いパッケージは archive.org にアップロードされました。