Commande : erable prune
Description
La commande erable prune assure la gestion du cycle de vie et la rétention d'historique des paquets installés dans l'environnement local (~/.erable/packages/). Elle permet de libérer de l'espace disque en supprimant les anciennes versions d'un ou de l'ensemble des paquets, tout en garantissant la préservation d'au minimum $N$ versions récentes ($N \ge 1$) et l'inviolabilité absolue de la version active (current).
Syntaxe
Paramètres et Options
| Argument / Option | Alias | Type | Défaut | Description |
|---|---|---|---|---|
package_name |
- | string |
"" (tous) |
(Optionnel) Nom du paquet à purger. Si omis, s'applique à tous les paquets installés. |
--keep |
-k |
int |
1 |
Nombre minimum de versions récentes à conserver. Doit être $\ge 1$. |
--exclude-prune |
-e |
list<string> |
[] |
Liste des paquets exclus de la purge. |
--help |
-h |
- | - | Affiche l'aide interactive de la commande. |
Règles Métier & Garanties d'Intégrité
-
Rétention Minimum ($N \ge 1$) : Le paramètre
--keepexige un entier strictement positif. Passer--keep 0ou un entier négatif déclenche immédiatement une erreur de validationVALIDATION_ERRORsans modifier le système de fichiers. -
Tri Sémantique SemVer Décroissant : Les versions présentes dans le répertoire du paquet (
~/.erable/packages/<pkg>/<version>) sont ordonnées selon l'ordre sémantique naturel décroissant ($v_{N} > v_{N-1} > \dots$). Les $k$ premières versions sont conservées ; les versions antérieures sont purgées. -
Protection Inviolable de la Version Active (
current) : Le lien/dossier de routagecurrentn'est jamais supprimé ni altéré par la commandeprune. Grâce à l'architecture de liaisons physiques permanentes (Hardlinks NTFS/POSIX), les binaires actifs restent opérationnels même lors de la suppression de versions intermédiaires. -
Exclusion Granulaire : Les paquets spécifiés dans
--exclude-prune(ex. outils critiques ou versions épinglées) sont explicitement sautés lors du balayage global.
Exemples d'Utilisation
1. Purge globale standard (conserver la dernière version de chaque paquet)
2. Purge d'un paquet spécifique en conservant 2 versions
3. Purge globale avec exclusion de paquets sensibles
4. Exemple de rapport d'exécution
==========================================================
Rapport de Purge Erable [keep: 1]
==========================================================
* erable:
Versions conservees : 0.4.1
Versions purgees : 0.4.0 [1 supprimees]
* fastfetch:
Versions conservees : 2.32.0
Versions purgees : aucune [0 supprimees]
----------------------------------------------------------
Total versions purgees : 1
==========================================================