Outils pour utilisateurs

Outils du site


tech:guix_le_gestionnaire_de_paquets_complementaire_multi_distro

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
tech:guix_le_gestionnaire_de_paquets_complementaire_multi_distro [2025/03/24 15:06] – créée - modification externe 127.0.0.1tech:guix_le_gestionnaire_de_paquets_complementaire_multi_distro [2026/06/29 15:30] (Version actuelle) Jean-Baptiste
Ligne 1: Ligne 1:
 +<!DOCTYPE markdown>
 +{{tag>Brouillon Paquet Déploiement}}
 +
 +# Guix le gestionnaire de paquets complémentaire multi distro
 +
 +Avantage :
 +* Indépendance par rapport à la distro
 +* Reproductibilité, c'est une sorte de virtualenv pour des binaires
 +* Réversibilité
 +* Permettre à des utilisateurs (non root) de facilement installer programmes  
 +* Compilation
 +** Plus de souplesse 
 +** Plus de confiance dans un code source vérifiable que dans un fichier binaire
 +
 +Inconvénient :
 +* Toujours en bêta
 +* Compilation
 +** Plus lent
 +** Nécessite un compilateur installé et plusieurs bibliothèques (libraries)  
 +* Que GNU/Linux, ne support pas BSD et autres
 +
 +Liens :
 +* http://www.gnu.org/software/guix/
 +* https://linuxfr.org/news/nix-1-7-nixpkgs-et-nixos-14-04-guix-0-6
 +* https://github.com/pjotrp/guix-notes/blob/master/HACKING.org
 +
 +Voir :
 +* https://linuxfr.org/users/killruana/journaux/nixos-ou-comment-j-ai-rendu-mes-machines-interchangeables-et-ennuyeuses
 +* https://linuxfr.org/news/gnu-guix-1-4-0-est-publie
 +
 +Voir aussi :
 +* Flatpak
 +* [AppImage](https://fr.wikipedia.org/wiki/AppImage)
 +* Snap
 +* http://0install.net/
 +* http://makeself.io/
 +
 +
 +## Installation
 +
 +** Note : Copier-coller pour archive perso **
 +Ce référer à la doc officiel</note>
 +
 +Source : https://www.gnu.org/software/guix/manual/html_node/Binary-Installation.html
 +
 +
 +### Préinstall
 +
 +Voir les dépendances : https://www.gnu.org/software/guix/manual/html_node/Requirements.html
 +
 +~~~bash
 +apt-get install guile-2.0-dev guile-2.0 libgcrypt20-dev libbz2-dev libsqlite3-dev autopoint
 +~~~
 +
 +Source : https://www.gnu.org/software/guix/manual/html_node/Build-Environment-Setup.html#Build-Environment-Setup
 +
 +
 +~~~bash
 +groupadd --system guixbuild
 +for i in `seq -w 1 10`;
 +  do
 +    useradd -g guixbuild -G guixbuild           \
 +            -d /var/empty -s `which nologin`    \
 +            -c "Guix build user $i" --system    \
 +            guixbuilder$i;
 +  done
 +~~~
 +
 +~~~
 +useradd is a low level utility for adding users. On Debian, administrators should usually use adduser(8) instead.
 +~~~
 +
 +
 +### Install
 +
 +Le serveur de clefs keys.gnupg.net ne semble plus accessible 
 +~~~bash
 +# gpg --keyserver keys.gnupg.net --recv-keys 3D9AEBB5
 +gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 3D9AEBB5
 +~~~
 +
 +~~~bash
 +wget ftp://alpha.gnu.org/gnu/guix/guix-binary-0.10.0.system.tar.xz.sig
 +gpg --verify guix-binary-0.10.0.system.tar.xz.sig
 +~~~
 +
 +~~~bash
 +tar --warning=no-timestamp -xf guix-binary-0.10.0.system.tar.xz
 +mv var/guix /var/ 
 +mv gnu /
 +~~~
 +
 +~~~bash
 +ln -sf /var/guix/profiles/per-user/root/guix-profile /root/.guix-profile
 +~~~
 +
 +~~~bash
 +cp /root/.guix-profile/lib/systemd/system/guix-daemon.service /etc/systemd/system/
 +systemctl start guix-daemon
 +systemctl status guix-daemon
 +systemctl enable guix-daemon
 +~~~
 +
 +~~~bash
 +mkdir -p /usr/local/bin
 +cd /usr/local/bin
 +ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix
 +~~~
 +
 +~~~bash
 +mkdir -p /usr/local/share/info
 +cd /usr/local/share/info
 +for i in /var/guix/profiles/per-user/root/guix-profile/share/info/*
 +do 
 +  ln -s $i
 +done
 +cd -
 +~~~
 +
 +Ajout de la clef publique pour le dépôt hydra.gnu.org
 +~~~bash
 +# Faut-il utiliser "pre-inst-env" ?
 +# ./pre-inst-env guix archive --authorize < hydra.gnu.org.pub
 +guix archive --authorize < /root/.guix-profile/share/guix/hydra.gnu.org.pub
 +~~~
 +
 +~~~
 +warning: failed to install locale: Invalid argument
 +~~~
 +
 +https://www.gnu.org/software/guix/manual/html_node/Application-Setup.html#Application-Setup
 +~~~bash
 +guix package -i glibc-locales
 +guix package -i glibc-utf8-locales
 +export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
 +export PATH="$PATH:/root/.guix-profile/bin:/root/.guix-profile/sbin"
 +~~~
 +
 +~~~bash
 +ls $GUIX_LOCPATH/2.22/
 +export LC_ALL=fr_FR.UTF-8
 +# LC_ALL=C.UTF-8
 +~~~
 +
 +On refait :
 +~~~bash
 +guix archive --authorize < /root/.guix-profile/share/guix/hydra.gnu.org.pub
 +~~~
 +Plus de `warning: failed to install locale: Invalid argument`
 +
 +
 +### Postinstall
 +
 +Voir https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org
 +
 +~~~bash
 +chgrp guixbuild -R /gnu/store
 +chmod 1775 /gnu/store
 +~~~
 +
 +~~~bash
 +guix pull
 +~~~
 +
 +Erreur :
 +~~~
 +Starting download of /tmp/guix-file.srtrha
 +From http://git.savannah.gnu.org/cgit/guix.git/snapshot/master.tar.gz...
 + master.tar.gz                              1.8MiB/s 00:06 | 10.2MiB transferred
 +unpacking '/gnu/store/cdlwlhhyrp9pqw65qdj0nc60gh3r3jzs-guix-latest.tar.gz'...
 +substitute: warning: failed to install locale: Invalid argument
 +The following derivation will be built:
 +   /gnu/store/gy94c3bgq5wv6hshiqvl7im41rxhbcdi-guix-latest.drv
 +warning: failed to install locale: Invalid argument
 +building path(s) `/gnu/store/k0s0j138zlkp7xbhmdss3jfvihzjvn0p-guix-latest'
 +copying and compiling to '/gnu/store/k0s0j138zlkp7xbhmdss3jfvihzjvn0p-guix-latest'...
 +loading...       23.6% of 501 filesrandom seed for tests: 1465036103
 +loading...       99.8% of 501 files
 +compiling...      7.8% of 501 filesbuilder for `/gnu/store/gy94c3bgq5wv6hshiqvl7im41rxhbcdi-guix-latest.drv' failed due to signal 9 (Killed)
 +guix pull: error: build failed: build of `/gnu/store/gy94c3bgq5wv6hshiqvl7im41rxhbcdi-guix-latest.drv' failed
 +~~~
 +
 +~~~bash
 +dmesg | tail
 +~~~
 +
 +~~~
 +[ 6910.498849] Out of memory: Kill process 5181 (guile) score 380 or sacrifice child
 +[ 6910.500320] Killed process 5181 (guile) total-vm:251412kB, anon-rss:191672kB, file-rss:612kB
 +~~~
 +
 +**Voilà l'explication** \\
 +Le `failed due to signal 9 (Killed)` c'est OOM Killer qui est passé par là, car pas assez de RAM sur ma VM (à 512Go de RAM)
 +
 +----------
 +
 +`~/.bashrc`
 +~~~bash
 +export GUIX_LOCPATH=$HOME/.guix-profile/lib/locale
 +export PATH="$HOME/.guix-profile/bin:$HOME/.guix-profile/sbin:$PATH"
 +export LC_ALL=fr_FR.UTF-8
 +# LC_ALL=C.UTF-8
 +
 +export PKG_CONFIG_PATH="$HOME/.guix-profile/lib/pkgconfig"
 +export GUILE_LOAD_PATH="$HOME/.guix-profile/share/guile/site/2.0"
 +export GUILE_LOAD_COMPILED_PATH="$HOME/.guix-profile/lib/guile/2.0/ccache:$HOME/.guix-profile/share/guile/site/2.0"
 +export C_INCLUDE_PATH="$HOME/.guix-profile/include"
 +export CPLUS_INCLUDE_PATH="$HOME/.guix-profile/include"
 +export LIBRARY_PATH="$HOME/.guix-profile/lib"
 +export ACLOCAL_PATH="$HOME/.guix-profile/share/aclocal"
 +~~~
 +
 +
 +## Autres
 +
 +Notes Test 
 +~~~bash
 +guix environment --ad-hoc --container gimp
 +~~~
 +
 +~~~
 +guix environment: error: cannot create container: unprivileged user cannot create user namespaces
 +guix environment: error: please set /proc/sys/kernel/unprivileged_userns_clone to "1"
 +~~~
 +
 +~~~bash
 +sudo echo 1 > /proc/sys/kernel/unprivileged_userns_clone
 +guix environment --ad-hoc --container gimp
 +~~~
 +
 +----
 +
 +Exemple 
 +~~~bash
 +apt install nix-bin && nix-commande install chromium
 +~~~
 +
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki