Afficher la pageAnciennes révisionsLiens de retourHaut de page Cette page est en lecture seule. Vous pouvez afficher le texte source, mais ne pourrez pas le modifier. Contactez votre administrateur si vous pensez qu'il s'agit d'une erreur. ====== Guix ====== * [[https://connect.ed-diamond.com/GNU-Linux-Magazine/glmfhs-113/deploiements-reproductibles-dans-le-temps-avec-gnu-guix]] * [[https://lists.gnu.org/archive/html/guix-devel/2020-08/msg00168.html|Dealing with foreign distros without nscd]] * [[https://www.futurile.net/2023/12/04/guile-repl-with-guix-package-repl-queries/|A side of Guile: The Guile REPL and investigating Guix packages]] * [[https://fabionatali.com/posts/compartmentalisation-by-means-of-virtualisation/|Compartmentalisation by means of virtualisation]] ==== Faire des expériences reproductibles ==== - Figer les canaux : <code bash> guix describe -f channels > guix-channels.scm </code> - Lancer la machine à voyager dans le temps de Guix : <code bash> guix time-machine --channels=guix-channels.scm -- shell ma_commande </code> ==== Indiquer un dépôt Git Guix alternatif ==== <code bash> guix pull --url=https://codeberg.org/guix/guix-mirror.git </code> ==== Indiquer l'emplacement des définitions des paquets ==== Utiliser le paramètre ''-L'' ou la variable environnement ''GUIX_PACKAGE_PATH''. ==== Indicateur d’environnement Guix dans le prompt de ZSH ==== On peut modifier le thème utilisé de cette façon : <code bash> function guix_env() { if [ -n "$GUIX_ENVIRONMENT" ] then echo '[guix]' fi } # ... PROMPT='...$(guix_env)' </code> ==== Compiler Guix ==== * [[https://guix.gnu.org/manual/devel/fr/html_node/Construire-depuis-Git.html#Construire-depuis-Git]] <code bash> git clone https://git.savannah.gnu.org/git/guix.git cd guix guix shell git -D guix --pure ./bootstrap ./configure --localstatedir=/var make ./pre-inst-env guix describe </code> Ne pas faire de ''guix pull'', sinon il récupère la version indiquée dans le ''$HOME'', qui est probablement antérieure à celle dans le dépôt Git. === Récupérer un patch === Vu sur IRC, apparemment on peut faire : <code bash> curl https://issues.guix.gnu.org/issue/<id>/patch-set -q -o - | git am wget -qO- https://issues.guix.gnu.org/issue/$1/patch-set $2 | git am --patch-format mbox -3 </code> ==== Mettre à jour un paquet ==== * https://guix.gnu.org/manual/fr/html_node/Invoquer-guix-refresh.html <code bash> ./pre-inst-env guix refresh $paquet ./pre-inst-env guix refresh $paquet -u ./pre-inst-env guix build $paquet </code> Si on est courageux, il est possible de connaître la liste des dépendances inverses du paquet mis à jour, pour essayer de les construire également : <code bash> ./pre-inst-env guix refresh -l $paquet </code> === Envoyer un patch === * [[https://www.tournier.info/posts/2021-10-12-add-guix-package.html]] * [[https://guix.gnu.org/manual/devel/fr/html_node/Configurer-Git.html]] Sur Debian, il faut installer le paquet ''git-email''. <code bash> git config --local include.path ../etc/git/gitconfig git commit git format-patch --base=origin/master -1 git send-email --to=guix-patches@gnu.org 0001-*.patch </code> Il faut auparavant avoir ajouté dans le ''.git/config'' la configuration SMTP pour envoyer le mail: <code> [sendemail] smtpEncryption = tls smtpServer = smtp.server.com smtpUser = user smtpServerPort = 587 # port à utiliser même si un autre est configuré dans Thunderbird </code> === Reviewer des patchs === * [[https://libreplanet.org/wiki/Group:Guix/PatchReviewSessions2024]] * [[https://www.youtube.com/watch?v=8m8igXrKaqU#__do_not_save__| Guix patch reviews using Mumi by Jgart]] === Manipuler des rapports de bugs === * https://guix.gnu.org/manual/devel/en/html_node/Debbugs-User-Interfaces.html (paquet ''mumi'') ==== Forcer la reconstruction d'un paquet ==== <code bash> guix build --check --no-grafts hello </code> ==== Débugguer le packaging ==== On peut remplacer partout une expression par <code scheme> (pk 'unlabel (expression)) </code> Il est aussi possible de demander une évaluation des paquets, sans vraiment construire : <code bash> guix build -L . $paquet -n </code> On peut obtenir la dérivation avec <code bash> guix build -L . $paquet -n -d </code> et parcourir les fichiers ''builder'' qu'elle référence pour savoir quelles sont les commandes de compilation utilisées. Pour afficher les fichiers de dérivations correctement formattés, on peut utiliser [[https://gitlab.com/zimoun/guix-drv]] ou <code bash> guix shell emacs guile emacs-geiser emacs-geiser-guile emacs-guix -- emacs /gnu/store/.....drv </code> On peut ensuite faire <key>Entrée</key> quand le curseur est sur un chemin de fichier pour ouvrir ce fichier. guix/accueil.txt Dernière modification : 2025/09/05 17:12de phsw