Suivant: Invoquer guix time-machine
, Précédent: Invoquer guix gc
, Monter: Gestion de paquets [Table des matières][Index]
guix pull
Les paquets sont installés ou mis à jour vers la dernière version disponible
dans la distribution active sur votre machine locale. Pour mettre à jour
cette distribution, en même temps que les outils Guix, vous devez lancer
guix pull
; la commande télécharge le dernier code source de Guix
ainsi que des descriptions de paquets, et le déploie. Le code source est
téléchargé depuis un dépôt Git, par
défaut le dépôt officiel de GNU Guix, bien que cela puisse être
personnalisé. guix pull
garantit que le code téléchargé est
authentique en vérifiant que les commits sont signés par les
développeur·euses de Guix.
Specifically, guix pull
downloads code from the channels
(voir Canaux) specified by one of the following, in this order:
channels
field of
guix-configuration
);
%default-channels
.
À la fin, guix package
utilisera les paquets et les versions des
paquets de la copie de Guix tout juste récupérée. Non seulement ça, mais
toutes les commandes Guix et les modules Scheme seront aussi récupérés
depuis la dernière version. Les nouvelles sous-commandes de guix
ajoutés par la mise à jour sont aussi maintenant disponibles.
Chaque utilisateur peut mettre à jour sa copie de Guix avec guix
pull
et l’effet est limité à l’utilisateur qui a lancé guix
pull
. Par exemple, lorsque l’utilisateur root
lance guix
pull
, cela n’a pas d’effet sur la version de Guix que voit alice
et
vice-versa.
Le résultat après avoir lancé guix pull
est un profil
disponible sous ~/.config/guix/current contenant la dernière version
de Guix.
L’option --list-generations ou -l liste les anciennes
générations produites par guix pull
, avec des détails sur leur
origine :
$ guix pull -l Génération 1 10 juin 2018 00:18:18 guix 65956ad URL du dépôt : https://git.savannah.gnu.org/git/guix.git branche : origin/master commit : 65956ad3526ba09e1f7a40722c96c6ef7c0936fe Génération 2 11 juin 2018 11:02:49 guix e0cc7f6 URL du dépôt : https://git.savannah.gnu.org/git/guix.git branche : origin/master commit : e0cc7f669bec22c37481dd03a7941c7d11a64f1d Génération 3 13 juin 2018 23:31:07 (actuelle) guix 844cc1c URL du dépôt : https://git.savannah.gnu.org/git/guix.git branche : origin/master commit : 844cc1c8f394f03b404c5bb3aee086922373490c
Voir guix describe
, pour d’autres
manières de décrire le statut actuel de Guix.
Ce profil ~/.config/guix/current
fonctionne comme les profils créés
par guix package
(voir Invoquer guix package
). C’est-à-dire
que vous pouvez lister les générations, revenir en arrière à une génération
précédente — c.-à-d. la version de Guix précédente — etc. :
$ guix pull --roll-back passé de la génération 3 à 2 $ guix pull --delete-generations=1 supperssion de /var/guix/profiles/per-user/charlie/current-guix-1-link
Vous pouvez aussi utiliser guix package
(voir Invoquer guix package
) pour contrôler le profil en le nommant explicitement :
$ guix package -p ~/.config/guix/current --roll-back passé de la génération 3 à 2 $ guix package -p ~/.config/guix/current --delete-generations=1 suppression de /var/guix/profiles/per-user/charlie/current-guix-1-link
La commande guix pull
est typiquement invoquée sans arguments mais
elle prend en charge les options suivantes :
--url=url
--commit=commit
--branch=branche
Télécharger le code pour le canal guix
depuis l’url spécifié,
au commit donné (un commit Git valide représenté par une chaîne
hexadécimale ou le nom d’une étiquette) ou à la branche branch.
Ces options sont fournies pour votre confort, mais vous pouvez aussi spécifier votre configuration dans le fichier ~/.config/guix/channels.scm ou en utilisant l’option --channels (voir plus bas).
--channels=file
-C file
Lit la liste des canaux dans file plutôt que dans ~/.config/guix/channels.scm ou /etc/guix/channels.scm. file doit contenir un code Scheme qui s’évalue en une liste d’objets de canaux. Voir Canaux pour plus d’informations.
--no-channel-files
-q
Inhibit loading of the user and system channel files, ~/.config/guix/channels.scm and /etc/guix/channels.scm.
--news
-N
Affiche les nouvelles écrites par les auteurs des canaux pour leurs utilisateurs et utilisatrices depuis la génération précédente (voir Writing Channel News). Lorsque vous passez --details, affiche aussi les nouveaux paquets et les paquets mis à jour.
Vous pouvez consulter ces informations pour les générations précédentes avec
guix pull -l
.
--list-generations[=motif]
-l [motif]
Liste toutes les générations de ~/.config/guix/current ou, si
motif est fournit, le sous-ensemble des générations qui correspondent
à motif. La syntaxe de motif est la même qu’avec guix
package --list-generations
(voir Invoquer guix package
).
Par défaut, cela affiche les informations sur les canaux utilisés à chaque révision et les nouvelles associées. Si vous passez l’option --details, cela affichera la liste des paquets ajoutés et mis à jour à chaque génération par rapport à la précédente.
--details
Demande à --list-generations ou --news d’afficher plus d’informations sur la différence entre les générations successives, voir plus haut.
--roll-back
¶Revenir à la génération précédente de ~/.config/guix/current c.-à-d. défaire la dernière transaction.
--switch-generation=motif
¶-S motif
Basculer vers une génération particulière définie par le motif.
Le motif peut être soit un numéro de génération soit un nombre précédé de « + » ou « - ». Ce dernier signifie : se déplacer en avant ou en arrière d’un nombre donné de générations. Par exemple, si vous voulez retourner à la dernière génération après --roll-back, utilisez --switch-generation=+1.
--delete-generations[=motif]
-d [motif]
Lorsque motif est omis, supprimer toutes les générations en dehors de l’actuelle.
Cette commande accepte les même motifs que --list-generations. Lorsque motif est spécifié, supprime les générations correspondantes. Lorsque motif spécifie une durée, les générations plus anciennes que la durée spécifiée correspondent. Par exemple --delete-generations=1m supprime les générations vieilles de plus d’un mois.
Si la génération actuelle correspond, elle n’est pas supprimée.
Remarquez que supprimer des générations empêche de revenir en arrière vers elles. Ainsi, cette commande doit être utilisée avec précaution.
Voir Invoquer guix describe
, pour une manière d’afficher des informations
sur la génération actuelle uniquement.
--profile=profil
-p profil
Utiliser le profil à la place de ~/.config/guix/current.
--dry-run
-n
Montrer quels commits des canaux seraient utilisés et ce qui serait construit ou substitué mais ne pas le faire vraiment.
--allow-downgrades
Permet d’extraire des révisions de canaux plus anciennes ou sans rapport avec celles qui sont actuellement utilisées.
Par défaut, guix pull
protège contre les attaques dites de
"downgrade", par lesquelles le dépôt Git d’un canal serait réinitialisé à
une révision antérieure ou sans rapport avec lui-même, ce qui pourrait vous
conduire à installer des versions plus anciennes de paquets logiciels, ou
connues pour être vulnérables.
Remarque : Assurez-vous de comprendre les implications de sa sécurité avant d’utiliser --allow-downgrades.
--disable-authentication
Permet de "tirer" le code du canal sans l’authentifier.
Par défaut, guix pull
authentifie le code téléchargé depuis les
canaux en vérifiant que ses commits sont signés par les développeur·euses,
et renvoie une erreur si ce n’est pas le cas. Cette option lui enjoint de ne
pas effectuer une telle vérification.
Remarque : Assurez-vous de comprendre les implications de sa sécurité avant d’utiliser --disable-authentication.
--system=système
-s système
Tenter de construire pour le système — p. ex. i686-linux
—
plutôt que pour le type de système de l’hôte de construction.
--bootstrap
Utiliser le programme d’amorçage Guile pour construire la dernière version de Guix. Cette option n’est utile qu’aux personnes qui développent Guix.
Le mécanisme de canaux vous permet de dire à guix pull
quels
répertoires et branches récupérer, ainsi que les dépôts
supplémentaires contenant des modules de paquets qui devraient être
déployés. Voir Canaux pour plus d’information.
En plus, guix pull
supporte toutes les options de construction
communes (voir Options de construction communes).
Suivant: Invoquer guix time-machine
, Précédent: Invoquer guix gc
, Monter: Gestion de paquets [Table des matières][Index]