Subject: "Running Guix in a Virtual Machine" documentation unclear/incomplete/wrong

From: Ian Eure <[email-masked]>
Date: Mon, 05 Dec 2022 14:02:43 -0800

I’m trying to explore Guix System by running it in a VM on my 
computer which runs Debian.  I’m interested in some of the Guix 
ideas, but not ready to do a bare-metal install.

I found the download page[1] and got a copy of the QEMU image, 
then clicked "Installation instructions"[2].  These instructions 
didn’t work, because they’re incomplete and/or unclear and/or 
wrong and/or not really installation instructions in the way one 
might assume.  Since I don’t really know anything about Guix 
(which is why I’m reading the documentation and test driving it in 
a VM), I’m not sure which one-or-more of these it may be.

Specifically:

> To enable SSH inside a VM you need to add an SSH server like 
> openssh-service-type to your VM (see openssh-service-type).

The documentation doesn’t say *how* to do that.  The 
openssh-service-type link[3] takes me to a large page of code 
documentation for every possible networking service, instead of 
the openssh-service-type one specifically.  This documentation 
describes *what* the service type and its many configuration 
options is, but is silent on *how* to make use of it.

It continues:

> In addition you need to forward the SSH port, 22 by default, to 
> the host. You can do this with
> $(guix system vm config.scm) -nic 
> user,model=virtio-net-pci,hostfwd=tcp::10022-:22

I’m really not sure what this is supposed to be doing.  It can’t 
run on my Debian host, since there’s no guix command.  It errors 
inside the VM, since it can’t find a config.scm file; and I don’t 
see an obvious config.scm file anywhere inside the VM that it 
might be looking for.

I *suspect* that this documentation is actually targeted at 
running a Guix System VM on an existing Guix host.  Which is a 
chicken-and-egg problem, if I’ve already installed Guix, I don’t 
need to follow instructions to install it.

[1]: https://guix.gnu.org/en/download/
[2]: 
https://guix.gnu.org/manual/en/html_node/Running-Guix-in-a-VM.html
[3]: 
https://guix.gnu.org/manual/en/html_node/Networking-Services.html