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

From: [email-masked] (Ludovic Courtès)
Date: Tue, 27 Jun 2017 15:39:30 +0200

ng0 <[email-masked]> skribis:

> 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.

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?

HTH,
Ludo’.