Chaque paquet.
Chaque raison.

Sachez ce qui est installé, et pourquoi.
Ne changez paquets et fichiers de configuration qu’à travers un plan que vous avez lu.

UN INVENTAIRE / CINQ GESTIONNAIRES DE PAQUETS

Lire le système.
Puis décider.

Chaque paquet garde son gestionnaire, son architecture et sa portée : apt:curl:amd64, ce n’est pas juste « curl ».

Natif, pas deviné.
La consultation est prise en charge pour APT, Pacman, RPM/DNF, Flatpak (utilisateur par défaut et système), les formules et casks Homebrew, apk et Portage. Aucun gestionnaire n’en remplace un autre en douce.
Des plans qui expirent.
Un plan enregistré expire, et doit encore correspondre à un plan natif tout frais avant de s’exécuter — pour ne jamais appliquer un plan que le système a dépassé.
Déclaratif, additif.
Des manifestes TOML avec des profils et des couches par plateforme qui se combinent de façon prévisible, pour les paquets et les fichiers de configuration de votre dossier personnel. Les champs inconnus échouent avant l’exécution ; le mode additif garde les logiciels que vous n’avez pas déclarés.

COMMANDES / D’ABORD INSPECTER

La plupart des commandes
ne font que lire.

L’inventaire, la provenance, les dépendances et l’audit sont en lecture seule. Les changements de paquets et le nettoyage des caches et des orphelins demandent un aperçu et une confirmation explicites.

▤01 / INVENTAIRE

Inventaire

Ce qui est installé, par gestionnaire, avec des identités qui gardent l’architecture et la portée.

xpac list --provider apt --json
?02 / PROVENANCE

Pourquoi il est là

La raison de l’installation d’un paquet : demandé explicitement, dépendance, ou inconnue.

xpac why apt:curl:amd64
⑂03 / DÉPENDANCES

Dépendances

Les dépendances installées telles que les décrivent APT, Pacman, RPM et les formules Homebrew, alternatives et contraintes comprises. Des métadonnées, pas un graphe entre gestionnaires.

xpac deps apt:curl:amd64
⇥04 / EXPORT

Export et comparaison

Écrire l’inventaire en TOML, d’un seul coup, et comparer une machine à un manifeste. Un inventaire exporté n’est pas un fichier de verrouillage.

xpac diff -f examples/profiles.toml --profile dev
◇05 / PLAN

Plans

Ce que changerait l’application d’un manifeste ou une installation — enregistré, relu, et avec une date d’expiration.

xpac plan -f system.toml
▶06 / APPLIQUER

Appliquer

APT, Pacman, DNF5 et DNF4, les applications Flatpak, les formules Homebrew, apk et Portage, après un aperçu et un oui en direct ou un --yes explicite. Sans interaction et sans --yes, c’est refusé.

xpac apply --plan preview.json --dry-run
⌕07 / AUDIT

Audit et nettoyage

L’audit et les simulations trient caches et paquets orphelins. Le nettoyage explicite des caches et la suppression relue des orphelins existent pour APT et Pacman ; xpac ne supprime jamais lui-même de configuration, de données personnelles ou de chemins qu’il ne gère pas.

xpac audit --provider apt
▥08 / TUI

Interface du terminal

Deux panneaux comme atfq, des indices de confiance comme Omniscient. En lecture seule par défaut ; --allow-apply active des opérations APT expérimentales.

xpac tui --provider apt
◎09 / FICHIERS · EXPÉRIMENTAL

Fichiers de configuration

Déclarez vos fichiers de configuration personnels à côté de vos paquets. Un fichier existant n’est jamais écrasé avant que vous l’adoptiez, avec une sauvegarde privée ; les modifications locales sont signalées comme des écarts et refusées. xpac ne les supprime jamais.

xpac file adopt ~/.tmux.conf --dry-run

D’UN MANIFESTE À UNE MACHINE

Rien ne change
sans plan.

Aligner une machine sur un manifeste TOML, c’est une suite de vérifications, et chacune peut tout arrêter.

DANS LE TERMINAL

Inspecter.
Puis aligner.

Les commandes telles que les donne le README. Le JSON va sur stdout avec schema_version 1 ; les aperçus et les questions vont sur stderr.

● ● ●xpac · read-onlyLINUX
$ xpac providers
$ xpac list --provider apt --json
$ xpac search curl --provider dnf --installed
$ xpac info apt:curl
$ xpac why apt:curl:amd64
$ xpac deps apt:curl:amd64

Inventaire, recherche, informations, provenance et dépendances — sans root, sans rafraîchir les dépôts.

Seules les commandes sont montrées : le README ne publie pas leur sortie, et cette page ne l’invente pas.

OÙ EN EST LE PROJET

Preuve de concept,
validation en cours.

xpac modifie des paquets : il dit donc clairement ce qui a été vérifié et ce qui ne l’a pas été.

01 / EXÉCUTION EXPÉRIMENTALE

Sept exécuteurs natifs.

L’exécution relue est prise en charge pour APT, Pacman, DNF5 et DNF4, les applications Flatpak, les formules Homebrew, apk et Portage. Les aperçus propres à chaque gestionnaire et la revérification restent explicites.

02 / VALIDATION JETABLE

Testé dans des environnements isolés.

Des transactions APT, Pacman, DNF5 et DNF4 (Rocky 8 et 9) ont tourné dans des environnements jetables. Flatpak et Homebrew sous Linux ont aussi des preuves natives isolées. Les fichiers de configuration ne sont testés que dans des dossiers personnels temporaires. Les transactions sur la machine hôte restent non testées ; les exécutions en CI configurées et la validation native sous macOS sont à venir.

03 / DES DROITS SEULEMENT SUR DEMANDE

sudo est explicite.

L’inspection ne demande jamais de droits. --sudo ne délègue que la transaction APT ou Pacman relue ; xpac ne lit jamais un mot de passe sur stdin, et les simulations ne s’authentifient jamais.

$ xpac install apt:hello --sudo --dry-run
$ xpac install apt:hello --sudo
04 / PAS DE RETOUR EN ARRIÈRE PROMIS

Les échecs restent visibles.

Un échec partiel n’implique jamais de retour en arrière. Le journal consigne ce qui était prévu et ce qui a été vérifié, pour voir exactement où ça s’est arrêté.

EN PRATIQUE / LES PREUVES

Un problème.
Ce qui a changé.

Choisissez une cible pour lire ce qui s’est passé : le problème, la découverte et le résultat. Chaque histoire cite ses preuves et l’étendue de sa validation.

Validation en bac à sable jetable

Un nom de paquet familier a révélé un bug dans la lecture des identités.

Problème
Les paquets nommés apt, flatpak ou dnf étaient mal lus ou refusés par l’analyseur d’identités APT.
Découverte
Des exécutions sans root sous Debian bookworm et Ubuntu noble ont manipulé de vrais inventaires et de vraies transactions dans des environnements jetables, ce qui a révélé la collision.
Résultat
L’analyseur a été corrigé. Les exécutions documentées ont passé l’inspection, l’installation et la suppression revues, la réapplication sans effet et le refus des plans périmés.

Une validation en bac à sable sous Linux, pas un déploiement dans un projet extérieur ; les bases de paquets de la machine hôte n’ont jamais été modifiées.

xpac · docs/validation.md, environnements Debian, Ubuntu et Fedora sans rootLire le compte rendu de validation (en anglais) →

OPEN SOURCE / LINUX ET MACOS

Connaissez vos paquets
avant d’y toucher.

Téléchargez-le, puis commencez par la démo — pas besoin de gestionnaire de paquets natif.

TÉLÉCHARGER · BINAIRE STATIQUE LINUX X86_64
v=v0.1.0 t=x86_64-unknown-linux-musl
curl -fLO https://github.com/devutils-org/xpac/releases/download/$v/xpac-$v-$t.tar.gz
gh attestation verify xpac-$v-$t.tar.gz --repo devutils-org/xpac
tar xzf xpac-$v-$t.tar.gz && mkdir -p ~/.local/bin && install -m 755 xpac-$v-$t/xpac ~/.local/bin/

# then
xpac demo
xpac list --provider apt --json
N’essayez de vraies transactions que dans des environnements jetables · MIT / Apache-2.0