ALPM 프로젝트 주요 성과
1. 사양 및 핵심 라이브러리 개발
ALPM 프로젝트는 Arch Linux의 패키지 관리 스택에서 사용되는 다양한 사용자 정의 파일 형식에 대한 사양을 공식화했습니다. 이를 통해 개발자들은 기존 기술을 유지하고 새로운 기술을 구상하는 데 필요한 깊이 있는 이해를 얻을 수 있습니다. 또한, 다음과 같은 핵심 라이브러리들을 하향식(bottom-up) 접근 방식으로 개발했습니다.
-
alpm-types: Arch Linux 패키지 관리 스택에서 사용되는 공통 저수준 타입을 제공합니다. -
alpm-solve: 일반적인resolvo라이브러리를 기반으로 Arch Linux를 위한 새로운 의존성 해결 방식을 구현했습니다. -
alpm-compress: 패키지 파일의 크기를 줄여 빠른 네트워크 전송을 가능하게 하는 확장 가능한 압축/압축 해제 기능을 제공합니다. -
alpm-package:alpm-package(7)파일에서 메타데이터와 데이터 파일을 추출하고 (초보적인) 패키지 생성을 지원합니다. -
rootless-run:fakeroot(1)및rootlesskit과 같은 백엔드를 활용하여 ‘루트’ 권한으로 명령을 실행하는 것을 추상화하여, 권한 없는 사용자가 패키지 빌드를 수행할 수 있도록 합니다.
2. 파일 형식별 라이브러리 및 CLI
Arch Linux에서 현재 사용되는 파일 형식의 사양을 기반으로, 파싱, 검증 및 작성을 허용하는 라이브러리와 명령줄 인터페이스(CLI)가 개발되었습니다.
-
alpm-srcinfo:PKGBUILD(5)스크립트에서SRCINFO(5)파일을 파싱, 검증 및 생성하는 라이브러리 및 CLI를 제공합니다. -
alpm-buildinfo:BUILDINFO(5)파일 파싱, 검증 및 생성을 위한 라이브러리 및 CLI를 제공합니다. -
alpm-mtree:ALPM-MTREE(5)파일 파싱, 검증 및 생성을 위한 라이브러리 및 CLI를 제공합니다. -
alpm-pkginfo:PKGINFO(5)파일 파싱, 검증 및 생성을 위한 라이브러리 및 CLI를 제공합니다. -
alpm-db:alpm-db-desc(5)및alpm-db-files(5)파일 형식을 파싱, 검증 및 생성할 수 있습니다. -
alpm-soname:ELF파일에서soname정보를 처리하고 추출하는 데 중점을 둡니다. -
alpm-repo-db:alpm-repo-desc(5)및alpm-repo-files(5)파일을 파싱, 검증 및 작성할 수 있습니다.
3. Python 바인딩 및 Linting
Rust 기반 파서와 검증된 타입을 다른 언어에서 사용할 수 있도록 Python 바인딩(python-alpm)이 제공됩니다. 특히 AURweb과 같은 Arch Linux의 주요 Python 프로젝트에서 SRCINFO(5) 지원을 위해 활용됩니다. 또한, 패키지 관리자의 품질 관리와 모범 사례 준수를 지원하기 위해 alpm-lint 크레이트를 통해 린팅 프레임워크가 구축되었습니다.
4. VOA (Verification of OS Artifacts) 프로젝트
Arch Linux의 기존 GnuPG 기반 키링의 단점을 극복하기 위해, 기술 독립적인 서명 검증 메커니즘인 VOA(Verification of OS Artifacts)가 설계되었습니다. 2024년 말에 시작된 UAPI 사양 작업과 2025년 7월에 시작된 VOA 참조 구현은 voa-core, voa-openpgp, voa-config 라이브러리를 포함합니다. 이는 OpenPGP 기반 검증을 위한 다양한 신뢰 모델(plain, trust anchor, Web of Trust)을 제공하며, Arch Linux의 현재 정책을 효과적으로 모델링합니다. 또한, 기존 Web of Trust 구현의 한계를 극복하기 위한 새로운 경로 탐색 알고리즘인 ‘Berblom’이 개발되었으며 2026년에 VOA에 통합될 예정입니다.