Hi Guix!
I have just installed (successfully?) my first guix system!
As a newcomer (I know system administration quite well, but never used
guix before) I thought that I could share my experience (i.e. issues I
had ;)) installing Guix. Probably some of the issues are obvious once
you know Guix well, but they aren't when, like me, you don't. I hope
using this list for this post is not inappropriate.
I did not find any solution for some of the issues yet, so I would
also welcome help on those!
So, here is the list of issues I had.
1. An easy one: on a new computer, you now have to desactive this
secure boot thingy, else the live CD won't boot. As I understand it
the guix live CD is not "signed", which was the reason why it did not
boot (while other live CDs did). This may sound obvious, except for
people whose previous computer was still using the BIOS; so maybe it
would be worth writing this in the installation instructions?
2. I had a lot of trouble understanding how profile worked;
consequently I think I installed a lot of versions of different
packages, which took ages.
After a while, I understood that
- guix pull creates a new profile, but is not used by default: why?
Similarly, guix kept telling me that I should do
# GUIX_PROFILE="/home/matthieu/.guix-profile"
# . "$GUIX_PROFILE/etc/profile"
So my question is: shouldn't the default .bashrc uses the newest
guix command from guix pull, and contain these lines above?
- sudo guix system reconfigure /etc/config.scm is very different from
sudo su; guix system reconfigure /etc/config.scm.
This is written explicitly in the documentation, so that was clear,
but I fell into the trap.
- guix system reconfigure /etc/config.scm (without sudo) fails at a
very late stage. Maybe this command should issue a warning when not
run with root rights?
3. At one time it seems that my entire user profile disappeared (maybe
I shut down my laptop at a wrong time). I had to reinstall every
package I had installed with guix package -i.
4. I followed the initial exemple configuration of "A graphical system
with a choice of lightweight window managers", but it did not contain
any terminal emulator.
5. I installed Icecat but I am missing some fonts: some websites do
not display properly (e.g. numbers do not show up), even if I untick
"do not load custom fonts" (unticking this improves things a bit). So
I believe some more font package should be installed with icecat.
6. I had issues with gdm and lightdm, so I installed the xinit package
to start X sessions manually. But it seems that startx/xinit looks for
a X server in the same path than the xinit binary, which won't work on
guix.
7. nm-applet fails with this warning Failed to add/activate connection: (1) Not authorized to control networking.
I have to do sudo nm-applet to have it working (but it works well, wifi and wired)
8. Is there an equivalent to apt-file, e.g. a way to know in which
packages a file would be located? This would be very useful, for
instance I had trouble finding where the latex executable is
located, or ghc complaining about finding linux/errno.h when I
wanted to install xmonad. The problem is even more important for
guix, as in other systems the dependencies eventually show up in
your profile (e.g. installing texlive-latex-beamer would install
the latex binary), whereas in guix you have to explicitely install
the right package in Guix.
9. nm-applet cannot find the right icon sets, so it uses a "forbidden
sign" icon everywhere (which is a bit scary). The error I get is
failed to load icon "nm-stage03-connecting11": Icon
'nm-stage03-connecting11' not present in theme Adwaita
so I guess some icon are missing; I tried to install
gnome-icon-theme with no luck.
10. My latest problem happened when I tried to install slim (but the
problem remains when I switch back to gdm or tried to use a previous
system configuration, which surprised me). Now when I boot, I have a
"gdm" user that was created and which attemps to log 505 times, which
freezes my computer for 2 minutes (I I try to use it at the same
times, it hangs). My work-around is to switch to the console and wait
that all these unsuccessful connection stops, but this is not
ideal...
11. Before I found this work-around I tried to fix the problem by
booting + chrooting from another OS, a solution I have often used to
fix my OS but could not do on guix... Which scares me a bit because I
fill that I have no easy way to fix my OS if it was broken. Is there
an easy way to do that in guix?
12. I also remember that the installer said something like "I will
erase the whole disk and you would loose all your data", while I used
the manual partitionning scheme and asked to format only one
partition, and this was a bit scary.
Wow, that was a long list. Obviously I did not write about everything
that went well during the installation, so thanks for your hard work!
By posting this, I just hope that it will help new users to have less
problems to solve in the future!
Thanks,
Matthieu
PS: here is my config.scm file
;; This is an operating system configuration generated
;; by the graphical installer.
(use-modules (gnu))
(use-service-modules desktop networking ssh xorg)
(use-modules (nongnu packages linux))
(use-modules (srfi srfi-1)) ; for remove
(operating-system
(locale "en_US.utf8")
(timezone "Europe/Paris")
(keyboard-layout
(keyboard-layout "us" "altgr-intl"))
(kernel linux)
(firmware (cons* iwlwifi-firmware %base-firmware))
(bootloader
(bootloader-configuration
(bootloader grub-efi-bootloader)
(target "/boot/efi")
(keyboard-layout keyboard-layout)))
(file-systems
(cons* (file-system
(mount-point "/")
(device
(uuid "7dd68b9b-26ba-47f7-aa82-3469060d2936"
'ext4))
(type "ext4"))
(file-system
(mount-point "/boot/efi")
(device (uuid "90D1-BAAF" 'fat32))
(type "vfat"))
%base-file-systems))
(host-name "x1")
(users (cons* (user-account
(name "matthieu")
(comment "Matthieu")
(group "users")
(home-directory "/home/matthieu")
(supplementary-groups
'("wheel" "netdev" "audio" "video")))
%base-user-accounts))
(packages
(append
(list (specification->package "xmonad")
(specification->package "awesome")
(specification->package "dmenu")
(specification->package "tlsdate") ; for initial time adjustment
(specification->package "nss-certs"))
%base-packages))
(services
(append
(list (service openssh-service-type)
(set-xorg-configuration
(xorg-configuration
(keyboard-layout keyboard-layout)))
(service slim-service-type (slim-configuration
(display ":0")
(vt "vt6")))
)
(remove (lambda (service)
(eq? (service-kind service) gdm-service-type))
%desktop-services
))))