On 2023-08-30 17:00:07 +0200, Jakub Skokan wrote:
Ahoj,
(English below)
TL;DR ve VPS lze nově používat distribuci Guix.
Tohle je super zprava, diky moc!
GNU Guix System [1] je linuxová distribuce založená na správci balíčků Guix.
Funguje to velice podobně jako NixOS [2] a Nix, až na to, že Guix a celý
systém se konfiguruje pomocí Guile Scheme. Ve Scheme jsou opravdu veškeré
součásti systému, včetně init systému Shepherd [3].
Na rozdíl od klasických distribucí se Guix a NixOS konfigurují deklarativně:
v konfiguračním souboru nadefinujeme kompletní podobu výsledného systému,
tj. jaké má obsahovat uživatele/skupiny, služby a jejich nastavení. Ať už se
jedná o aktualizaci nebo rollback, mezi různými verzemi systému se lze
snadno přepínat buď za běhu, nebo při bootu v zavaděči, resp. u nás ve Start
Menu [4]. Guix oproti NixOS obsahuje jen Free Software.
Protože ve vpsFree používáme NixOS [5] skoro na všechno, zajímalo mě taky,
jak je na tom Guix. Bohužel Scheme pořádně neznám a ani mě to moc neláká --
je tam příliš mnoho závorek :) Před rokem se jeden člen snažil [6] šablonu
pro Guix vytvořit, ale sám jsem neviděl cestu, jak na to. Až před pár dny
jsem narazil na blog [7], který obsahoval potřebné informace. Hlavní problém
byl, že ve VPS nemáme zavaděč a taky se nepřipojuje kořenový souborový
systém -- je připojen už před spuštěním /sbin/init ve VPS. V konfiguraci
však zavaděč i kořenový systém být musí, jinak se systém nesestaví.
Nakonec to není žádná věda: jako zařízení pro zavaděč stačí /dev/null [8] a
volba --no-bootloader, s kořenovým systémem je to podobné [9].
Pokud by někdo měl zájem to vyzkoušet, VPS s Guixem si můžete vytvořit na
node1.stg (staging). Jinde zatím nebude fungovat integrace pro nastavení
sítě. Více informací viz KB:
https://kb.vpsfree.org/manuals/distributions/guix
Jsou tam ještě nějaké nedostatky, které už nejspíš řešit nebudu, aspoň ne
teď. Základ včetně integrace do vpsAdminu a Start Menu je zdá se funkční.
Sami pro Guix využití nemáme, dělal jsem to spíš ze zajímavosti. Jestli Guix
někdo použijete, budeme rádi za zpětnou vazbu.
Postupne konvertuju svoje stroje na Guix, a VPS je take na seznamu, takze se k
tomu urcite dostanu (otazka, jak uz to tak byva, je kdy).
Takze jeste jednou diky moc. :)
ENGLISH:
TL;DR VPS can now use Guix distribution.
GNU Guix System [1] is a linux distribution based on Guix package manager.
It is very similar to NixOS [2] and Nix, except that Guix is configured
using Guile Scheme. Indeed, most of the system components including the init
system Shepherd [3] are written in Scheme.
Unlike other well-known linux distributions, Guix and NixOS are configured
declaratively: users/groups and all services with their settings that should
a part of the target system are defined in a config file. It is possible to
switch between different system configurations, be it an upgrade or
downgrade. System versions can be switched at runtime or from the bootloader
-- in our case, from the Start Menu [10]. Unlike NixOS, Guix contains only
Free Software, as it is a part of the GNU project.
At vpsFree.cz, we use NixOS [5] almost everywhere. I was thus interested to
see the state Guix is in. Unfortunately, I'm not familiar with Scheme, there
are far too many parentheses! A year ago, one of our members tried to create
[6] template for Guix, but we haven't been able to make it work. A few days
ago, I've discovered a blogpost [7] that helped me understand the missing
pieces. Our main issue was that inside the VPS, there's no bootloader and no
need to mount the root file system, as it is mounted even before its
/sbin/init is started. Guix configuration however requires them to be
configured.
In the end it's pretty straightforward. /dev/null is used [8] as a device
for the bootloader together with option --no-bootloader. Mounting of the
root file system can be bypassed in a similar way [9].
If someone would like to give it a go, you can create VPS with Guix on
node1.stg (staging). For more information, see KB:
https://kb.vpsfree.org/manuals/distributions/guix
There are several known issues, but the base system appears to be
operational. Network configuration is integrated with vpsAdmin and the Start
Menu can be used to run older system generations. As we do not have any
actual use for Guix ourselves, I'm going to leave it as it is for now. We'll
be glad for any feedback if you'll run anything on Guix.
[1]
https://guix.gnu.org
[2]
https://nixos.org
[3]
https://kb.vpsfree.cz/navody/vps/start_menu
[4]
https://www.gnu.org/software/shepherd/
[5]
https://github.com/vpsfreecz/vpsfree-cz-configuration
[6]
https://github.com/vpsfreecz/vpsadminos-image-build-scripts/pull/47
[7]
https://www.thedroneely.com/posts/guix-in-a-linux-container/
[8]
https://github.com/vpsfreecz/vpsadminos/blob/14ac41e78566cdddc28fa40e2d7975…
[9]
https://github.com/vpsfreecz/vpsadminos/blob/14ac41e78566cdddc28fa40e2d7975…
[10]
https://kb.vpsfree.org/manuals/vps/start_menu
Jakub
_______________________________________________
Community-list mailing list -- community-list(a)lists.vpsfree.cz
To unsubscribe send an email to community-list-leave(a)lists.vpsfree.cz
--
There are only two hard things in Computer Science:
cache invalidation, naming things and off-by-one errors.