So I'm trying to set up the same offloading and followed the documentation and seem to have resulted in the same issue as ng0.
Ludovic Courtès <l...@gnu.org> writes: > ng0 <n...@infotropique.org> skribis: > >> Ludovic Courtès transcribed 2.1K bytes: >>> ng0 <n...@infotropique.org> skribis: >>> >>> > And this is from master running an offloading test as it is right now. >>> > Both ends have GuixSD. >>> > >>> > user@abyayala ~$ guix offload test >>> > guix offload: testing 1 build machines defined in >>> > '/usr/local/etc/guix/machines.scm'... >>> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2 >>> > Backtrace: >>> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljjiâ¦") >>> > In guix/ui.scm: >>> > 1321:8 6 (run-guix-command _ . _) >>> > In ice-9/boot-9.scm: >>> > 837:9 5 (catch srfi-34 #<procedure 1cc6cc0 at guix/ui.scm:450:â¦> >>> > â¦) >>> > 837:9 4 (catch system-error #<procedure 1cc6ce0 at guix/scriptâ¦> >>> > â¦) >>> > In guix/scripts/offload.scm: >>> > 611:6 3 (check-machine-availability _ _) >>> > In srfi/srfi-1.scm: >>> > 656:11 2 (for-each #<procedure assert-node-has-guix (node name)> â¦) >>> > In guix/scripts/offload.scm: >>> > 543:2 1 (assert-node-has-guix #<node user@192.168.1.179:22555/â¦> >>> > â¦) >>> > In ssh/dist/node.scm: >>> > 397:8 0 (node-eval #<node user@192.168.1.179:22555/37146 1ceaaâ¦> >>> > â¦) >>> > >>> > ssh/dist/node.scm:397:8: In procedure node-eval: >>> > ssh/dist/node.scm:397:8: Throw to key `node-repl-error' with args >>> > `("Evaluation failed" "scheme@(guile-user)> While compiling >>> > expression:\nERROR: no code for module (guix)" ())'. >>> >>> This means that you need to make sure that the target machine has (guix) >>> in its load path. >> >> I assume that you have read the rest of my messages and not just skipped >> through them. I thought my messages were clear that (guix) is in the >> loadpath, but only *locally* on the machine, not when connecting to it >> via ssh. > > Right, this is why I suggested testing that *with a non-interactive > connection*, as in: > > ssh HOST env | grep GUILE > >> So I'm guessing here: the not so obvious yet very obvious solution is to >> put guix into the global (packages)? >> Where global means the canonical /etc/config.scm > > On GuixSD, Guix is always in the global profile. > >>> The test is to run something like: >>> >>> $ ssh localhost env |grep GUILE_ >>> >>> GUILE_LOAD_COMPILED_PATH=/home/ludo/.guix-profile/lib/guile/2.2/site-ccache:/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2 >>> >>> GUILE_LOAD_PATH=/home/ludo/.guix-profile/share/guile/site/2.2:/run/current-system/profile/share/guile/site/2.2 >>> >>> and you should see /run/current-system/profile/share/guile/site/2.2. If >>> not, youâll have to add it somehow. > > What does the above give for you? So guixsd.santanas.co.za is my build system VM. Laptop, is a guixsd system I want to not compile code, and rather offload. root@laptop ~# ssh ad...@guixsd.santanas.co.za env |grep GUILE_ Returns nothing. However, an interactive session has the correct environment variables. So I suppose one could set this via the .zshenv or .bash_profile . Though I'm wondering what others do? Secondly, should the official docs be updated? root@guixsd ~# su - admin admin@guixsd ~$ env|grep GUILE_ GUILE_LOAD_COMPILED_PATH=/run/current-system/profile/lib/guile/2.2/site-ccache:/run/current-system/profile/share/guile/site/2.2 GUILE_LOAD_PATH=/run/current-system/profile/share/guile/site/2.2 admin@guixsd ~$ -- Divan