antiX-26 — zase o niečo lepší #6 + GNU Guix prakticky

Dnes | 14:28 | Richard | Richard

Dnes si ukážeme praktické ukážky použitia Guix.

Minulá časť

… bola taká — no trochu teoretická, ale verím, že zaujímavá. Pre mňa je spomínaný Guix taký, no ťažko to definovať, proste príjemný, asi ako nová hračka. A súčasne som sa hral s úpravami niektorých LaTeX dokumentov, aby ich „prehrýzol“ program Tectonic, ktorý je postavený na XeTeX-u.

Keď som si ho chcel spustiť na pracovnom PC, tak v prípade najnovšej verzie vyskočila hláška o nejakom nesúlade s verziami knižníc glibc. No chcelo to novšiu, ale zase iný program chce staršiu. To je vždy trochu zapeklité, lebo zmena glibc môže ovplyvniť systémové služby. Samotný program nie je preložený staticky. Dalo by sa aj laborovať s cestami a LD_LIBRARY_PATH. Ale vôbec sa mi do toho nechcelo.

Našťastie mi Guix, vďaka svojej architektúre, pomohol. A aj na laptope, kde nie je inštalovaný. Ako? Aj o tom bude reč.

Inštalácia

Podstatné veci v oficiálnej dokumentácii začínajú kapitolou Binárna inštalácia. Vývojári ponúkajú skript, ktorý spraví za nás nasledovné:

Takže ako root spustíme príkazy:

wget https://guix.gnu.org/guix-install.sh
chmod +x guix-install.sh
./guix-install.sh

Výstup z inštalácie je takýto:

    ░░░                                     ░░░
    ░░▒▒░░░░░░░░░               ░░░░░░░░░▒▒░░
     ░░▒▒▒▒▒░░░░░░░           ░░░░░░░▒▒▒▒▒░
         ░▒▒▒░░▒▒▒▒▒         ░░░░░░░▒▒░
               ░▒▒▒▒░       ░░░░░░
                ▒▒▒▒▒      ░░░░░░
                 ▒▒▒▒▒     ░░░░░
                 ░▒▒▒▒▒   ░░░░░
                  ▒▒▒▒▒   ░░░░░
                   ▒▒▒▒▒ ░░░░░
                   ░▒▒▒▒▒░░░░░
                    ▒▒▒▒▒▒░░░
                     ▒▒▒▒▒▒░
     _____ _   _ _    _    _____       _
    / ____| \ | | |  | |  / ____|     (_)
   | |  __|  \| | |  | | | |  __ _   _ ___  __
   | | |_ | . ' | |  | | | | |_ | | | | \ \/ /
   | |__| | |\  | |__| | | |__| | |_| | |>  <
    \_____|_| \_|\____/   \_____|\__,_|_/_/\_\

https://www.gnu.org/software/guix/
This script installs GNU Guix on your system
To uninstall, pass in the '--uninstall' parameter.
Press return to continue...
[1781253137.903]: Starting installation (Pi 12. jún 2026, 08:32:17 UTC)
[1781253137.931]: [ FAIL ] Init system could not be detected.
[1781253137.951]: [ PASS ] verification of required commands completed
[1781253138.034]: [ INFO ] system is x86_64-linux
2026-06-12 08:32:19 URL:https://mirrors.nav.ro/gnu/guix/ [22308] -> "-" [1]
[1781253139.742]: [ PASS ] Release for your system: guix-binary-1.5.0.x86_64-linux
[1781253139.746]: [ INFO ] Downloading Guix release archive
guix-binary-1.5.0.x86_64-linux.tar.xz   100%[============================================================================>] 129,69M  2,71MB/s    za 39s     
2026-06-12 08:32:59 URL:https://ftp.man.poznan.pl/gnu/guix/guix-binary-1.5.0.x86_64-linux.tar.xz [135985908/135985908] -> "/tmp/guix.mPzw8v/guix-binary-1.5.0.x86_64-linux.tar.xz" [1]
guix-binary-1.5.0.x86_64-linux.tar.xz.s 100%[============================================================================>]     566  --.-KB/s    za 0s      
2026-06-12 08:33:00 URL:https://mirror.easyname.at/gnu/guix/guix-binary-1.5.0.x86_64-linux.tar.xz.sig [566/566] -> "/tmp/guix.mPzw8v/guix-binary-1.5.0.x86_64-linux.tar.xz.sig" [1]
UKONČENÉ --2026-06-12 08:33:00--
Celkový čas: 41s
Stiahnutých: 2 súborov, 130M za 39s (3,34 MB/s)
[1781253180.841]: [ PASS ] download completed.
[1781253182.118]: [ PASS ] Signature is valid.
[1781253182.125]: [ INFO ] Installing /var/guix and /gnu...
[1781253197.400]: [ INFO ] Linking the root user's profile
[1781253197.416]: [ PASS ] activated root profile at /root/.config/guix/current
[1781253197.428]: [ INFO ] group kvm exists and build users will be added to it
[1781253197.522]: [ PASS ] group <guixbuild> created
[1781253197.650]: [ PASS ] user added <guixbuilder01>
[1781253198.789]: [ FAIL ] unsupported init system; run the daemon manually:
  ~root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild
[1781253198.796]: [ INFO ] making the guix command available to other users
Permit downloading pre-built package binaries from the project's build farms? [Y/n]y
hint: Consider installing the `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:

     guix install glibc-locales
     export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

[1781253211.141]: [ PASS ] Authorized public key for bordeaux.guix.gnu.org
hint: Consider installing the `glibc-locales' package and defining `GUIX_LOCPATH', along these lines:

     guix install glibc-locales
     export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

[1781253211.484]: [ PASS ] Authorized public key for ci.guix.gnu.org
[1781253211.529]: [ PASS ] installed shell completion
Customize users Bash shell prompt for Guix? [Y/n]y
[1781253216.533]: [ PASS ] Bash shell prompt successfully customized for Guix
[1781253216.540]: [ INFO ] cleaning up /tmp/guix.mPzw8v
[1781253216.606]: [ PASS ] Guix has successfully been installed!
[1781253216.617]: [ INFO ] Run 'info guix' to read the manual.
[1781253216.624]: [ INFO ] Please log out and back in to complete the installation.

Inštalácia sa spýta na uloženie autorizačných kľúčov a povolenie substitútov.

Počas inštalácie som antiX Core som zaznamenal chybu: [ FAIL ] Init system could not be detected. Guix podporuje init systémy systemd, SysVinit, Shepherd (init systém distribúce Guix OS). Ale to nevadí, v podstate sa jedná o pridanie pravidla pre spustenie démona pri štarte OS. Ktorý je po inštalácii umiestnený v našom prípade v /root/.config/guix/current/bin/guix-daemon.

Takže podľa DE/WM/init-u si ho pridáme do .xinitrc, .xsession, ~/.config/autostart alebo podobného súboru, ktorý sa spúšťa pri štarte. Kto používa spomínané „bežné“ inity, tento krok robiť nemusí.

Výhoda démona spočíva v tom, že väčšina operácií Guix-u môže prebiehať súčasne. Takže sa nám nestane lock ako v prípade APT, ak jedna jeho úloha beží a požadujeme súčasne ďalšiu.

Vyhľadávanie balíkov

Následné výstupy zo skriptov budem krátiť.

Vyhľadávanie pomocou guix search <reťazec>.

$ guix search tectonic

name: tectonic
version: 0.15.0
outputs:
+ out: everything
systems: x86_64-linux
dependencies: fontconfig-minimal@2.14.0 freetype@2.13.3 graphite2@1.3.13 harfbuzz@11.4.4 icu4c@73.1 openssl@3.0.8 pkg-config@0.29.2 rust-deunicode@1.6.1
location: gnu/packages/rust-apps.scm:2804:2
homepage: https://tectonic-typesetting.github.io/
license: Expat
synopsis: Complete, embeddable TeX/LaTeX engine  
description: This package provides a modernized, complete, embeddable TeX/LaTeX engine.  Tectonic is forked from the XeTeX extension to the classic Web2C
+ implementation of TeX and uses the TeXLive distribution of support files.
relevance: 32

Inštalácia balíka

Príkaz: guix install <názov@verzia> prípadne len guix package -i <názov@verzia>; prípadne, ak chceme najnovšiu verziu tak bez @verzia.

Prepínač --no-substitutes vynúti inštaláciu zo zdrojových kódov. Vtedy dochádza k stiahnutiu knižníc pre samotný preklad a tiež kompilačné nástroje.

$ guix install tectonic

The following package will be installed:
   tectonic 0.15.0

substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
The following derivation will be built:
  /gnu/store/2rls3z3cb3rraxlqid4cyg6a7qha004p-profile.drv

141.2 MB will be downloaded
hint: Consider installing the `glibc-locales' package and defining
`GUIX_LOCPATH', along these lines:

     guix install glibc-locales
     export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

See the "Application Setup" section in the manual, for more info.

 module-import-compiled  107KiB                                                                                    563KiB/s 00:00 ▕██████████████████▏ 100.0%
 coreutils-9.1  2.5MiB                                                                                             1.4MiB/s 00:02 ▕██████████████████▏ 100.0%
 desktop-file-utils-0.26  44KiB                                                                                    2.1MiB/s 00:00 ▕██████████████████▏ 100.0%
 libffi-3.4.6  60KiB                                                                                               3.3MiB/s 00:00 ▕██████████████████▏ 100.0%
  ⁞
  ⁞
building fonts directory...
generating GLib schema cache...
building directory of Info manuals...
building XDG desktop file cache...
building XDG MIME database...
building profile with 1 package...

Odinštalácia balíka

Príkaz guix remove <názov> alebo guix package -r <názov>.

$ guix remove pandoc 

The following package will be removed:
   pandoc 2.19.2

The following derivation will be built:
  /gnu/store/pwx680hzpbcmr0k9gc5844l6dmpvc25z-profile.drv

building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
generating GdkPixbuf loaders cache...
generating GLib schema cache...
creating GTK+ icon theme cache...
building cache files for GTK+ input methods...
building directory of Info manuals...
building XDG desktop file cache...
building XDG MIME database...
building profile with 4 packages..

Pri odinštalovaní sa konkrétny balík z /gnu/store nezmaže. Vytvorí sa „iba“ nová generácia a príslušný balík sa zmaže z disku a profilov, iba ak sa zmaže príslušná generácia. Takto možno prepínať medzi jednotlivými generáciami/zostavami balíkov.

Práca s generáciami a.k.a stroj času

Každá generácia je úplný snímok (snapshot) systému v konkrétnom okamihu, ktorý obsahuje:

Generácia sa vytvára pri príkazoch

Čo sa dá s tým robiť:

FunkciaPríkaz
Zoznam generáciíguix package --list-generations
Vrátenie sa späť (na predch. generáciu)guix package --roll-back
Vrátenie na N-tú generáciuguix package --switch-generation=N
Zmazanie generácieguix package --delete-generations=N

A ešte pripomenieme pár výhod:

Ale aj nevýhod:

Napríklad:

$ guix package --list-generations

Generation 1	Jun 12 2026 08:36:53
  tectonic	0.15.0	out	/gnu/store/lrvg69piva2r4sx1h53igxavraxp7rxk-tectonic-0.15.0

Generation 2	Jun 12 2026 11:36:05
 + pcb2gcode	2.5.0-0.8c084af	out	/gnu/store/pzp3myq2fqcfyc8lnk1z2sfpf87i05z9-pcb2gcode-2.5.0-0.8c084af

Generation 3	Jun 15 2026 10:25:49
 + pdftk 	3.3.3     	out	/gnu/store/va3l317asmv7sdck94ravwv3mvwkmy12-pdftk-3.3.3
 + pandoc	2.19.2    	out	/gnu/store/9amfkw1z77nqc3idjqxggs9sbmv1j4jp-pandoc-2.19.2
 + yt-dlp	2025.11.12	out	/gnu/store/d2qafyqlpy4r9pm8l8hcbqd3r701rnww-yt-dlp-2025.11.12

Generation 4	Jun 15 2026 10:26:52	(current)
 - pandoc	2.19.2	out	/gnu/store/9amfkw1z77nqc3idjqxggs9sbmv1j4jp-pandoc-2.19.2

V tomto konkrétnom príklade sme aktuálne v generácii č. 4, a teda program pandoc už nie je nainštalovaný. Ak však zadáme príkaz guix package --switch-generation=3, vrátime sa do stavu generácie č. 3 a program pandoc je dostupný.

Tu je dôkaz 😃:

$ guix package --switch-generation=3

switched from generation 4 to 3


$ guix package --list-generations

Generation 1	Jun 12 2026 08:36:53
  tectonic	0.15.0	out	/gnu/store/lrvg69piva2r4sx1h53igxavraxp7rxk-tectonic-0.15.0

Generation 2	Jun 12 2026 11:36:05
 + pcb2gcode	2.5.0-0.8c084af	out	/gnu/store/pzp3myq2fqcfyc8lnk1z2sfpf87i05z9-pcb2gcode-2.5.0-0.8c084af

Generation 3	Jun 15 2026 10:25:49	(current)
 + pdftk 	3.3.3     	out	/gnu/store/va3l317asmv7sdck94ravwv3mvwkmy12-pdftk-3.3.3
 + pandoc	2.19.2    	out	/gnu/store/9amfkw1z77nqc3idjqxggs9sbmv1j4jp-pandoc-2.19.2
 + yt-dlp	2025.11.12	out	/gnu/store/d2qafyqlpy4r9pm8l8hcbqd3r701rnww-yt-dlp-2025.11.12

Generation 4	Jun 15 2026 10:26:52
 - pandoc	2.19.2	out	/gnu/store/9amfkw1z77nqc3idjqxggs9sbmv1j4jp-pandoc-2.19.2


$ ~/.guix-profile/bin/pandoc --version
pandoc 2.19.2
Compiled with pandoc-types 1.22.2.1, texmath 0.12.5.5, skylighting 0.13.2.1,
citeproc 0.8.1, ipynb 0.2, hslua 2.2.1
Scripting engine: Lua 5.4

Aktualizácia systému

Príkaz guix pull stiahne najnovšiu verziu samotného Guix-u, následne guix upgrade aktualizuje nainštalované programy (príp. guix upgrade <názov> pre konkrétny program) a vytvorí novú generáciu.

Tento proces je výrazne pomalší ako v prípade „bežného“ správcu balíkov ako APT. Je to preto, že klonuje celý repozitár (nielen zmeny), každý jeden balík sa overuje (teda nie len repozitár), Guix je napísaný v Scheme (resp. Guile) — a ten je pomalší.

Príklad:

$ guix pull
Building from this channel:
  guix      https://git.guix.gnu.org/guix.git	e656664
looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
building /gnu/store/b82cggd14k9d8k12kzga8spikk6zbs29-config.scm.drv...
building /gnu/store/af3pib48v8wy2im7wvwimrnzh1m6dakd-git.scm.drv...
building /gnu/store/r4wpkc97dj09zpx0wvrg1cm5pllhhzhd-hash.scm.drv...
  ⁞
  ⁞
building /gnu/store/1425bznb5lrj0iyymcib37s2129kshpg-module-import.drv...
building /gnu/store/bd9zwmifa5bgjcbvnc19jr72y72a141w-module-import.drv...
building /gnu/store/k1i9kgq8r0wi3gl2mr6rdq1wwqbn0744-module-import-compiled.drv...
building /gnu/store/nmdz49bv3w77vvn6yhjj5r8kb9mw4mnd-module-import-compiled.drv...
building /gnu/store/hl8skcriy4ksj3bnx0i3xcngcn3scxjb-compute-guix-derivation.drv...
substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
 graphviz-minimal-7.0.1-doc  967KiB                                                                               28.2MiB/s 00:00 ▕██████████████████▏ 100.0%
 bash-static-5.2.37  730KiB                                                                                        2.2MiB/s 00:00 ▕██████████████████▏ 100.0%
 font-dejavu-2.37  2.3MiB                                                                                          1.9MiB/s 00:01 ▕██████████████████▏ 100.0%
 glibc-2.41  8.7MiB                                                                                                2.1MiB/s 00:04 ▕██████████████████▏ 100.0%
 guile-lib-0.2.8.1  399KiB                                                                                         2.0MiB/s 00:00 ▕██████████████████▏ 100.0%
  ⁞
  ⁞
building /gnu/store/7sb3mwv769ispdx1axhp8qxcicwn8azh-guix-config.drv...
building /gnu/store/s4xxzwyclkx4v4dq0hlhzblvx7svdqr2-guix-config-modules.drv...
building /gnu/store/7jr5gajb4v83db9hx241hj931skbpg4d-guix-e65666462-modules.drv...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...

Práca s „garbage collectorom“

Príkaz guix gc čistí nepotrebné dáta (neodkazované súbory, staré generácie, nepoužívané profily).

Základné parametre:

ParameterVýznam
--deleteOdstráni neodkazované dáta (bezpečné, iba uvoľňuje miesto).
--optimizeOptimalizuje úložisko (agresívnejšie, zlučuje odkazy).
--list-rootsZoznam „živých odkazov“ (čo systém považuje za používané).

Príkaz guix gc (bez parametrov) vykoná guix gc --optimize --delete

Mimochodom, staré generácie systému sa nezmažú. Ani programy, ktoré sú ich súčasťou.

A ešte možno aj nastaviť, koľko priestoru má Guix na disku zaberať, resp. koľko voľného má ostať. Potom opakovane automaticky maže nepotrebné programy. Taktiež možno nastaviť, aby mazal staré generácie, napr. staršie ako 30 dní: guix gc --delete-generations=30.

„Guix si pamätá všetko, kým sa mu nepovie inak. Podobne ako manželka 😀.“

$ guix gc

finding garbage collector roots...
deleting garbage...
[   0  bytes] deleting '/gnu/store/mdcb3fgvv6809l0c38b4mrlcfg5mms1d-rust-1.74.1.drv'
[   3.11 KiB] deleting '/gnu/store/isf8h2xhqadkscvnw7nj1pgga5fjbwpl-rust-1.73.0.drv'
[   6.22 KiB] deleting '/gnu/store/65j5kmj5b7dj1im8v0ra4iaqnzqlf34p-rust-1.72.1.drv'
[   9.33 KiB] deleting '/gnu/store/07ydyxivwddwl13f6fz5x5ms4hj645fm-rust-1.71.1.drv'
[  12.43 KiB] deleting '/gnu/store/38v7d7pacxnr7wqkxkfls1g7avv7dfq0-rust-1.70.0.drv'
[  15.54 KiB] deleting '/gnu/store/fj5cqhy95mhrcmamw9qgd48c74dg6nj0-rust-1.69.0.drv'
[  18.65 KiB] deleting '/gnu/store/qcgkl1v620lmgz1f7p2jfsih4n6c58xp-rust-1.68.2.drv'
  ⁞
  ⁞
[ 310.66 MiB] deleting '/gnu/store/x3sz1d49kbyq0wk03yp2ks79cbvy80gx-rustc-1.73.0-src.tar.zst-builder'
[ 310.66 MiB] deleting '/gnu/store/cly3sjr5hvwsazmbbns18nsbfdvfmykv-rustc-1.68.2-src.tar.gz.drv'
[ 310.66 MiB] deleting '/gnu/store/bim2620myd2pzqkn2h5v1kxk011w2gck-rustc-1.60.0-src.tar.zst-builder'
[ 310.67 MiB] deleting '/gnu/store/42ybqddigqw9bx7hax39mmq2zl6dfcx4-rustc-1.57.0-src.tar.gz.drv'
[ 310.67 MiB] deleting '/gnu/store/vhqyqyxzlqrcx7gksrj70fn6qk1w2x3c-gtk-icon-themes'
deleting `/gnu/store/trash'
deleting unused links...
note: currently hard linking saves  501.72 MiB
guix gc: freed 440 MiB

Z príkladu vidíme, že cca 500 MB sa zdieľa medzi balíkmi navzájom (lebo rovnaký hash knižníc!).

Vytvorenie prenosného balíka

To je super vec, ktorá umožní vytvorenie spustiteľných archívov z balíkov (bez potrebného Guix na inom počítači) Presne takto som si vytvoril AppImage, ktorý krásne funguje na laptope bez Guix-u. Všetky závislosti sú pochopiteľne v archíve.

Použil som príkaz: guix pack -f appimage --entry-point=bin/tectonic --relocatable tectonic, kde entry-point je binárka, ktorá sa spustí po spustení AppImage (defacto symlink na /usr/bin/ v AppImage), a --relocatable pripojí všetky potrebné knižnice pre beh programu.

$ guix pack -f appimage --entry-point=bin/tectonic --relocatable tectonic

substitute: looking for substitutes on 'https://bordeaux.guix.gnu.org'... 100.0%
substitute: looking for substitutes on 'https://ci.guix.gnu.org'... 100.0%
The following derivations will be built:
  /gnu/store/n5r9w196xfcscg8gz28977vj9cfxvfp6-module-import-compiled.drv
  /gnu/store/2jzd7f1nkz3zifbn2kv5m009lsx6mlav-module-import-compiled.drv
  /gnu/store/vagcpbvkdczavab14m7n1nj1b2rlrg17-module-import-compiled.drv
  /gnu/store/4phmxhc8az20gr9mmcjyvfdxpi174gpj-c-compiler.drv
  /gnu/store/d49cgg8lhhqzr70r6rkz9w8rmfiyzgxd-tectonic-0.15.0R.drv
  /gnu/store/rx6bba8l75sp97kb9gskb2qyk9aisn0w-profile.drv
  /gnu/store/6nzlwh4hgs12n1320bc9ghwms2f2avai-tectonic-appimage-pack.AppImage.drv

33.7 MB will be downloaded

 module-import-compiled  107KiB                                                                                    641KiB/s 00:00 ▕██████████████████▏ 100.0%
 file-5.46  356KiB                                                                                                 606KiB/s 00:01 ▕██████████████████▏ 100.0%
 glibc-2.41-static  1.5MiB                                                                                         2.2MiB/s 00:01 ▕██████████████████▏ 100.0%
 libffi-3.4.6  60KiB                                                                                               1.5MiB/s 00:00 ▕██████████████████▏ 100.0%
 libfontenc-1.1.8  44KiB                                                                                           2.4MiB/s 00:00 ▕██████████████████▏ 100.0%
 libgc-8.2.8  230KiB                                                                                               2.0MiB/s 00:00
  ⁞
  ⁞
building /gnu/store/n5r9w196xfcscg8gz28977vj9cfxvfp6-module-import-compiled.drv...
building /gnu/store/vagcpbvkdczavab14m7n1nj1b2rlrg17-module-import-compiled.drv...
building /gnu/store/4phmxhc8az20gr9mmcjyvfdxpi174gpj-c-compiler.drv...
building /gnu/store/d49cgg8lhhqzr70r6rkz9w8rmfiyzgxd-tectonic-0.15.0R.drv...
building CA certificate bundle...
listing Emacs sub-directories...
building fonts directory...
building directory of Info manuals...
building profile with 1 package...
building /gnu/store/6nzlwh4hgs12n1320bc9ghwms2f2avai-tectonic-appimage-pack.AppImage.drv...
/gnu/store/jhkf5zhbjmlhlpwbjcmy9lxwpk66lr1x-tectonic-appimage-pack.AppImage

Guix dokáže vytvoriť tieto balíky:

Odinštalácia celého Guix-u

Ak sa chceme zbaviť celého balíkovacieho systému, nainštalovaných programov i profilov, najjednoduchšie je ako root spustiť príkazy (wget vtedy, ak už nemáme pôvodný inštalačný skript):

wget https://guix.gnu.org/guix-install.sh  
chmod +x guix-install.sh
./guix-install.sh --uninstall

Špecifikovanie ďalších kanálov

Okrem dvoch predvolených možno pridať aj ďalšie kanály, ktoré si možno predstaviť ako repozitáre (nie je to úplne presné, lebo repozitáre majú u seba uložné konkrétne balíčky, kdežto kanál môže len odkazovať na iné/cudzie git úložiská).

Robí sa to editovaním ~/.config/guix/channels.scm

(cons (channel
        (name 'variant-packages)
        (url „https://<adresa>.git“))
      %default-channels)

Všimnite si, že úryvok vyššie je kód v Scheme; používa sa cons (párová dvojica) pridanie kanála do zoznamu kanálov, ku ktorému je viazaná premenná %default-channels.

Viac o autorizácii kanálov a pod. v príslušných stránkach dokumentácie.

Ešte jeden príkaz na záver: weather

Vtipný príkaz guix weather – názov je ironický — v zmysle „ako je vonku“ = dostupnosť služieb.

$ guix weather

computing 32402 package derivations for x86_64-linux...
looking for 38258 store items on https://bordeaux.guix.gnu.org...
https://bordeaux.guix.gnu.org ☀
  99.1% substitutes available (37925 out of 38258)
  at least 134266.6 MiB of nars (compressed)
  352048.9 MiB on disk (uncompressed)
  0.041 seconds per request (1568.2 seconds in total)
  24.4 requests per second
  (continuous integration information unavailable)
looking for 38258 store items on https://ci.guix.gnu.org...
https://ci.guix.gnu.org ☀
  98.8% substitutes available (37801 out of 38258)
  at least 226829.8 MiB of nars (compressed)
  360040.0 MiB on disk (uncompressed)
  0.006 seconds per request (233.4 seconds in total)
  163.9 requests per second

  0.0% (0 out of 457) of the missing items are queued
  at least 1000 queued builds
      powerpc64le-linux: 527 (52.7%)
      riscv64-linux: 414 (41.4%)
      x86_64-linux: 55 (5.5%)
      i686-linux: 2 (.2%)
      aarch64-linux: 2 (.2%)
  build rate: 302.09 builds per hour
      x86_64-linux: 301.49 builds per hour
      aarch64-linux: -15.79 builds per hour
      i686-linux: 17.48 builds per hour

„Každý nástroj potrebuje dobré meno. Toto je štýl Guix.“

Tabuľka hlavných príkazov a porovnanie s APT

APTGuixVýznam
apt updateguix pullAktualizuje zoznam dostupných balíkov/softvéru.
apt upgradeguix upgradeAktualizuje všetky nainštalované balíky na najnovšie verzie.
apt install <názov>guix package -i <názov>Nainštaluje špecifikovaný balík.
apt remove <názov>guix package -r <názov>Odinštaluje špecifikovaný balík.
apt autoremoveguix package --delete-generations + guix gcOdstráni nepoužívané závislosti/staré generácie balíkov.
apt search <reťazec>guix search <reťazec>Vyhľadá balíky podľa zadaného názvu alebo popisu.
apt show <názov>guix show <názov>Zobrazí detailné informácie o balíku.
apt list --installedguix package --list-installedZoznam nainštalovaných balíkov.
apt purge <názov>guix package -r <názov>Odinštaluje balík vrátane konfiguračných súborov.
apt cleanguix gcVyčistí úložisko stiahnutých balíkov (Guix má iný mechanizmus).
prepínač -sprepínač --dry-runvypíše, čo bude spravené = test akcie pred vykonaním

Záver

GNU Guix predstavuje alternatívu v svete správy balíkov, spojením spoľahlivosti systémov (ako Nix, ktorý bol inšpiráciou) s pokročilými možnosťami správy systému. Jeho model „replikovateľnej infraštruktúry“ umožňuje zrkadlenie prostredí medzi systémami. Koncepcia atomických operácií a rollbacku/generácií zvyšuje stabilitu systému.

Na druhej strane — je to nové, vcelku komplexné — a teda je potrebná investícia do času a chuti.

Je to odlišný prístup: namiesto inštalácie softvéru do operačného systému spoločne s ním udržujeme celú replikovateľnú infraštruktúru.