Using guix package manager in qubes

Anybody doing it? I am talking about using guix for installing packages on a debian-12, whonix-17, etc qube (appVM). The discussion on the forum so far seems to have been around using guix inside standaloneVMs.

As far as I understand from watching a few guix package manager videos on youtube, guix creates a directory under /gnu/store/. Since this is outside the /home/user/ directory, I am assuming that this is a problem for using guix as a package manager inside a qube.

Any comments?

This can be useful in getting the guix dirs persistent in qubes

http://qubesosfasa4zl44o4tws22di6kepyzfeqv3tg4e3ztknltfxqrymdad.onion/doc/bind-dirs/

Long story short, since it seems like guix package manager writes to /gnu/store/ directory, in normal qubes, the changes in there don’t survive a reboot. But, turning that dir in a bind-dir seems to make it survive a reboot, and enable using guix inside a qube.

Also related topics:

It should works exactly like for Nix, except the path is /gnu/ instead of /nix/.

Guix is an old fork of Nix, but they maintained the architecture.

1 Like

You might also want to look into the guix pack command. The --relocatable flag will let you install Guix packages to your home directory (though I’m not sure if substitutes will work with this). -f squashfs will save the packages to a disk image and you should be able to automatically mount it in your /rw/config/rc.local (in theory, I haven’t tested this).

necroing this thread. I am looking specifically for using guix package manager that I install from debian-12 apt repos for the purpose of deterministically compiling monero binaries from the monero source code.

Afaik, guix uses /gnu/store directory to store packages, etc., which is not feasible to use in an appVM (aka, qube). I don’t want to use guix package manager in my debian templates either (I don’t want the changes done by guix to propagate to other qubes, nor do I want to add one more template to my templates).

Anybody have any ideas? With flatpak, for example, I can use flatpak --user install to install the packages to my /home/user/ directory, and confine its efects to a single qube of mine. I wish guix package manager also allowed something similar.

You can use bind-dirs like I explained for nix (which uses /nix/store) Solene'% : How to install Nix in a Qubes OS AppVM