• [^] # Re: Quelques "killer features"

    Posté par . En réponse à la dépêche Guix : un outil pour les remplacer tous. Évalué à 2.

    http://snapshot.debian.org/

    Merci. Même si je connaissais, c'est mieux d'être précis. :-)

    Il faut les droits administrateurs—ceci est un détail mais peu vite devenir fastidieux suivant l'environnement dans lequel on travaille (cluster partagé).

    Ensuite, il faut donc modifier le fichier sources.list pour ajouter les dépôts à tirer, faire apt update et ensuite apt install foo installera la version que l'on souhaite. Version qui peut être en conflit avec une version de foo déjà installée, ou pire avec une des dépendances de foo, ou des dépendances de dépendances. Et cela peut vite devenir l'enfer. (Sauf à recourir à un outil externe à Debian comme Docker. ;-))

    L'équivalent de cette procédure avec Guix serait : guix pull --commit=12345abcdef puis guix install foo --profile=good-old-foo et il n'y a pas de question sur de possibles conflits.

    La commande time-machine permet de faire beaucoup mieux car dans Guix il y a un concept qui permet d'avoir plusieurs versions de Guix (index des paquets) sans conflits : inferior.

    https://guix.gnu.org/manual/en/html_node/Inferiors.html#Inferiors

    Chose à ma connaissance difficile avec Debian et APT.

    Donc par exemple, je peux vouloir utiliser foo une seule fois dans sa vielle version. Dans ce cas :

    $ guix time-machine --commit=12345abcdef \
     -- environment --container --ad-hoc foo \
     -- foo
    

    récupéra la bonne version de l'index des paquets, puis construira ce qu'il manque et lancera foo dans un conteneur (pour éviter une faille de sécurité par exemple).

    Pour finir, la dernière chose qui n'a pas été évoqué est la bootstrappabilité. Pour le dire clairement, comment est construit / compilé le compilateur utilisé pour compiler la version de foo du 14 juillet 2017 ?

    Dans la machinerie des snapshots, je ne sais pas si les choses sont aussi transparentes, binairement parlant. Et donc à ma connaissance, les binaires sont conservés car ils sont difficiles—si ce n'est impossible—à reproduire bit-à-bit.