try : prévisualiser les effets d'une commande avec les espaces de noms Linux et overlayfs
Aperçu du projet : Contrôlez et manipulez les effets d'une commande avant de modifier votre système live.
En bref
- De quoi s’agit-il ?
- try exécute une commande dans un semi-isolat et vous permet d'inspecter ou de valider les modifications de fichiers qu'elle produirait.
- À qui s’adresse-t-il ?
- Le README ne revendique aucune préparation à la production au-delà des distributions testées, et la licence exclut toute garantie. Pour les utilisateurs de Linux 5.11 ou supérieur, try offre un moyen concret d'examiner les effets d'une commande sur le système de fichiers avant de décider de les valider. try convient aux lecteurs dont le besoin correspond aux commandes, formats ou flux décrits dans son README.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Les derniers commits datent d’il y a 8 jours.
- En quel langage est-il écrit ?
- Principalement Shell, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Section 1 : Un semi-isolat pour les effets de commande
Section 1. try est un utilitaire en ligne de commande qui exécute une autre commande dans un système de fichiers overlay isolé, puis affiche quels fichiers ont changé et demande si vous souhaitez valider ces modifications sur le système réel. Il s'appuie sur les espaces de noms Linux via unshare et le système de fichiers union overlayfs. Le README le qualifie de semi-isolat plutôt que de sandbox, et avertit de ne pas l'utiliser pour des commandes que vous ne faites pas déjà confiance, car les appels réseau sont autorisés. Cela signifie qu'il est conçu pour inspecter les effets de commandes que vous êtes prêt à exécuter de toute façon, pas pour contenir du code malveillant.
Dans try, le passage « Un semi-isolat pour les effets de commande » décrit une capacité précise, pas une garantie générale. La lecture du dépôt doit donc rester attachée aux fichiers, commandes et limites nommés dans cette section. La documentation disponible indique ce que les mainteneurs veulent exposer; elle ne permet pas d'inventer des performances, un niveau de support ou un comportement absent du texte.
Pour examiner « Un semi-isolat pour les effets de commande », partez de try et du chemin ou de la commande mentionné dans le README, puis observez la sortie correspondant à ce cas. Pour un outil installé, contrôlez le résultat sur un petit exemple; pour une bibliothèque ou une collection, vérifiez plutôt la structure annoncée et les dépendances. Cette méthode distingue ce qui est écrit de ce qui reste à établir, notamment pour le point 1.
Section 2 : Dépendances et exigences de version Linux
Section 2. Les dépendances listées sont les paquets Debian attr, pandoc et autoconf, pandoc et autoconf n'étant nécessaires que lorsqu'on travaille à partir d'un clone GitHub. Dans certains cas, overlayfs ne fonctionne pas sur les montages imbriqués, donc mergerfs ou unionfs peuvent être utilisés à la place ; try devrait les détecter automatiquement, et le drapeau -U permet de spécifier un chemin. La suite de tests nécessite bash, expect et curl. Le README énumère les distributions testées, notamment Ubuntu 20.04 LTS, Debian 12, Fedora 38, CentOS 9 Stream, Arch, Alpine, Rocky 9 et SteamOS 3.4.8. Linux 5.11 ou supérieur est requis pour qu'overlayfs fonctionne dans un espace de noms utilisateur.
Dans try, le passage « Dépendances et exigences de version Linux » décrit une capacité précise, pas une garantie générale. La lecture du dépôt doit donc rester attachée aux fichiers, commandes et limites nommés dans cette section. La documentation disponible indique ce que les mainteneurs veulent exposer; elle ne permet pas d'inventer des performances, un niveau de support ou un comportement absent du texte.
Pour examiner « Dépendances et exigences de version Linux », partez de try et du chemin ou de la commande mentionné dans le README, puis observez la sortie correspondant à ce cas. Pour un outil installé, contrôlez le résultat sur un petit exemple; pour une bibliothèque ou une collection, vérifiez plutôt la structure annoncée et les dépendances. Cette méthode distingue ce qui est écrit de ce qui reste à établir, notamment pour le point 2.
Section 3 : Trois chemins d'installation
Section 3. Le plus rapide est de télécharger le script try depuis le dépôt et de le placer dans votre PATH ; cela ne fournit ni documentation ni support utilitaire. La deuxième consiste à cloner le dépôt et à exécuter autoconf, ./configure, make et sudo make install, ce qui donne l'ensemble complet des fonctionnalités, y compris les utilitaires de support et une page de manuel. La troisième est une distribution source depuis la page des versions, téléchargée sous forme de try-XXX.tgz ou try-latest.tgz, qui inclut déjà le script configure et la page de manuel qui manquent au dépôt. Le README mentionne également des installations via l'AUR pour Arch et nixpkgs pour Nix/NixOS, avec des commandes comme yay -S try et nix-shell -p try.
Dans try, le passage « Trois chemins d'installation » décrit une capacité précise, pas une garantie générale. La lecture du dépôt doit donc rester attachée aux fichiers, commandes et limites nommés dans cette section. La documentation disponible indique ce que les mainteneurs veulent exposer; elle ne permet pas d'inventer des performances, un niveau de support ou un comportement absent du texte.
Pour examiner « Trois chemins d'installation », partez de try et du chemin ou de la commande mentionné dans le README, puis observez la sortie correspondant à ce cas. Pour un outil installé, contrôlez le résultat sur un petit exemple; pour une bibliothèque ou une collection, vérifiez plutôt la structure annoncée et les dépendances. Cette méthode distingue ce qui est écrit de ce qui reste à établir, notamment pour le point 3.
Section 4 : Inspection et validation des modifications
Section 4. Dans l'utilisation la plus simple, try précède une commande comme try pip3 install libdash. Après l'exécution, try liste les fichiers modifiés sous un répertoire overlay et demande "Commit these changes? [y/N]". Lancer try -n imprime le chemin du répertoire overlay sans valider, et try -N [dir] permet de fournir un répertoire existant. La sous-commande summary affiche les modifications d'un overlay donné, commit les applique, et explore ouvre un shell dans l'overlay. L'exemple du README montre une installation rustup générant plus d'un gigaoctet de modifications dans upperdir, donc l'outil est destiné à inspecter des modifications substantielles du système de fichiers.
Dans try, le passage « Inspection et validation des modifications » décrit une capacité précise, pas une garantie générale. La lecture du dépôt doit donc rester attachée aux fichiers, commandes et limites nommés dans cette section. La documentation disponible indique ce que les mainteneurs veulent exposer; elle ne permet pas d'inventer des performances, un niveau de support ou un comportement absent du texte.
Pour examiner « Inspection et validation des modifications », partez de try et du chemin ou de la commande mentionné dans le README, puis observez la sortie correspondant à ce cas. Pour un outil installé, contrôlez le résultat sur un petit exemple; pour une bibliothèque ou une collection, vérifiez plutôt la structure annoncée et les dépendances. Cette méthode distingue ce qui est écrit de ce qui reste à établir, notamment pour le point 4.
Section 5 : Fusion d'overlays et limitations connues
Section 5. Le drapeau -L fusionne plusieurs répertoires overlay en acceptant une liste séparée par des deux-points, le plus à gauche ayant priorité ; il implique -n. Le README démontre la combinaison de trois sandboxes afin qu'un fichier ultérieur écrase un fichier antérieur. Deux problèmes connus sont documentés : les commandes qui interagissent avec d'autres utilisateurs ou groupes échouent car seul l'UID/GID de l'utilisateur actuel est mappé, et le quoting du shell peut être non intuitif, donc try bash -c "echo a" est analysé comme try bash -c echo a, ce qui n'imprime pas a. Le projet a une branche future avec support du mappage UID/GID.
Dans try, le passage « Fusion d'overlays et limitations connues » décrit une capacité précise, pas une garantie générale. La lecture du dépôt doit donc rester attachée aux fichiers, commandes et limites nommés dans cette section. La documentation disponible indique ce que les mainteneurs veulent exposer; elle ne permet pas d'inventer des performances, un niveau de support ou un comportement absent du texte.
Pour examiner « Fusion d'overlays et limitations connues », partez de try et du chemin ou de la commande mentionné dans le README, puis observez la sortie correspondant à ce cas. Pour un outil installé, contrôlez le résultat sur un petit exemple; pour une bibliothèque ou une collection, vérifiez plutôt la structure annoncée et les dépendances. Cette méthode distingue ce qui est écrit de ce qui reste à établir, notamment pour le point 5.
Section 6 : Récompenses, citation et licence
Section 6. Le README annonce que try a reçu un prix de meilleur article et un prix d'artefact distingué à OSDI'26, et fournit un lien vers la présentation. Une citation BibTeX est fournie pour "Controlling Opaque-Component Effects with Semisolates and Try" par Lamprou et ses collègues. Le projet est sous licence MIT, avec les droits d'auteur détenus par The PaSh Authors. Le texte de la licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies, et exclut toute garantie. Il ne dit rien sur les garanties de sécurité, le support ou la préparation à la production, et le README lui-même ne prétend que fonctionner sur Linux 5.11 et les distributions testées.
Dans try, le passage « Récompenses, citation et licence » décrit une capacité précise, pas une garantie générale. La lecture du dépôt doit donc rester attachée aux fichiers, commandes et limites nommés dans cette section. La documentation disponible indique ce que les mainteneurs veulent exposer; elle ne permet pas d'inventer des performances, un niveau de support ou un comportement absent du texte.
Pour examiner « Récompenses, citation et licence », partez de try et du chemin ou de la commande mentionné dans le README, puis observez la sortie correspondant à ce cas. Pour un outil installé, contrôlez le résultat sur un petit exemple; pour une bibliothèque ou une collection, vérifiez plutôt la structure annoncée et les dépendances. Cette méthode distingue ce qui est écrit de ce qui reste à établir, notamment pour le point 6.
Conclusion éditoriale
Le README ne revendique aucune préparation à la production au-delà des distributions testées, et la licence exclut toute garantie. Pour les utilisateurs de Linux 5.11 ou supérieur, try offre un moyen concret d'examiner les effets d'une commande sur le système de fichiers avant de décider de les valider. try convient aux lecteurs dont le besoin correspond aux commandes, formats ou flux décrits dans son README. Il convient moins à une équipe qui attend des garanties non écrites. Commencez par le scénario propre à try, contrôlez le fichier ou la commande indiqué, puis vérifiez la sortie avant d'élargir son usage.
Notes de la communauté