
2026/01/11 11:08
**Arch Linux パッケージ管理(ALPM)プロジェクトでの1年間の取り組み**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
ソウバリン・テック・ファンドの15か月にわたるALPMプロジェクトは、Arch Linux のパッケージ管理用 Rust ベースのフレームワークを完成させ、リリースしました。主なマイルストーンは以下の6点です:
- パッケージングデータ形式の正式仕様化;
- ステートレスディレクトリ階層で状態を持たない GnuPG キーリングを置き換える OpenPGP ベースの検証システム (
) の実装;voa - 個別パッケージ用、システムパッケージ管理用、パーサー用の Rust ライブラリ(
、alpm-types
、alpm-parsers
、alpm-solve
、alpm-compress
、およびalpm-package
を含む);rootless-run - PyPI 上で公開されている Python バインディング (
) により、AURweb などのプロジェクトにこれらのライブラリを提供;python-alpm - パブリックドキュメントサイト(https://alpm.archlinux.page/lints/)を備えた lint フレームワーク (
) の実装;alpm‑lint
と Weblate を用いた国際化作業、貢献のガイドラインは https://hosted.weblate.org/projects/alpm/ で確認できる。fluent-i18n
プロジェクトでは、SRCINFO、PKGBUILD、BUILDINFO、ALPM-MTREE、PKGINFO、DB ファイル、およびリポジトリメタデータを解析・検証・作成するコマンドラインインターフェースも公開しました。VOA ポリシーは各アーティファクトに対して1つのデータ署名を要求し、「trust anchor」モデル(3 つの特定フィンガープリント)を採用、設定は
arch.yaml に格納します。voa(1) CLI は設定の確認、証明書のインポート、検証者一覧表示、およびファイル検証が可能であり、パッケージ署名の検証に成功したことを示しています。
今後は lint の拡張、C‑API エミュレーション追加、リポジトリデータベース全体の実装、rootless-run/libkrun 統合のサポート、安全なアーティファクトダウンロード機能の有効化、VOA バックエンド(例:X.509、signify)の導入、
archinstall 用 Python バインディング拡張、および ALPM 上に新しいパッケージ管理アプリケーションを構築する予定です。2026 年には、Web‑of‑Trust 計算の改善のため VOA に Berblom パス探索アルゴリズムを統合する研究が進められます。
結果として、Rust を中心としたモダンなツールキットが完成し、キー管理の簡素化、安全性の向上、および次世代 Arch Linux ツールの開発速度向上に貢献します。
本文
ALPM プロジェクト – 2024 / 2025 年度概要
2024 年に Sovereign Tech Fund(STF)が ALPM プロジェクトを資金提供しました。
このプロジェクトは Arch Linux のパッケージ管理を支える Rust ベースのフレームワークです。
15 ヶ月間で、ライブラリ・コマンドラインツール・ドキュメント一式を完成させました。
マイルストーン
| # | フォーカス |
|---|---|
| 1 | パッケージングデータ形式の正式仕様化 |
| 2 | アーティファクトの基本的な OpenPGP 検証 |
| 3 | 個別パッケージを扱う Rust ライブラリ |
| 4 | の Python バインディング |
| 5 | 配布環境に依存しない OpenPGP スタック(アーティファクト検証) |
| 6 | システムパッケージ管理用 Rust ライブラリ |
貢献とコミュニティ
- 本プロジェクトはフリーソフトウェアエコシステム全体の一部であり、専門分野を超えた価値創造を目指しています。
- この基盤作りに貢献いただいた STF に感謝します。
統計情報
$ git shortlog --after="2024-10-01" --summary --numbered 467 David Runge 252 Arne Beer 173 Orhun Parmaksız 117 Jagoda Ślązak 54 renovate 16 Laura Demkowicz‑Duffy ...
$ tokei ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Language Files Lines Code Comments Blanks ───────────────────────────────────────────────────────────────────────── Rust 271 46298 38583 1700 6015 Markdown 95 10253 0 7000 3253 ... Total 551 92267 54468 21973 15826 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
コアコンセプト
| ライブラリ | 目的 |
|---|---|
| すべてのファイル形式で共有される低レベル型 |
| 他のクレートで使用する中心的な trait とユーティリティ |
| を用いた Arch Linux 独自形式のパーサー |
| ライブラリに基づく汎用解決器 |
| パッケージファイルの拡張可能な圧縮/展開 |
| ファイルの作成・検査 |
| 「root で実行」(fakeroot, rootlesskit) を提供 |
ファイル形式ライブラリ
Alpm-srcinfo –
PKGBUILD(5) から SRCINFO(5) を解析/検証/生成。Alpm-buildinfo – パッケージ内の
BUILDINFO(5) を扱う。Alpm-mtree –
ALPM-MTREE(5)(mtree のサブセット)の読み書き。Alpm-pkginfo –
PKGINFO(5) メタデータを管理。Alpm-db – ローカルデータベース (
alpm-db-desc, alpm-db-files) を解析/検証/生成。Alpm-soname – ELF の soname データからランタイム依存性を抽出。
Alpm-repo-db – リポジトリディスクリプタとファイルリストを扱う。
開発統合
dev-scripts クレートは次のライブデータソースからテストベッドを提供します:
- 公式ソースリポジトリ(全公式リポ + AUR)
- バイナリパッケージリポジトリ
サポートチェック項目:
の検証SRCINFO(5)- バイナリ内の
,ALPM-MTREE(5)
,BUILDINFO(5)PKGINFO(5) - 公式パッケージ全体の OpenPGP 署名
- ローカルデータベースエントリ (
,alpm-db-desc
)alpm-db-files - リポジトリデータベースエントリ (
,alpm-repo-desc
)alpm-repo-files
Python バインディング
パッケージ(PyPI)は Rust ライブラリを Python に公開します。python-alpm
すでに AURweb アプリケーションに統合され、以下をサポート:
を用いたalpm-srcinfo
の解析/生成SRCINFO(5)
から型へのアクセスalpm-types
Lint フレームワーク
クレートは CLI (alpm-lint
alpm-lint) と中央 lint エンジンを提供。現在のルールは限定的で、貢献者が追加することを推奨しています。
ドキュメントとルールは https://alpm.archlinux.page/lints/ で公開。
国際化
Fluent +
fluent-i18n クレートで i18n を実装。翻訳は Weblate で貢献できます:https://hosted.weblate.org/projects/alpm/
VOA(Verification of OS Artifacts)
動機
Arch Linux の現在の OpenPGP 検証は状態を持つ GnuPG キーリングに依存し、
コンテキスト非独立性・相互運用性の欠如など複数の問題があります。
UAPI 仕様
- VOA(Verification of OS Artifacts)ファイル階層 – 2025 年 6 月ドラフト。
多様なバックエンド(OpenPGP, SSH, X.509 等)をサポート。
リファレンス実装
| ライブラリ | 役割 |
|---|---|
| 検証器への抽象ファイルシステムアクセス |
| OpenPGP 検証(プレーン, trust‑anchor, Web of Trust)を実装 |
| 中央 VOA 設定ファイル () を扱う |
例:設定ファイル(arch.yaml)
default_technology_settings: openpgp: num_data_signatures: 1 verification_method: trust_anchor: required_certifications: 3 artifact_verifier_identity_domain_matches: - archlinux.org trust_anchor_fingerprint_matches: - d8afdda07a5b6edfa7d8ccdad6d055f927843f1c - 3572fa2a1b067f22c58af155f8b821b42a6fdcd7 - 69e6471e3ae065297529832e6ba0f5a2037f4f41 - 2ac0a42efb0b5cbc7a0402ed4dc95b6d7be9892e - 91ffe0700e80619ceb73235ca88e23e377514e00
CLI 利用例
$ voa config show arch # 現在の OpenPGP 設定を表示(元テキスト参照) $ voa verify arch package default openpgp /var/cache/pacman/pkg/shadow-4.18.0-1-x86_64.pkg.tar.zst.sig ✅ Verified!
今後の課題
- Berblom の統合 – Web of Trust 計算用モジュラー経路探索アルゴリズム(2026 年計画)。
- X.509、Signify など他バックエンドへの対応。
- ネットワーク上でアーティファクトを安全にダウンロード。
ロードマップのハイライト
| 分野 | 次のステップ |
|---|---|
| Lint の拡張 | ルールセットを増やし、公式ビルドツールに統合。 |
| C‑API | ALPM ライブラリをベースに libalpm をエミュレート(コミュニティ主導)。 |
| リポジトリ DB 処理 | ファイルの作成・読み込み・圧縮・変更全般。 |
| Rootless Run 強化 | サポートを追加し、隔離性を向上。 |
| アーティファクト取得 & 検証 | ネットワークフェッチの安全化;VOA を通じたパッケージ・リポジトリ検証。 |
| Python バインディング拡張 | API をさらに拡充(例:archinstall など)。 |
| 新規アプリケーション | ALPM ライブラリを活用した専門ツール開発をコミュニティへ奨励。 |
コンタクト & コラボレーション
- 貢献希望の方は GitHub またはメーリングリストでご連絡ください。
- FastAPI や AURweb に興味がある Python 開発者もプロジェクトディスカッションに参加歓迎です。
要旨終了