Sapphire: macOS용 Rust 기반 패키지 관리자 (Homebrew 대체)

2 weeks ago 17

  • SapphireRust로 개발된 차세대 패키지 관리자임
  • Homebrew에서 영감을 받아 FormulaeCasks를 설치 및 관리함
  • 현재 ARM 아키텍처만 지원하며, x86 지원은 추후 추가될 가능성이 있음
  • 프로젝트는 sapphire-coresapphire-cli로 구성되어 있음
  • SapphireBSD-3-Clause 라이선스를 따름

Sapphire 경고

  • Sapphire는 실험적이며 활발히 개발 중인 소프트웨어로, 불안정할 수 있음
  • brew로 설치한 cask를 Sapphire로 재설치하면 경로가 약간 다르게 설치되며, 사용자 설정이 자동으로 마이그레이션되지 않음

⚙️ 프로젝트 구조

  • sapphire-core: 핵심 라이브러리로, 패키지 가져오기, 의존성 해결, 아카이브 추출, 아티팩트 처리 등을 담당함
  • sapphire-cli: 명령줄 인터페이스로, sapphire 실행 파일이 핵심 라이브러리를 감쌈

🚧 현재 상태

  • Bottle 설치 및 제거
  • Cask 설치 및 제거
  • 속도를 위한 병렬 다운로드 및 설치
  • 자동 의존성 해결 및 설치
  • 소스에서 Formulae 빌드 (아주 초기 단계)

🚀 로드맵

  1. 업그레이드 명령어로 설치된 패키지 업데이트
  2. 오래된 다운로드, 버전, 캐시 정리
  3. 빠른 재설치를 위한 Reinstall 명령어
  4. /opt/sapphire를 독립 레이아웃으로 지원하는 Prefix isolation
  5. 환경을 부트스트랩하는 sapphire init 도우미
  6. 지속적인 버그 수정 및 안정성 개선

📦 사용법

  • 도움말 출력: sapphire --help
  • 메타데이터 업데이트: sapphire update
  • 패키지 검색: sapphire search <formula/cask>
  • 패키지 정보 얻기: sapphire info <formula/cask>
  • Bottle 또는 Cask 설치: sapphire install <formula/cask>
  • 소스에서 Formula 빌드 및 설치: sapphire install --build-from-source <formula>
  • 제거: sapphire uninstall <formula/cask>
  • (곧 제공 예정) sapphire upgrade [--all] <name>, sapphire cleanup, sapphire init

🏗️ 소스에서 빌드

필수 조건: 안정적인 Rust 도구 체인

  • git clone <repo-url>
  • cd sapphire
  • cargo build --release
  • sapphire 바이너리는 target/release/sapphire에 위치하며, 이를 PATH에 추가

🤝 기여

  • Sapphire는 피드백과 코드로 성장함
  • CaskBottle 설치와 --build-from-source에 대한 테스트 및 버그 보고를 특히 필요로 함
  • 핵심 및 Cask 모듈에 대한 테스트 커버리지
  • CLI UI/UX 개선
  • CONTRIBUTING.md 참고
  • 이슈나 PR을 자유롭게 열 수 있으며, 모든 기여는 도움이 됨

📄 라이선스

  • Sapphire: BSD-3-Clause - LICENSE.md 참조
  • Homebrew에서 영감을 받은 BSD-2-ClauseNOTICE.md 참조

알파 소프트웨어. 보증 없음. 책임감 있게 사용

Read Entire Article