Installing GNU system with guix
First what is this? This is a future distribution system of GNU packages, that create a complete operating system. Guix is a package manager that makes this all possible to happen. While GNU at all is a project with long history and many components are widely used in Linux distributions the idea of building complete GNU system with Guix is relatively new and in alfa stage.
Getting The System
Everything is described in
http://www.gnu.org/software/guix/manual/html_node/System-Installation.html
Generally
wget ftp://alpha.gnu.org/gnu/guix/gnu-usb-install-0.7.x86_64.xz unxz gnu-usb-install-0.7.x86_64.xz
dd if=gnu-usb-install-0.7.x86_64 of=/dev/sdX bs=512
Boot the machine from USB, you are logged in as root
dhclient eth0 (make sure the name of the device is correct) fdisk /dev/sda (create sda1 with linux ext4 fs) mkfs.ext4 /dev/sda1 mount /dev/sda1 /mnt deco start cow-store /mnt cp /etc/configuration-template.scm /mnt/config.scm zile /mnt/config.scm
modify to suite your needs, if you do not need to use label for root fs just comment with ;; and change device "root" to "/dev/sda1". Change the grub-configuration device to "/dev/sda. Save and quit (C-x C-c)."
guix system init /mnt/config.scm /mnt
Now this takes few minutes to download the data a install grub. Reboot.
The fun begins.
This is a linux-libre, the only GFX card working out of the box are those from Intel, rest should work as VESA. Otherwise you may get firmware loading errors and delays.
You may have troubles with your ETH card. Generally do not forget to hand start atm
dhclient eth0
The package system is completely different. Whole system basicaly resides in /gnu/store, the rest is mostly a bunch of symlinks.
Every user can have his system profile, the one for root is under /root/.guix....
Primary installation method is "build" - i.e. build a package from source. If you want to use a substitutes (prebuild packages), you have to authorize the source
guix archive --authorize < /gnu/store/<long-hash>-guix-0.<somebuild>/share/guix/hydra.gnu.org.pub
Installing a "package" is
guix package -i <packagename>
if substitutes or any other dependency is not present, it is build. Every package can have its own dependecy on other package of various version. All are build in /gnu/store. You may have many version of perl, gcc.. whatever together.
To get a list of available packages type
guix package -A | grep <name>
If you want to install Xorg
guix package -i xorg-server xf86-video-intel xf86-input-keyboard xf86-input-mouse
starting e.g. Xorg -configure will print "Missing output drivers". Why? You have to supply the Xorg with the correct path to your system profile
Xorg -modulepath /root/.guix-profile/lib/xorg/modules/
OK, you've set your Xorg, now lets start e.g. sshd
guix package -i lsh
This is a GNU ssh, but you may use also openssh, halfway to go, need to generate a yarrow seed, not yet found a way to make lsh run as dmd service, but you may try to make a service file
mkdir -p /var/spool/lsh lsh-make-seed -o /var/spool/lsh/yarrow-seed-file lsh-keygen > /etc/lsh_host_key /gnu/store/*-lsh-2.1/sbin/lshd --daemonic --root-login
About Guile, scheme...
The complete OS is based on scheme (a lisp dialect) language. The init system dmd (daemon managing daemons) is in scheme, init scripts are in scheme, config files are in scheme, guix is in scheme, package definitions are in scheme.
The scheme is interpreted by Guile. Scheme (.scm) could be precompiled to ".go".
deco status dmd
shows existing services while
deco detailed-status dmd
shows details of every runing service.
For Windows ones - installing in VirtualBox
Downloaded image is just a copy of a raw disk, you need to convert it to VDI
"C:\Program Files\Oracle\VirtualBox\VBoxManage" convertfromraw gnu-usb-install-version-linux-i686 gnu.vdi --format vdi
Attach it as a new SATA storage to new VB machine, enable PAE in System/Processor tab, otherwise it may crash. Add another disk image to install to and after a boot continue from beginning of this article.