From mboxrd@z Thu Jan 1 00:00:00 1970 From: Divan Santana Subject: bug#27386: offloading documentation and env Date: Thu, 28 Sep 2017 21:40:49 +0200 Message-ID: <87wp4iehmm.fsf@santanas.co.za> References: <20170615170552.n7y5cxquqozpnesj@abyayala> <20170615211132.clkaslffc4a3l5bw@abyayala> <20170615221902.5ubbhriynb7wozrz@abyayala> <20170615223456.z5w2oaxifbah2ak2@abyayala> <87podq7cae.fsf@gnu.org> <20170626211511.ox5smekycmqz2vc3@abyayala> <87injh5z3h.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:60816) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dxpN7-00019J-Sq for bug-guix@gnu.org; Fri, 29 Sep 2017 03:06:07 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dxpN4-0003KF-Ii for bug-guix@gnu.org; Fri, 29 Sep 2017 03:06:05 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:57012) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dxpN4-0003Jz-5D for bug-guix@gnu.org; Fri, 29 Sep 2017 03:06:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dxpN3-0004nn-QU for bug-guix@gnu.org; Fri, 29 Sep 2017 03:06:01 -0400 Sender: "Debbugs-submit" Resent-Message-ID: In-reply-to: <87injh5z3h.fsf@gnu.org> List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org Sender: "bug-Guix" To: ludo@gnu.org Cc: 27386@debbugs.gnu.org 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=C3=A8s writes: > ng0 skribis: > >> Ludovic Court=C3=A8s transcribed 2.1K bytes: >>> ng0 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/gui= x/machines.scm'... >>> > guix offload: '192.168.1.179' is running guile (GNU Guile) 2.2.2 >>> > Backtrace: >>> > 7 (primitive-load "/gnu/store/js4ml3w20ysh4znp9wl0da0ljji= =E2=80=A6") >>> > In guix/ui.scm: >>> > 1321:8 6 (run-guix-command _ . _) >>> > In ice-9/boot-9.scm: >>> > 837:9 5 (catch srfi-34 # =E2=80=A6) >>> > 837:9 4 (catch system-error # =E2=80=A6) >>> > In guix/scripts/offload.scm: >>> > 611:6 3 (check-machine-availability _ _) >>> > In srfi/srfi-1.scm: >>> > 656:11 2 (for-each # = =E2=80=A6) >>> > In guix/scripts/offload.scm: >>> > 543:2 1 (assert-node-has-guix # =E2=80=A6) >>> > In ssh/dist/node.scm: >>> > 397:8 0 (node-eval # =E2=80=A6) >>> > >>> > 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=3D/home/ludo/.guix-profile/lib/guile/2.2/sit= e-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/s= ite/2.2 >>> GUILE_LOAD_PATH=3D/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=E2=80=99ll 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 admin@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=3D/run/current-system/profile/lib/guile/2.2/site-c= cache:/run/current-system/profile/share/guile/site/2.2 GUILE_LOAD_PATH=3D/run/current-system/profile/share/guile/site/2.2 admin@guixsd ~$ -- Divan