{{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 * [[https://fr.wikipedia.org/wiki/AppImage|AppImage]] * Snap * http://0install.net/ * http://makeself.io/ == Installation ** Note : Copier-coller pour archive perso ** Ce référer à la doc officiel 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 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 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 # gpg --keyserver keys.gnupg.net --recv-keys 3D9AEBB5 gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 3D9AEBB5 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 tar --warning=no-timestamp -xf guix-binary-0.10.0.system.tar.xz mv var/guix /var/ mv gnu / ln -sf /var/guix/profiles/per-user/root/guix-profile /root/.guix-profile 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 mkdir -p /usr/local/bin cd /usr/local/bin ln -s /var/guix/profiles/per-user/root/guix-profile/bin/guix 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 # 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 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" ls $GUIX_LOCPATH/2.22/ export LC_ALL=fr_FR.UTF-8 # LC_ALL=C.UTF-8 On refait : 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 chgrp guixbuild -R /gnu/store chmod 1775 /gnu/store 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 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'' 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 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" sudo echo 1 > /proc/sys/kernel/unprivileged_userns_clone guix environment --ad-hoc --container gimp ---- Exemple apt install nix-bin && nix-commande install chromium