パッケージ、リポジトリ、アプリカテゴリを検索

パッケージ詳細v0.83.0

xpm

macOS を含む、あらゆるUnix互換ディストリビューション向けのユニバーサルパッケージマネージャー。また、実験的なWindowsサポートも提供しています。

AndroidiOSmacOSWindowsLinux
30日間ダウンロード
532
いいね数
3
Pub ポイント
115

パッケージをインストール

flutter pub add xpm

パッケージ概要

公開情報に基づく選定ガイドです。参考としてご利用ください。

XPMは、macOS、Linux、実験的なWindowsサポートを含むUnix系システム向けに設計された汎用パッケージマネージャーです。さまざまな環境間でアプリケーションのインストール、管理、配布をスムーズに行うことができます。FlutterとDartで構築されており、依存関係の処理やアプリの公開を簡素化し、複数のプラットフォームをターゲットとする開発者にとって理想的です。クロスプラットフォーム互換性により、Android、iOS、macOS、Windows、Linuxで一貫した動作が保証されます。このツールは、Flutterエコシステムにおけるパッケージ管理ワークフローを統合することを目指しています。

用途

  • クロスプラットフォームアプリのデプロイ
  • OS間での統合パッケージ管理
  • アプリの公開を簡素化
  • 開発ワークフローの自動化
  • CI/CD統合
  • マルチOS依存関係の解決

主な機能

  • Unix互換システム間での汎用互換性
  • 実験的 Windows 対応
  • Flutter/Dart をベースとしたアーキテクチャ
  • `flutter pub add xpm` を通じたコマンドラインインターフェース
  • Android、iOS、macOS、Windows、Linux をサポートしています
  • アプリのパッケージ化と配布を最適化

適している対象

  • 複数のオペレーティングシステムをターゲットにする開発者
  • CI/CD パイプラインを使用するチーム
  • クロスプラットフォームのFlutterアプリの公開者
  • 統合ツールの必要がある環境メンテナス
  • オープンソースのコントリビューターがマルチ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 件

ソースリポジトリ

このパッケージを使用しているプロジェクト

データはまだありません。