• [^] # Re: Plusieurs questions

    Posté par . En réponse à la dépêche GNU Guix version Un‐Point‐Zéro. Évalué à 4.

    En outre y a-t-il un serveur/dépôt Guix de référence?

    Le dépôt officiel est : https://git.savannah.gnu.org/git/guix.git.

    Quand on fait un guix search ou guix install, ça installe depuis un dépôt unique?

    Comparé à aptitude, les commandes aptitude update, aptitude search et aptitude install correspondent à guix pull, guix search et guix install. Cependant, il y a une différence majeure : avec aptitude quand le dépôt central (la liste de deb dans le fichier /etc/apt/source.list) est mis à jour par les mainteneurs de Debian, il n'est quasiment plus possible d'installer un paquet dans une version d'avant cette mise à jour. Sauf erreur de ma part.

    Ce n'est pas le cas avec GNU Guix. Le comportement ressemble plus à celui de Git par exemple. Vous avez une copie locale qui se trouve dans un état, et dans le cas de GNU Guix, cet état est donné par guix describe; par exemple sur ma machine:

    Generation 24 May 16 2019 13:12:59 (current)
     guix 6e633a5
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: 6e633a510c53ac3130296bfd5ecf98506b499421

    Connaissant ce état (commit), vous pouvez toujours y revenir (guix pull --commit=), quelque soit l'évolution ou autre mise à jour du dépôt officiel. Pour le dire autrement, une fois qu'un paquet est entré dans le dépôt officiel, il pourra toujours être reconstruit et à l'identique (modulo des changements hardware).

    Dans un état donné, quand vous installez un paquet, par exemple guix install gimp, GNU Guix va regarder dans quel état il se trouve localement, puis il va regarder toutes les dépendences dont il a besoin pour installer Gimp. Et ensuite, il va regarder si tous les binaires correspondants se trouvent sur une des 2 fermes (substitute), si tel est le cas, il les téléchargent pour compléter l'installation. Sinon, il va utiliser le champ source de la définition du paquet pour le construire localement, ainsi que toutes les dépendances dont Gimp aurait besoin (spécifiées dans la définition du paquet).

    Place à la transparence binaire ;-)

    Je me permets de pointer la dernière partie de mon commentaire précédent.

    Qui crée les paquets?

    Les contributeurs du projets. ;-)
    Si par paquet on entend le fichier de description dans un DSL scheme.

    Et si par parquet on entend binaire, c'est tout le monde grâce à la transparence binaire. Actuellement, il y a 2 fermes de constructions mais il y a beaucoup de discussion sur la liste pour avoir une solution distribuée (IPFS, etc.)

    Quelqu'un peut créer son propre dépôt?

    Oui, il y a un mécanisme de channel. Par exemple, si je fais guix describe

    Generation 24 May 16 2019 13:12:59 (current)
     bimsb d1cba4a
     repository URL: file:///home/simon/work/guix/bimsb
     branch: master
     commit: d1cba4a2cba1eb6c6c33328fea511b75dfcffe39
     guix 6e633a5
     repository URL: https://git.savannah.gnu.org/git/guix.git
     branch: master
     commit: 6e633a510c53ac3130296bfd5ecf98506b499421
    

    On voit que j'ai un canal supplémentaire en local (file:/// mais cela pourrait être https:/// etc.).

    Il n'y a qu'un dépôt officiel et la compatibilité avec les canaux n'est pas garantie ou pour le dire autrement la compatibilité du canal est la charge du mainteneur du dit canal. Dans ce canal bimsb, il y a des dépendances à LLVM par exemple mais la version de cette dépendence n'est actuellement pas trackée par le canal donc si le dépôt officiel change, le canal risque de casser. Cependant, le problème se résout en trackant des fichiers manifest. Bref, les outils sont là, il manque peut-être un peu d'UI. :-)

    De toute manière, si c'est un logiciel libre autant pousser dans le dépôt officiel. ;-)

    J'aurais bien testé un guix install gimp mais guix ne semble pas dispo sur Fedora. ;-(

    Comme dit roptat: le mieux reste d'effectuer une installation avec le script d'installation officiel (voir manuel).

    Notamment ça semble dire que ça installe aussi toutes les dépendances pour pouvoir compiler GIMP (ce que ne fait pas mon outil). Pour le coup, je veux bien plus de détails.

    guix environment gimp --ad-hoc gimp crée donc un environnement pour construire gimp, dans lequel toutes les dépendances à la compilation de gimp sont disponibles, en plus de gimp lui-même.

    J'ajouterai même l'option --pure, i.e., guix environment gimp --ad-hoc gimp --pure, qui déactive les variables d'environnement existantes. Il y a aussi les options --container ou --network (voir manuel).