4 ポイント 投稿者 GN⁺ 2025-04-23 | 1件のコメント | WhatsAppで共有
  • SapphireRust で開発された次世代パッケージマネージャー
  • Homebrew に着想を得て、FormulaeCasks のインストールおよび管理を行う
  • 現在は ARM アーキテクチャのみをサポートしており、x86 サポートは今後追加される可能性がある
  • プロジェクトは sapphire-coresapphire-cli で構成されている
  • SapphireBSD-3-Clause ライセンスを採用している

警告

  • Sapphire は実験的で活発に開発中のソフトウェアであり、不安定な場合がある
  • brew でインストールした cask を Sapphire で再インストールすると、パスがやや異なる形でインストールされ、ユーザー設定は自動的に移行されない

⚙️ プロジェクト構成

  • sapphire-core: 中核ライブラリで、パッケージ取得、依存関係解決、アーカイブ展開、アーティファクト処理などを担当する
  • sapphire-cli: コマンドラインインターフェースで、sapphire 実行ファイルが中核ライブラリをラップしている

🚀 ロードマップ

  1. upgrade コマンドによるインストール済みパッケージの更新
  2. 古いダウンロード、バージョン、キャッシュの整理
  3. 高速な再インストールのための Reinstall コマンド
  4. /opt/sapphire を独立レイアウトとしてサポートする Prefix isolation
  5. 環境をブートストラップする sapphire init ヘルパー
  6. 継続的なバグ修正と安定性の改善

📦 使い方

  • ヘルプ表示: sapphire --help
  • メタデータ更新: sapphire update
  • パッケージ検索: sapphire search
  • パッケージ情報の取得: sapphire info
  • Bottle または Cask のインストール: sapphire install
  • ソースから Formula をビルドしてインストール: sapphire install --build-from-source
  • アンインストール: sapphire uninstall
  • (近日対応予定)sapphire upgrade [--all] , sapphire cleanup, sapphire init

🏗️ ソースからビルド

必須条件: 安定版の Rust ツールチェーン

  • git clone
  • cd sapphire
  • cargo build --release
  • sapphire バイナリは target/release/sapphire にあり、これを PATH に追加する

1件のコメント

 
GN⁺ 2025-04-23
Hacker Newsの意見
  • 自分が作ったプロジェクトがHomebrewより優れている点はそれほど多くないが、相対パス設定のようないくつかの問題を解決しつつある

    • Rustを除けば、ほとんどのボトルのインストールはうまく動作する
    • ソースからビルドするformulaは、JSON APIの情報不足のため難しさがある
    • .rb スクリプトを、より一般的な機械可読形式に変換する計画である
    • .dmg から .app への変換と .pkg インストーラーは、テストでは問題なく動作している
    • 現代のARM Macでは大半のformulaがボトルとして提供されるため、完全なパッケージマネージャーになり得る
    • 1台のマシンにAnsibleは大げさだと感じたため、mac向けの宣言的なパッケージおよびシステム管理ツールを開発中である
    • Brewコマンドをラップする方式は遅すぎたため、新しいプロジェクトを始めることになった
    • バグ報告、issue、建設的なプルリクエストに感謝している
  • Homebrewの2つの中核部分について説明している

    • クライアント側では、ほとんどのユーザーがボトルのインストールとサポート対象プラットフォームを使っており、小規模なネイティブコードのインストーラーで容易に対応可能である
    • 開発者、リポジトリ、CI/CDマシンがHomebrewの複雑なインフラを構成しており、これはformula DSLと深く結びついている
    • Homebrewはクライアント側を複雑なインフラからうまく分離している
    • ボトルとDMGの並列ダウンロードは、Homebrewのアーキテクチャ上の制約ではなく、サービスへの礼儀として選ばれている
  • プロジェクトは楽しく、よくできていると評価している

    • Homebrewの用語をそのまま維持している点には批判的である
    • packageやrepositoryのような標準的な用語を使うほうがよいと提案している
  • Homebrewとの同等性を目標にしていることに疑問を呈している

    • バージョン固定機能のような追加機能を提案している
  • MacPortsユーザーだったが、Homebrewに移行した理由を説明している

    • 新しいパッケージマネージャーを作っても、よりよい設定ができるようになるとは思わないとしている
  • READMEに目標、動機、理由を追加することを提案している

    • Homebrewの問題点を解決しようとする理由を明確にする必要がある
  • Homebrewの改善余地を認めつつ、新しい試みを歓迎している

    • Homebrewの開発者やパッケージ担当者の意図や考え方に不満を示している
  • プロジェクト名をもっと短く変更することを提案している

    • 短い名前のほうが記憶に残りやすく、軽い印象を与えられるとしている
  • ソフトウェアを一から書き直すのは効果的ではないと主張している

    • Homebrewの構成要素を段階的に置き換えるほうがよいと提案している
    • Homebrewという名前はハッカーコミュニティにおいて文化的に重要だと説明している