Subject: Re: bug#27386: offloading documentation and env

From: ng0 <[email-masked]>
Date: Mon, 26 Jun 2017 21:15:11 +0000

Ludovic Courtès transcribed 2.1K bytes:
> ng0 <[email-masked]> 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 [email-masked]:22555/…> …)
> > In ssh/dist/node.scm:
> >     397:8  0 (node-eval #<node [email-masked]: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. It can be in my users loadpath, but the ssh environment is
different. Comparable to how you only get scp when you put
openssh into the global (packages) and this is also mentioned nowhere.

In other words: What you get in the loadpath when you are a local user,
logged in, differs from what you get in the loadpath when you want to
get the loadpath directly from an command run through ssh connection.

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

> 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.
> 
> (It’s unfortunate that setting up offloading remains error-prone, but
> that’s a different story!).
> 
> HTH,
> Ludo’.

-- 
ng0
OpenPG: A88C8ADD129828D7EAC02E52E22F9BBFEE348588
infotropique: https://www.infotropique.org
personal: https://ng-0.github.io https://krosos.org/