For real-time support from the community, you can connect to the #guix channel on Libera Chat. There you can get help about anything related to both the Guix System Distribution and GNU Guix.
On Wednesday, January 9th 2019, I succeeded the (classic) installation of GuixSD 0.16.0 in Dual Boot with Debian testing/sid on a Laptop Packard Bell EasyNote TE (without worrying about GPT or EFI).
Downloading and burning Supergrub2disk (or copy it on a USB stick) is highly recommanded, especially in this circumstances of a dual-boot installation with Debian Testing/Sid. It can really help you... https://www.supergrubdisk.org/category/download/supergrub2diskdownload/
Download GuixSD, the GNU Guix Software Distribution:
To copy the image to a USB stick, I have followed these steps:
1. Decompress the image using the xz command:
$ xz -d guixsd-install-0.16.0.x86_64-linux.iso.xz
2. Insert a USB stick of 1 GiB or more into your machine, and determine its device name. Assuming that the USB stick is known as /dev/sdX, copy the image with:
Access to /dev/sdX usually requires root privileges.
# dd if=guixsd-install-0.16.0.x86_64-linux.iso of=/dev/sdb # sync
To copy the image to a DVD, follow these steps:
1. Decompress the image using the xz command:
$ xz -d guixsd-install-0.16.0.x86_64-linux.iso.xz
2. Insert a blank DVD into your machine, and determine its device name. Assuming that the DVD drive is known as /dev/srX, copy the image with:
# growisofs -dvd-compat -Z /dev/srX=guixsd-install-0.16.0.system.iso
The installation image uses the US qwerty keyboard layout. If I want to change it, I can use the loadkeys command. For example, the following command selects the fr keyboard layout:
# loadkeys fr
I will not address the question of Wi-Fi here, since my connection is very slow. However, it's fine about the hardware, which is not a restricted thing in my case (Qualcomm Atheros AR9485 Wireless Network Adapter (rev 01). For infos about the Wi-Fi, see below:
Some wifi cards require the use of a non-free firmware.
For another laptop, I had to order a usb wifi card Technoethical N150 Mini Wireless USB Adapter for GNU/Linux-libre at:
I have used the wired connection (RJ45 cable).
# ifconfig -a
Wired interfaces have a name starting with ‘e’; for example, the interface corresponding to the first on-board Ethernet controller is called ‘eno1’.
# ifconfig enp2s0f0 up
At this point, I need to acquire an IP address. On a network where IP addresses are automatically assigned via DHCP, I can run:
# dhclient -v enp2s0f0
Try to ping a server to see if networking is up and running:
# ping -c 3 gnu.org PING gnu.org (126.96.36.199): 56 data bytes 64 bytes from 188.8.131.52: icmp_seq=0 ttl=51 time=138.917 ms 64 bytes from 184.108.40.206: icmp_seq=1 ttl=51 time=139.388 ms 64 bytes from 220.127.116.11: icmp_seq=2 ttl=51 time=138.998 ms --- gnu.org ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/stddev = 138.917/139.101/139.388/0.206 ms
GPT or EFI: The tests I have done in virtual machines have not been very conclusive, I do not know too much about the subject. If you want to use GPT or EFI, please refer to the documentation:https://www.gnu.org/software/guix/manual/html_node/Preparing-for-Installation.html#Disk-Partitioning
In my case, knowing that I will not have to worry about this question, here we go:
Device Boot Start End Sectors Size Id Type /dev/sda1 2048 532542415 532540368 254G 83 Linux /dev/sda2 532543486 976771071 444227586 211.8G 5 Extended /dev/sda5 968720384 976771071 8050688 3.9G 82 Linux swap / Solaris /dev/sda6 * 532543488 968720383 436176896 208G 83 Linux Free space 976771072 976773167 2096 1M
GuixSD will be installed on /dev/sda6. Concerning your own installation, it's better to enable the boot option * now...
Preferably, assigning file systems a label so that I can easily and reliably refer to them in file-system declarations (see File Systems). This is typically done using the -L option of mkfs.ext4 and related commands. So, assuming the target root partition lives at /dev/sda6, a file system with the label my-root can be created with:
# mkfs.ext4 -L my-root /dev/sda6
Mount the target file system under /mnt with a command like (again, assuming my-root is the label of the root file system):
# mount LABEL=my-root /mnt
I have an installed swap partition on /dev/sda5 for debian, why not use it? I ran:
# mkswap /dev/sda5 # swapon /dev/sda5
With the target partitions ready and the target root mounted on /mnt, I'm ready to go. First:
# herd start cow-store /mnt
This makes /gnu/store copy-on-write, such that packages added to it during the installation phase are written to the target disk on /mnt rather than kept in memory. This is necessary because the first phase of the guix system init command (see below) entails downloads or builds to /gnu/store which, initially, is an in-memory file system.Creating the System configuration directory:
# mkdir /mnt/etc
Creating the next (empty for now) configuration file:
# touch /etc/configuration/perso.scm
Note: you can also edit an existing file already in /etc/configuration (for example 'desktop.scm', or 'bare-bones.scm' and modify it as you wish.)
To adapt the configuration of the computer to my needs, I use vi, knowing only this one:
# vi /etc/configuration/perso.scm
;; Operating system configuration for a full ;; "desktop" environment with gnome and (use-modules (guix) (gnu) (gnu services mcron) (gnu system nss)) (use-service-modules desktop networking ssh) (use-package-modules bootloaders certs gnome screen ssh base idutils) (operating-system (host-name "gnu") (timezone "Europe/Paris") (locale "fr_FR.utf8") (keyboard-layout (keyboard-layout "us" "altgr-intl")) ;; Assuming /dev/sda is the target hard disk, and "my-root" is ;; the label of the target root file system, and /dev/sda6 the ;; target partition for the GuixSD installation. (bootloader (grub-configuration (target "/dev/sda") (menu-entries (list (menu-entry (label "Debian GNU/Linux") (linux "/boot/vmlinuz-4.19.0-5-amd64") (linux-arguments '("root=/dev/sda1")) (initrd "/boot/initrd.img-4.19.0-5-amd64")))))) (file-systems (cons (file-system (device (file-system-label "my-root")) (mount-point "/") (type "ext4")) %base-file-systems)) (swap-devices '("/dev/sda5")) (users (cons (user-account (name "hubert") (comment "GuixSD user") (group "users") (supplementary-groups '("wheel" "netdev" "audio" "video")) (home-directory "/home/hubert")) %base-user-accounts)) ;; This is where we specify ;; system-wide packages. (packages (cons* gvfs ;for users mounts nss-certs ;for HTTPS access screen openssh %base-packages)) ;; Add GNOME and/or Xfce---we can choose at the log-in ;; screen with F1. (services (cons* (service gnome-desktop-service-type) %desktop-services)) ;; Allow resolution of '.local' host names with mDNS. (name-service-switch %mdns-host-lookup-nss)) ____________________________________________________________________
Copy of this file renamed 'config.scm' to '/mnt/etc'
# cp /etc/configuration/perso.scm /mnt/etc/config.scm
Once I am done preparing the configuration file, the new system must be initialized (remember that the target root file system is mounted under /mnt):
# guix system init /mnt/etc/config.scm /mnt
This copies all the necessary files and installs GRUB on /dev/sda, unless you pass the
--no-bootloader option. For more information, see Invoking guix system.
This command may trigger downloads or builds of missing packages, which can take some time.
It seemed to be going well:
Copy on /mnt
Installation is finished, I can...
During the first access session user, I found that I did not have the opportunity to go in full console with Ctrl-Alt-F1, Ctrl-Alt-F2, etc ... It was because of the bios , it was necessary to activate the TTY consoles in the "Main" tab 'Function Key Behavior' [Functions Keys] Now, Ctrl-Alt-F1 log me in full console, Ctrl-Alt-F2 too, and Ctrl-Alt- F3, Ctrl-Alt-F4 ... etc. Alt-F7 also works.
In console, the root account has the azerty keyboard. As for my GNOME session, it was still in QWERTY, I had to configure (graphically) "All Settings" / 'Region & Language' where I added Language 'French' and in 'Input Sources': 'French (alt.)'
It only remained for me to choose 'fr' in the Gnome-Shell bar of the desktop, and the keyboard became AZERTY.
hubert@gnu ~$ guix pull
hubert@gnu ~$ guix package -u
hubert@gnu ~$ sudo guix system reconfigure /etc/config.scm
root@gnu ~# reboot
After the reboot, I get the Linux-Libre 4.20.0 kernel
I have launched the 2 following commands:
$ export PATH="$HOME/.config/guix/current/bin:$PATH"
$ export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
root@gnu ~# guix package -i vim
hubert@gnu ~$ guix package -i markdown
(markdown converts a text file into a html file into a single command line).
hubert@gnu ~$ guix package -i vlc
I put my ssh access for ovh in the nautilus bookmarks and it works.
This system always gives me satisfaction, my installation dating from February 2018 on the other mobile still works.https://www.gnu.org/software/guix/blog/2018/gnu-guix-and-guixsd-0.16.0-released/ Extraits :
"Using the new inferior mechanism, you can now interact with a different revision of Guix and even compose packages from different revisions of Guix.
The output of the command-line tools has been significantly improved: important events are colorized, the guix package and the guix system no longer display build logs, and the guix build colorizes build logs (in a similar way to that of Emacs-Guix).
Guix had reproducible versions and now it has "reproducible source code downloads": when a package refers to a Git repository that has disappeared (which is unfortunately not uncommon!), The command can be retrieved from from Software Heritage. This makes GuixSD one of the first distributions to rely on long-term archives.
Rust packages are now fully initialized from sources, from mrustc, a Rust compiler written in C. This is a win over this yogurt software example, and GuixSD is probably the first distribution to reach this goal.
guix system reconfigure will always load system service overrides. That way, when you find it useful, you will be able to execute
herd restart SERVICE
A funny thing that I read I do not know where: "GuixSD is [sort of] a Gentoo for adults", it's funny... Me, I do not know much in programming, I rather found that it could be within the reach of a free software end user.
Copyright (C) 2019 Hubert Lombard.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''.https://www.gnu.org/software/guix/manual/html_node/GNU-Free-Documentation-License.html