時隔一年的桌面 Guix System 安裝
https://ultrarare.space/posts/system-setup-2024/
雖說輾轉中我才提到「那時完成的系統如今還在使用」,不過隨着媒體文件存量增長,爲 Guix System 留下的 1TiB 存儲空間也逐漸捉襟見肘了起來。
這倒不是說 Guix 本身存儲佔用有多可怕:在我此前的桌面系統中,/gnu/store 佔有 115GiB(壓縮1前 241GiB),約 10%,(本文中將完成的系統剛安裝好時在 7GiB 左右),而另一臺使用中的服務器,我有在維護體積,則是 3GiB。機制使然,談不上輕量,但也尚可接受。
我的筆記本電腦只有一個硬盤位,目前安裝了 2TB 的硬盤,要想替換到更大容量,價格上並不理想。這次設置系統,主要是去掉曾留給 Windows 的分區,此外分區表仍有微調,因此重新安裝難以避免。
關於 GNU Guix 的資料並不算多,中文則更少,想到上次安裝詳情並不完整也未公開發布,不免遺憾。如今我便將其寫作博文,以期爲後來者參考。
#guix
guix
在时间轴上看到有安装 Guix 的。
有一些机器启动 Guix 安装程序会卡死是 nouveau 驱动导致的,例如我的 ASUS FA506II。
解决方法就是把 nouveau 放到 blacklist 就不卡死了,适用于一堆 linux-libre 发行版。
#guix #guixsd
So, given that the official Guix survey presented the lack of nonfree software as a problem, and found that it was a problem, will the maintainers decide to allow non-free software? A little clarification would be most welcome.
#guix
SSS 🐂 (The Supreme Sexp System) proudly announces version v3.1.11 of the project.
https://codeberg.org/jjba23/sss
big shoutout to @abcdw who helped improve the dev experience and tests of the project, #hacking on it is now a delight (with #guile #arei #ares on #emacs ).
system is much more modular now, organized, user overrides are easy, and there is a #wip #gruvbox theme support (many more too), added rotating wallpapers
#guix #hyprland #wayland #waybar #gnu #linux #unixporn #scheme #codeberg
📢 The new Guix-HPC annual report is out!
https://hpc.guix.info/blog/2025/02/guix-hpc-activity-report-2024/
Check out what we’re up to with #Guix in support of #HPC, #ReproducibleResearch, and #OpenScience.
Thanks to @jing@mastodon.jing.lgbt, mirrors for Guix substitute servers are available in Japan!
But some issues still need to be addressed to make them more usable and possibly making more mirrors available.
https://lists.gnu.org/archive/html/guix-devel/2025-05/msg00043.html
https://yhetil.org/guix/878qn81rjy.fsf@ultrarare.space/
#guix
The great #Guix migration has started.
https://codeberg.org/guix
https://ultrarare.space/en/posts/guix-rust-packaging-preview/
On the next merge of rust-team branch, Guix will support importing Rust dependencies from the generated lockfile Cargo.lock. A simplified Rust packaging model utilizing the new feature will be introduced, and a workflow will also be documented in Guix Cookbook (bug#77093: New Rust packaging workflow based on lockfile importer).
To test the new packaging model and tweak the workflow, in the past two weeks I have migrated 150 Rust programs, with a total amount of 3638 dependencies and slightly higher source expectation. You might be amazed if you have ever tried Rust packaging in Guix.
More details will be covered in a future blog post on Guix Blog.
This post is to share you the news and give a very brief instruction on how to use the lockfile importer in your own channel at the moment.
Wait, at the moment...? Yes! Build system changes from rust-team branch are not hard requirements.
#guix #rust
Let's ease the driver setup for Nonguix! Testers and reviewers are welcome :)
https://gitlab.com/nonguix/nonguix/-/merge_requests/668
#guix #nonguix #nvidia
(use-modules (nongnu packages linux) (nongnu services nvidia) (nongnu system linux-initrd) ...)((compose (linux-system-transformation #:linux linux-6.14) (nvidia-system-transformation)) (operating-system ...))
Updated fish completions! (WIP)
https://codeberg.org/guix/guix/pulls/553
https://codeberg.org/shepherd/shepherd/pulls/10
#guix #shepherd
A New Rust Packaging Model - Guix Blog
https://guix.gnu.org/en/blog/2025/a-new-rust-packaging-model/
#guix #rust
在不犧牲配置文件編輯體驗的情況下利用 Guix 管理依賴:
(define (computed-substitution-with-inputs name file inputs) (with-imported-modules '((guix build utils)) (computed-file name #~(begin (use-modules (guix build utils)) (copy-file #$file #$output) (substitute* #$output (("\\$\\$([^\\$]+)\\$\\$" _ path) (search-path '#$inputs path)))))))
當然理想狀態下還是該用 sexp 來配置,起名什麼的別管了((
需要注意 substitute 還不能處理所有情況
Usage:
(computed-substitution-with-inputs "caddyfile" (local-file "Caddyfile") (list ai-robots-txt))
Input file:
(block_bots) { import $$share/ai-robots-txt/Caddyfile$$ handle @aibots { respond /* "Access denied" 403 { close } }}
Build output:
(block_bots) { import /gnu/store/2lkvy2nhfww0miy86wlxi067jjdapw33-ai-robots-txt-1.31/share/ai-robots-txt/Caddyfile handle @aibots { respond /* "Access denied" 403 { close } }}
我配置文件裏有些用例,比如這個。
#guix
Let's package #Forgejo in #Guix?
Estimation of 200+ packages with the current packaging mechanic for #Golang.
It would bring more stems for other packages sharing similar dependencies, in light of https://codeberg.org/guix/guix/pulls/385
and https://codeberg.org/guix/guix/compare/master...go-team
I have set up a Guix substitute server! It curre builds guixcn, nonguix and rosenthal channels.
:
https://ci.boiledscript.com
https://ci.boiledscript.com/signing-key.pub
Configuration at:
https://codeberg.org/hako/Testament/src/branch/trunk/config/gokuraku.org
https://codeberg.org/hako/Testament/src/branch/trunk/files/plain/gokuraku/Caddyfile
(see Continuous Integration section)
There's no guarantees before the server appearing in any of the channels it builds ;)
#guix #nonguix
we're pleased to announce https://guixotic.coop, a new free software cooperative focused on gnu guix and guile cofounded by @podiki, maxim cournoyer and me. we offer services including training, commercial support, development, system administration (CI/CD, HPC), packaging -- in short, everything guix and guile.
our goal is to strengthen & expand the community, bringing in new people and organizations (our clients), supporting development work, and growing the network of organizations supporting these technologies.
could you or an organization you know of benefit from our services? email contact@guixotic.coop or contact us here!
full announcement: https://lists.gnu.org/r/guix-devel/2025-07/msg00113.html
I also went in a #guix sidequest last year, and found a solution to
untangle Guix from the Guix pull modules. I realize I never documented
that publicly. Here we go
There's this popular workflow in the Nix space: using a local git
Nixpkgs checkout to override your system Nixpkgs. This is super useful
when hacking on NixOS modules, you can iteratively load them to your
desktop/servers. It also pretty useful when you quickly want to apply
a patch that is not merged upstream yet.
On Guix, this is a bit tricky to do. By default, Guix itself is tying
your system config with the different channels (guix, nonguix). The
trick is to leverage the `pre-inst-env` script to load the local guix
checkout. I did that through a small wrapper script I run when I want
to run guix system reconfigure.
See
https://codeberg.org/picnoir/guix-config/src/branch/master/home/bin/guix-rebuild-all#L5.
This works great, however, this will rewrite the guile load path, and
using this, you won't be able to use your extra channels (like
nonguix).
To work around that, the trick is to wrap your channels in a inferior
(see
https://codeberg.org/picnoir/guix-config/src/branch/master/systems/framework.scm#L29)
and combine them with the guix channel itself (loaded from your local
checkout).
Then use the `lookup-inferior-packages` function to retrieve packages
from this inferior
https://codeberg.org/picnoir/guix-config/src/branch/master/systems/framework.scm#L81.
Doing this makes hacking on Guix as I hack on NixOS. I can cherry pick
patches, apply them in my guix setup and transparently deploy them on
my host system if I need to.
There's an extra accidental benefit: incremental compilation. Since
we're evaluating Guix on a long-living repository, we don't have to
rebuild the channel from scratch on each pull. There's a caveat
though: incremental recompilation is somewhat buggy, I had to manually
clean the compiled files a couple of times. The error message was
super puzzling, took me a while to figure that out.
Kudos goes to cbaines, he helped me figuring out the inferior part of
this setup!
New Guix System LiveCDs (console + desktop) for manual installation!
Pre-built images are available for x86_64-linux:
https://files.boiledscript.com/livecd/
Configurations and more information for these images are in my dotfiles repository (see the "LiveCDs" section). You can build them on your own!
make update-channels live
Typical steps for the manual installation of Guix System are available in Guix manual.
Quoting the introduction:
GNU Guix is a package management tool for and distribution of the GNU system. Guix makes it easy for unprivileged users to install, upgrade, or remove software packages, to roll back to a previous package set, to build packages from source, and generally assists with the creation and maintenance of software environments.
The manual covers many interesting topics and Getting Started is a good entry point. Git repository of GNU Guix is hosted on Codeberg, you can reach the community via various communication channels as well.The LiveCDs includes proprietary firmwares from the Nonguix channel, you can get help for relevant topics from their communication channels ;)
#guix #nonguix #gnulinux #linux
So guys I'm using an old 2014 laptop to try out #GUIX and I want nonfree kernel stuff, so I want to add #nonguix and I noticed a couple things... the first is that the nonguix releases don't actually have any install images all the way back to Dec 2024 https://github.com/SystemCrafters/guix-installer/releases
Second is, even that install image doesn't seem to set up nonguix channels after install? I'm not sure actually.
Third is if you're manually setting up, you need to read the nonguix README all the way to the bottom