ALPM 프로젝트: Arch Linux 패키지 관리를 위한 Rust 기반 프레임워크 개발 성과

A Year of Work on the Arch Linux Package Management (ALPM) Project

작성자
HackerNews
발행일
2026년 01월 10일

핵심 요약

  • 1 ALPM 프로젝트는 Sovereign Tech Fund의 지원으로 Arch Linux 패키지 관리를 위한 Rust 기반 프레임워크를 15개월간 개발하여 다양한 도구와 라이브러리를 구축했습니다.
  • 2 파일 형식 사양 정의, 암호화 검증, 패키지 파일 및 시스템 관리 등 패키지 관리 생태계의 여러 측면을 다루는 핵심 라이브러리와 CLI 도구를 개발했습니다.
  • 3 기존 GnuPG 기반 키링의 한계를 극복하기 위한 기술 독립적인 아티팩트 검증 메커니즘인 VOA를 설계하고 참조 구현을 완료했으며, 향후 Berblom 알고리즘을 통합할 예정입니다.

도입

2024년 Sovereign Tech Fund(STF)의 지원을 받아 시작된 ALPM 프로젝트는 Arch Linux 패키지 관리를 위한 Rust 기반 프레임워크를 개발하는 데 중점을 두었습니다. 15개월간의 지원 기간 동안, 프로젝트는 파일 형식의 공식화 및 파싱부터 암호화 검증, 그리고 패키지 파일 및 시스템 패키지 관리 처리까지 패키지 관리 생태계의 다양한 측면에 걸쳐 중요한 진전을 이루었습니다. 이 글은 그동안의 주요 성과와 개발된 도구 및 통합 사항들을 상세히 설명합니다.

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에 통합될 예정입니다.

결론

ALPM 프로젝트는 Sovereign Tech Fund의 지원 기간 동안 설정된 목표를 성공적으로 달성했습니다. 광범위한 기초 문서화와 핵심 라이브러리 개발을 통해 Arch Linux 패키지 관리의 견고한 기반을 마련했습니다. 향후 더 많은 린트 규칙 추가, C-API 에뮬레이션, 저장소 데이터베이스 처리 기능 강화, `rootless-run`에 `libkrun` 지원, 아티팩트 다운로드 및 검증 기능 확장, 추가 VOA 기술 백엔드 개발, Python 바인딩 확장, 그리고 새로운 패키지 관리 애플리케이션 구축 등 다양한 추가 작업이 계획되어 있습니다. 이러한 노력은 사용자에게 더 나은 경험을 제공하고 Arch Linux 생태계의 혁신을 촉진할 것입니다.

댓글 0

로그인이 필요합니다

댓글을 작성하거나 대화에 참여하려면 로그인이 필요합니다.

로그인 하러 가기

아직 댓글이 없습니다

첫 번째 댓글을 작성해보세요!