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:
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
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).
[^] # Re: Plusieurs questions
Posté par zimoun . En réponse à la dépêche GNU Guix version Un‐Point‐Zéro. Évalué à 4.
Le dépôt officiel est :
https://git.savannah.gnu.org/git/guix.git.Comparé à
aptitude, les commandesaptitude update,aptitude searchetaptitude installcorrespondent àguix pull,guix searchetguix install. Cependant, il y a une différence majeure : avecaptitudequand le dépôt central (la liste dedebdans 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: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 champsourcede 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.
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.)
Oui, il y a un mécanisme de
channel. Par exemple, si je faisguix describeOn voit que j'ai un canal supplémentaire en local (
file:///mais cela pourrait êtrehttps:///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 fichiersmanifest. 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. ;-)
Comme dit roptat: le mieux reste d'effectuer une installation avec le script d'installation officiel (voir manuel).
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--containerou--network(voir manuel).