4 points par GN⁺ 2025-04-23 | 1 commentaires | Partager sur WhatsApp
  • Sapphire est un gestionnaire de paquets de nouvelle génération développé en Rust
  • Inspiré de Homebrew, il permet d’installer et de gérer des Formulae et des Casks
  • À l’heure actuelle, seule l’architecture ARM est prise en charge ; la compatibilité x86 pourrait être ajoutée plus tard
  • Le projet se compose de sapphire-core et sapphire-cli
  • Sapphire est distribué sous licence BSD-3-Clause

Avertissement

  • Sapphire est un logiciel expérimental, en développement actif, et peut être instable
  • Si vous réinstallez avec Sapphire un cask installé via brew, il sera installé avec un chemin légèrement différent, et les paramètres utilisateur ne seront pas migrés automatiquement

⚙️ Structure du projet

  • sapphire-core : bibliothèque principale, chargée notamment de la récupération des paquets, de la résolution des dépendances, de l’extraction des archives et du traitement des artefacts
  • sapphire-cli : interface en ligne de commande ; l’exécutable sapphire encapsule la bibliothèque principale

🚀 Feuille de route

  1. Mise à jour des paquets installés avec la commande upgrade
  2. Nettoyage des téléchargements, versions et caches obsolètes
  3. Commande Reinstall pour des réinstallations rapides
  4. Prefix isolation avec prise en charge de /opt/sapphire comme disposition indépendante
  5. Assistant sapphire init pour initialiser l’environnement
  6. Corrections de bugs continues et amélioration de la stabilité

📦 Utilisation

  • Afficher l’aide : sapphire --help
  • Mettre à jour les métadonnées : sapphire update
  • Rechercher un paquet : sapphire search
  • Obtenir des informations sur un paquet : sapphire info
  • Installer une Bottle ou un Cask : sapphire install
  • Compiler et installer une Formula depuis les sources : sapphire install --build-from-source
  • Désinstaller : sapphire uninstall
  • (Bientôt disponible) sapphire upgrade [--all] , sapphire cleanup, sapphire init

🏗️ Compilation depuis les sources

Pré-requis : toolchain Rust stable

  • git clone
  • cd sapphire
  • cargo build --release
  • Le binaire sapphire se trouve dans target/release/sapphire ; ajoutez-le au PATH

1 commentaires

 
GN⁺ 2025-04-23
Avis Hacker News
  • Il reconnaît que son projet n’est pas meilleur que Homebrew sur de nombreux points, mais qu’il est en train de résoudre certains problèmes comme la gestion des chemins relatifs

    • La plupart des installations de bottles fonctionnent bien, sauf pour Rust
    • Les formules à compiler depuis les sources sont difficiles à gérer à cause du manque d’informations dans l’API JSON
    • Il prévoit de convertir les scripts .rb vers un format plus générique et lisible par machine
    • La conversion de .dmg en .app ainsi que les installateurs .pkg fonctionnent bien d’après les tests
    • Comme la plupart des formules sont fournies sous forme de bottles sur les Mac ARM modernes, cela peut devenir un gestionnaire de paquets complet
    • Trouvant qu’Ansible est excessif pour une seule machine, il développe un gestionnaire déclaratif de paquets et de système pour Mac
    • Le fait d’envelopper les commandes Brew était trop lent, ce qui l’a poussé à lancer un nouveau projet
    • Il remercie pour les signalements de bugs, les issues et les pull requests constructives
  • Il explique deux éléments centraux de Homebrew

    • Côté client, la plupart des utilisateurs emploient des installations par bottle et des plateformes prises en charge, ce qui peut être facilement géré par un petit installeur natif
    • Les développeurs, dépôts et machines de CI/CD constituent l’infrastructure complexe de Homebrew, profondément liée à son DSL de formules
    • Homebrew isole bien la partie client de cette infrastructure complexe
    • Les téléchargements parallèles de bottles et de DMG ne sont pas une limite architecturale de Homebrew, mais un choix fait par courtoisie envers le service
  • Le projet est jugé amusant et bien réalisé

    • Il se montre critique envers le maintien de la terminologie de Homebrew
    • Il suggère qu’il vaudrait mieux utiliser des termes standard comme paquets et dépôts
  • Il remet en question l’objectif d’atteindre la parité avec Homebrew

    • Il propose des fonctionnalités supplémentaires comme le verrouillage de version
  • Un ancien utilisateur de MacPorts explique pourquoi il est passé à Homebrew

    • Il pense que créer un nouveau gestionnaire de paquets ne produira pas forcément une meilleure configuration
  • Il est suggéré d’ajouter au README les objectifs, la motivation et les raisons du projet

    • Il faut clarifier pourquoi il cherche à résoudre les problèmes de Homebrew
  • Il reconnaît que Homebrew peut être amélioré et accueille favorablement une nouvelle tentative

    • Il exprime son mécontentement vis-à-vis des intentions et de l’état d’esprit des développeurs et packageurs de Homebrew
  • Il est suggéré de raccourcir le nom du projet

    • Un nom plus court pourrait être plus mémorable et donner une impression de légèreté
  • Il affirme que réécrire le logiciel n’est pas efficace

    • Il suggère qu’il vaudrait mieux remplacer progressivement les composants de Homebrew
    • Il explique que le nom Homebrew a une importance culturelle dans les milieux hackers