패키지, 저장소 및 앱 카테고리 검색

패키지 상세v0.83.0

xpm

모든 유닉스 계열 배포판(맥OS 포함)용 통합 패키지 매니저. 또한 실험적인 윈도우 지원도 제공합니다.

AndroidiOSmacOSWindowsLinux
30일 다운로드
532
좋아요
3
Pub 점수
115

패키지 설치

flutter pub add xpm

패키지 개요

공개 정보를 바탕으로 생성한 선택 가이드입니다.

XPM은 macOS, Linux 및 실험적 Windows 지원을 포함한 유닉스 계열 시스템을 위한 통합 패키지 매니저입니다. 다양한 환경 간에 애플리케이션의 설치, 관리, 배포를 원활하게 가능하게 합니다. Flutter와 Dart로 구축되어 의존성 처리와 앱 배포를 단순화하며, 여러 플랫폼을 대상으로 하는 개발자에게 이상적입니다. 크로스플랫폼 호환성을 통해 안드로이드, iOS, macOS, Windows, Linux에서 일관된 동작을 보장합니다. 이 도구는 플러터 생태계 내 패키지 관리 워크플로우를 통합하는 것을 목표로 합니다.

사용 사례

  • 크로스 플랫폼 앱 배포
  • 운영 체제 간 통합 패키지 관리
  • 간편한 앱 배포
  • 개발 워크플로우 자동화
  • CI/CD 통합
  • 다중 OS 종속성 해결

주요 기능

  • 유닉스 유사 시스템 간의 포괄적 호환성
  • 실험적 Windows 지원
  • Flutter/Dart 기반 아키텍처
  • `flutter pub add xpm`를 통한 명령줄 인터페이스
  • Android, iOS, macOS, Windows 및 Linux를 지원합니다
  • 앱 패키징 및 배포 간소화

적합한 대상

  • 여러 운영 체제를 대상으로 하는 개발자
  • CI/CD 파이프라인을 사용하는 팀
  • 크로스 플랫폼 플러터 앱의 출판자
  • 통합 도구를 찾는 환경 유지보수자
  • 오픈소스 기여자가 다중 OS 프로젝트를 관리하고 있습니다

고려 사항

  • Windows 지원은 여전히 실험적입니다
  • Flutter 환경 설정이 필요합니다
  • 사용 가능한 문서가 제한적입니다
  • 플랫폼별 구성이 필요할 수 있습니다
  • 생산 환경에서 아직 널리 채택되지 않음
  • GitHub 호스팅 소스 코드에 대한 종속성

원본 README

연결된 소스 저장소의 README 원문 스냅샷입니다. 최신 내용은 저장소에서 확인하세요.

xpm - uniX Package Manager

CI

A universal package manager for any unix-like distro including macOS. Rewritten in Rust for maximum performance and portability.

What is xpm?

XPM is a package manager for unix systems like Linux, BSD, MacOS, etc. It can be a wrapper for native package managers or a package manager itself by using its way of installing packages. For the list of packages available, see xpm-popular.

Our key values
  • Easy to install, update, upgrade, remove, search (and filter)
  • No questions asked, can run in a non-interactive way
  • Easy to create new installers or a full repository
  • Be agnostic, following unix standards and relying on very known tools
  • Include many popular distros, including macOS and Android (termux)
  • Prefer native pm way and falls back to xpm way

Features

  • Universal: Works on Linux (Arch, Debian, Ubuntu, Fedora, openSUSE), macOS, and Android/Termux
  • Fast: Built with Rust for maximum performance (~3MB static binary)
  • Unified: Search and install packages from XPM repositories AND native package managers
  • AUR Support: Full AUR helper support (paru, yay) on Arch Linux
  • Offline-first: Local database with cached package metadata
  • Script-based packages: Simple bash scripts for package installation

Supported Operating Systems & Package Managers

🎯 Integrated Support (Native PM with formatted search)
  • Debian/Ubuntu & derivatives → APT
  • Arch Linux → Pacman (with AUR support via Paru and Yay)

These systems get full native package manager integration with intelligent search, metadata extraction, and clean formatted output.

📜 Script-Based Support (via installers)

For other systems, XPM provides script-based installation through the xpm-popular repository:

Linux Distributions:

  • Fedora → DNF
  • openSUSE → Zypper
  • Clear Linux → swupd
  • Android (Termux) → pkg
  • Alpine Linux → via custom scripts

macOS → Homebrew (brew) - via scripts

Installation

Faster with curl
curl -fsSL install.cat/verseles/xpm
From Source
# Clone the repository
git clone https://github.com/verseles/xpm.git
cd xpm

# Build
cargo build --release

# Install to /usr/local/bin
sudo cp target/release/xpm /usr/local/bin/
From Cargo
cargo install --git https://github.com/verseles/xpm.git

Quick Start

# Check your system
xpm check

# Add the default repository (pulls from xpm-popular)
xpm refresh

# Search for packages (searches XPM + native PM)
xpm search neovim

# Install a package
xpm install neovim

# Remove a package
xpm remove neovim

Commands

Command Alias Description
search s Search for packages (XPM + native PM)
install i Install a package
remove rm Remove a package
refresh - Refresh package database
upgrade - Upgrade installed packages (coming soon)
get - Download a file
file - File operations (copy, move, delete, bin)
repo - Repository management
checksum hash Compute file checksums
shortcut - Create desktop shortcuts
log - Show installed packages
check - Check system configuration
make - Create a package (coming soon)
Search Examples
# Basic search
xpm search vim

# Multiple terms
xpm search text editor

# Limit results
xpm search rust --limit 10

# JSON output (for scripts)
xpm search go --json

Architecture

XPM is built as a Rust workspace with two crates:

  • xpm-core: Core library with database, OS abstraction, and package management
  • xpm-cli: Command-line interface
Key Components
  • Native DB: Fast, embedded database using native_db (redb backend)
  • Async I/O: Full async support with Tokio
  • Git integration: Uses git2 for repository management
  • Native PM integration: Seamless integration with apt, pacman, paru, yay

Creating Packages

Packages are bash scripts with metadata headers:

#!/bin/bash
readonly xNAME="my-package"
readonly xVERSION="1.0.0"
readonly xTITLE="My Package"
readonly xDESC="Description of my package"
readonly xURL="https://example.com"

xARCHS=(x86_64 aarch64)
xDEFAULT=(any)

install_any() {
    # Installation logic
    echo "Installing..."
}

remove_any() {
    # Removal logic
    echo "Removing..."
}

validate() {
    # Validation - return 0 if installed correctly
    which my-package >/dev/null
}

Save as my-package/my-package.bash in your repository.

Repository Structure

my-xpm-repo/
├── package1/
│   └── package1.bash
├── package2/
│   └── package2.bash
└── ...

Building from Source

# Development build
cargo build

# Release build (optimized)
cargo build --release

# Run tests
cargo test

# Run with verbose output
cargo run -- --verbose check

# Pre-commit checks (format + lint + test)
make precommit

Container Testing

Test xpm on different distributions using Podman:

# Build and test on Ubuntu
make test-ubuntu

# Build and test on Arch Linux
make test-arch

# Build and test all distros
make docker-test

# Clean container images
make docker-clean

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run cargo test and cargo clippy
  5. Submit a pull request

License

BSD-4-Clause

Credits

Built with ❤️ by Verseles

카테고리

의존성

의존성 목록 14 개

소스 저장소

이 패키지를 사용하는 프로젝트

아직 데이터가 없습니다.