Setup / install 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 gpg --keyserver keys.gnupg.net --recv-keys 3D9AEBB5 wget ftp://alpha.gnu.org/gnu/guix/guix-binary-0.10.0.i686-linux.tar.xz wget ftp://alpha.gnu.org/gnu/guix/guix-binary-0.10.0.i686-linux.tar.xz.sig gpg --verify guix-binary-0.10.0.i686-linux.tar.xz.sig su cd /tmptar --warning=no-timestamp -xf /home/pl/guix-binary-0.10.0.i686-linux.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 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 guix archive --authorize < ~root/.guix-profile/share/guix/hydra.gnu.org.pub Install (and start) the nscd name service recommended for foreign distro use of guix \ https://guix.gnu.org/manual/en/html_node/Upgrading-Guix.html \ \ 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 As a user $ guix package -i glibc-locales $ export GUIX_LOCPATH=$HOME /.guix-profile/lib/locale $ guix package -i font-adobe-source-han-sans:cn
EMACS 1 2 3 guix package -i emacs. guix package -i geiser guix package -i guix
~/.bashrc .bashrc 1 2 3 4 5 6 7 8 export GUIX_LOCPATH="$HOME /.guix-profile/lib/locale" export GUILE_LOAD_COMPILED_PATH="/home/pl/.guix-profile/lib/guile/2.0/ccache:/home/pl/.guix-profile/share/guile/site/2.0" export INFOPATH="/home/pl/.guix-profile/share/info" export LC_ALL="en_US" export PATH="/home/pl/.guix-profile/bin:/home/pl/.guix-profile/sbin:$PATH " export GUILE_LOAD_PATH="/home/pl/.guix-profile/share/guile/site/2.0" export R_LIBS_SITE="/home/pl/.guix-profile/site-library/"
Note that the PATH must start with /home/pl/.guix-profile/bin
Purge the system Guile with:
.bashrc 1 2 3 $ export PATH=/home/mbc/.config/guix/current/bin:$PATH $hash guix ;;to invalidate your shell's cache for the guix binary location. $type guix ;;must return ~/.config/guix/current/bin/guix
An example .scm for packaging guile-json:
guile-json.scm 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 (use-modules (guix packages) (guix download) (guix build-system gnu) (guix licenses) (gnu packages pkg-config) (gnu packages guile) ) (package (name "guile-json" ) (version "4.3.2" ) (home-page "https://github.com/aconchillo/guile-json" ) (source (origin (method url-fetch) (uri (string-append "mirror://savannah/guile-json/guile-json-" version ".tar.gz" )) (sha256 (base32 "0255c7f053z4p9mqzhpxwbfx3y47j9nfvlgnm8xasdclyzmjl9y2" )))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) )) (inputs `(("guile" ,guile-3.0))) (synopsis "JSON module for Guile" ) (description "Guile-JSON supports parsing and building JSON documents according to the specification. These are the main features: @itemize @item Strictly complies to @uref{http://json.org, specification}. @item Build JSON documents programmatically via macros. @item Unicode support for strings. @item Allows JSON pretty printing. @end itemize\n" ) (license gpl3+))
To get some recipes of use from store:
.bashrc 1 2 3 4 5 $guix edit guile-json$guix package --install-from-file=./Downloads/guile-json/guile-json.scm$guix package -s guile-json
look at the file ~/.configure/guix/current/bin which will provide you with the guix/guile binary path and the recipe for %load-path.
In EMACS configure Geiser with the above executable, and for the load path entry (which requests a file) use the ~/.configure/guix/current/bin file.