an-installer

Crates.ioan-installer
lib.rsan-installer
version0.1.1
created_at2026-01-14 10:49:56.064192+00
updated_at2026-01-15 04:12:05.542749+00
descriptionAN (安装) - Unified Package Manager for Linux
homepagehttps://github.com/clearclown/AN
repositoryhttps://github.com/clearclown/AN
max_upload_size
id2042606
size203,498
clearclown (清楚系ピエロ) (clearclown)

documentation

https://github.com/clearclown/AN#readme

README

AN (安装) - Unified Package Manager for Linux

Rust License

AN (アン) は、Debian/Ubuntu系Linux向けの統合型パッケージマネージャーです。

.debAppImageFlatpak を単一のインターフェースで管理し、システムをクリーンに保ちます。

特徴

  • 統一インターフェース: あらゆる形式を an install / an remove で管理
  • 完全削除: 設定ファイル、依存関係、ユーザーデータまで完全にパージ
  • 透明性: リモートインストール時はURLを表示し、ユーザー確認を要求
  • Flatpakエイリアス: flatpak run org.gimp.GIMPgimp で起動可能に

インストール

ワンライナー(推奨)

curl -fsSL https://raw.githubusercontent.com/clearclown/AN/main/install.sh | bash

Cargo (Rustユーザー向け)

# crates.io から
cargo install an-installer

# GitHubから直接
cargo install --git https://github.com/clearclown/AN

Arch Linux (AUR)

# yay
yay -S an

# paru
paru -S an

Nix

# Flakeを使用
nix profile install github:clearclown/AN

# 一時的に使用
nix run github:clearclown/AN -- --help

Homebrew (Linux)

brew tap clearclown/an
brew install an

手動ダウンロード

Releases からバイナリをダウンロード:

アーキテクチャ ファイル名
x86_64 an-linux-x86_64
aarch64 (ARM64) an-linux-aarch64
# 例: x86_64
wget https://github.com/clearclown/AN/releases/latest/download/an-linux-x86_64
chmod +x an-linux-x86_64
sudo mv an-linux-x86_64 /usr/local/bin/an

ソースからビルド

git clone https://github.com/clearclown/AN
cd AN
cargo build --release
sudo cp target/release/an /usr/local/bin/

使い方

アプリのインストール

# リモートアプリをインストール
an install firefox

# ローカル.debファイルをインストール
an install ~/Downloads/vscode.deb

# ローカルAppImageをインストール
an install ~/Downloads/Obsidian.AppImage

アプリの削除

# 完全削除(設定ファイルも削除)
an remove firefox
an rm vscode
an uninstall obsidian

Flatpakエイリアス生成

# 全Flatpakアプリにエイリアスを作成
an link

更新

# AN本体とアプリDBを更新
an update

アプリの検索・情報表示

# インストール済みアプリ一覧
an list

# 利用可能なアプリを検索
an search browser
an search          # 全アプリ一覧

# アプリ詳細を表示
an info firefox

# アプリDBを最新に同期
an sync

コマンド一覧

コマンド エイリアス 説明
an install <target> i アプリをインストール
an remove <target> rm, uninstall アプリを完全削除
an link l Flatpakエイリアスを生成
an update - AN本体・DBを更新
an list ls インストール済みアプリ一覧
an search [query] s アプリDBを検索
an info <name> - アプリ詳細を表示
an sync - アプリDBをGitHubから同期

アーキテクチャ

┌───────────────────────────────────────────────────────────────┐
│                         CLI Layer                              │
│                    (clap derive macros)                        │
├───────────────────────────────────────────────────────────────┤
│                       Command Layer                            │
│  install │ remove │ link │ update │ list │ search │ info │ sync │
├───────────────────────────────────────────────────────────────┤
│                       Handler Layer                            │
│            deb │ appimage │ flatpak │ remote                   │
├───────────────────────────────────────────────────────────────┤
│                         DB Layer                               │
│                   TOML App Database                            │
└───────────────────────────────────────────────────────────────┘

ディレクトリ構成

用途 パス
実行ファイル /usr/local/bin/an または ~/.local/bin/an
AppImage格納 ~/Applications/
シンボリックリンク ~/.local/bin/
設定/キャッシュ ~/.config/an/

開発

必要環境

  • Rust 1.70+
  • Linux (Debian/Ubuntu系)

ビルド

# 開発ビルド
cargo build

# テスト
cargo test

# リリースビルド
cargo build --release

プロジェクト構造

AN/
├── src/                 # Rustソースコード
│   ├── commands/        # サブコマンド実装
│   ├── handlers/        # パッケージ形式ハンドラ
│   ├── db/              # アプリDB層
│   └── utils/           # ユーティリティ
├── apps/                # アプリDB (TOML)
├── docs/                # ドキュメント
│   ├── spec/            # 機能仕様書
│   ├── design/          # 設計・ステートマシン図
│   └── guides/          # ユーザーガイド
└── tests/               # テスト

ドキュメント

ライセンス

MIT License - 詳細は LICENSE を参照

謝辞

このプロジェクトは AM (App Manager) にインスパイアされています。

Commit count: 9766

cargo fmt