all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Bootstrapping Guix on HPC without Root
@ 2017-07-07  2:51 Wm Salt Hale
  2017-07-08  8:31 ` Ricardo Wurmus
  0 siblings, 1 reply; 5+ messages in thread
From: Wm Salt Hale @ 2017-07-07  2:51 UTC (permalink / raw)
  To: help-guix

Hello,

I have been attempting to install Guix on the University of Washington's
HPC using a modified bootstrapping script based on
https://github.com/pjotrp/nix-no-root

Unfortunately, after fighting through dependency hell and reaching the
configure step, I've hit another wall that seems to be new territory.

Our build server does not have network access, so when I try to `make`
this is spit out:

```
$ make
make  all-recursive
make[1]: Entering directory `/com/guix/guix-boot/guix-0.13.0'
Making all in po/guix
make[2]: Entering directory `/com/guix/guix-boot/guix-0.13.0/po/guix'
make[2]: Leaving directory `/com/guix/guix-boot/guix-0.13.0/po/guix'
Making all in po/packages
make[2]: Entering directory
`/com/guix/guix-boot/guix-0.13.0/po/packages' make[2]: Leaving
directory `/com/guix/guix-boot/guix-0.13.0/po/packages' make[2]:
Entering directory `/com/guix/guix-boot/guix-0.13.0' Compiling Scheme
modules... LOAD     (guix config)
;;; note: source file ./guix/config.scm
;;;       newer than
compiled /com/guix/guix-boot/guix-0.13.0/guix/config.go GUILEC
guix/config.go DL
gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz downloading
file `gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz' from
`http://alpha.gnu.org/gnu/guix/bootstrap/aarch64-linux/20170217/guile-2.0.14.tar.xz'...
Backtrace: In ice-9/boot-9.scm:
 160: 10 [catch #t #<catch-closure 1eda040> ...]
In unknown file:
   ?: 9 [apply-smob/1 #<catch-closure 1eda040>]
In ice-9/boot-9.scm:
  66: 8 [call-with-prompt prompt0 ...]
In ice-9/eval.scm:
 432: 7 [eval # #]
In ice-9/boot-9.scm:
2412: 6 [save-module-excursion #<procedure 2048800 at
ice-9/boot-9.scm:4084:3 ()>] 4091: 5 [#<procedure 2048800 at
ice-9/boot-9.scm:4084:3 ()>] 1734: 4 [%start-stack load-stack ...]
1739: 3 [#<procedure 205aed0 ()>]
In unknown file:
   ?: 2 [primitive-load
"/com/guix/guix-boot/guix-0.13.0/./build-aux/download.scm"] In
ice-9/r4rs.scm: 39: 1 [call-with-values #<procedure 26949c0 at
ice-9/eval.scm:416:20 ()> ...] In web/client.scm:
 250: 0 [http-get # # #f ...]

web/client.scm:250:25: In procedure http-get:
web/client.scm:250:25: In procedure connect: Network is unreachable
make[2]: *** [gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz]
Error 1 make[2]: Leaving directory `/com/guix/guix-boot/guix-0.13.0'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/com/guix/guix-boot/guix-0.13.0'
make: *** [all] Error 2
```

I am wondering if there is a way to pre-download this (and any other)
requirements before make is run?

Perhaps there is a way to run the download stages of the build script
while on our login node and then switch over to compile on the build
node?

Maybe there's another solution that I'm not seeing.

Any assistance or direction would be greatly appreciated!

--
Salt

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bootstrapping Guix on HPC without Root
  2017-07-07  2:51 Bootstrapping Guix on HPC without Root Wm Salt Hale
@ 2017-07-08  8:31 ` Ricardo Wurmus
  0 siblings, 0 replies; 5+ messages in thread
From: Ricardo Wurmus @ 2017-07-08  8:31 UTC (permalink / raw)
  To: Wm Salt Hale; +Cc: help-guix


Hi,

> Unfortunately, after fighting through dependency hell and reaching the
> configure step, I've hit another wall that seems to be new territory.

the recommended way to get Guix is to unpack the release tarball, which
comes with a pre-filled /gnu/store.

> Our build server does not have network access […]

How is the build server going to download source tarballs for packages
it needs to build then?

> gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz downloading
> file `gnu/packages/bootstrap/aarch64-linux/guile-2.0.14.tar.xz' from
> `http://alpha.gnu.org/gnu/guix/bootstrap/aarch64-linux/20170217/guile-2.0.14.tar.xz'...
[…]
> I am wondering if there is a way to pre-download this (and any other)
> requirements before make is run?

These are the bootstrap binaries and you can download them manually on
another machine, and then copy them over.

-- 
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Bootstrapping Guix on HPC without Root
@ 2017-07-13  0:46 Wm Salt Hale
  2017-07-13  7:40 ` Pjotr Prins
  2017-07-17 13:48 ` Ludovic Courtès
  0 siblings, 2 replies; 5+ messages in thread
From: Wm Salt Hale @ 2017-07-13  0:46 UTC (permalink / raw)
  To: guix-devel

Hello,

I have been attempting to install Guix on the University of
Washington's HPC using a modified bootstrapping script based on
https://github.com/pjotrp/nix-no-root

The script can currently be found here (to be forked and pushed to GH
when verified as working):

https://communitydata.cc/~salt/guix-bootstrap.sh


This produces a semi-working installation, it can spit out a version
and spend a good deal of time trying to complete `guix pull`

The first run was logged via `|& tee -a`

https://communitydata.cc/~salt/guix_first_run.log


As you can see, the build fails. Subsequent runs fail at the same
point. I've tried a variety of debugging steps including: side-load
libstdc++ directly from the Store with not effect, reduce number of
cores daemon is allowed, and imitate linux-2.6.

Any assistance or direction would be greatly appreciated!

--
Wm Salt Hale

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bootstrapping Guix on HPC without Root
  2017-07-13  0:46 Wm Salt Hale
@ 2017-07-13  7:40 ` Pjotr Prins
  2017-07-17 13:48 ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Pjotr Prins @ 2017-07-13  7:40 UTC (permalink / raw)
  To: Wm Salt Hale; +Cc: guix-devel

Just read the script. I think this is actually the hard way of doing
it and 'guix pull' should not work if you are not on /gnu/store.

How about using proot (Ludo has some info here) and to bootstrap guix
instead with guix and configure the build system like 

   https://github.com/pjotrp/guix-notes/blob/master/INSTALL.org#building-gnu-guix-from-source-using-guix

That way you get a reproducible build environment and then build guix
in a non-root path. I have not tried this yet, but I can try it this
weekend (I am on the road right now).

Pj.

On Wed, Jul 12, 2017 at 05:46:15PM -0700, Wm Salt Hale wrote:
> Hello,
> 
> I have been attempting to install Guix on the University of
> Washington's HPC using a modified bootstrapping script based on
> https://github.com/pjotrp/nix-no-root
> 
> The script can currently be found here (to be forked and pushed to GH
> when verified as working):
> 
> https://communitydata.cc/~salt/guix-bootstrap.sh
> 
> 
> This produces a semi-working installation, it can spit out a version
> and spend a good deal of time trying to complete `guix pull`
> 
> The first run was logged via `|& tee -a`
> 
> https://communitydata.cc/~salt/guix_first_run.log
> 
> 
> As you can see, the build fails. Subsequent runs fail at the same
> point. I've tried a variety of debugging steps including: side-load
> libstdc++ directly from the Store with not effect, reduce number of
> cores daemon is allowed, and imitate linux-2.6.
> 
> Any assistance or direction would be greatly appreciated!
> 
> --
> Wm Salt Hale

-- 

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: Bootstrapping Guix on HPC without Root
  2017-07-13  0:46 Wm Salt Hale
  2017-07-13  7:40 ` Pjotr Prins
@ 2017-07-17 13:48 ` Ludovic Courtès
  1 sibling, 0 replies; 5+ messages in thread
From: Ludovic Courtès @ 2017-07-17 13:48 UTC (permalink / raw)
  To: Wm Salt Hale; +Cc: guix-devel, Pjotr Prins

Hello!

Wm Salt Hale <salt@altsalt.net> skribis:

> I have been attempting to install Guix on the University of
> Washington's HPC using a modified bootstrapping script based on
> https://github.com/pjotrp/nix-no-root
>
> The script can currently be found here (to be forked and pushed to GH
> when verified as working):
>
> https://communitydata.cc/~salt/guix-bootstrap.sh
>
>
> This produces a semi-working installation, it can spit out a version
> and spend a good deal of time trying to complete `guix pull`
>
> The first run was logged via `|& tee -a`
>
> https://communitydata.cc/~salt/guix_first_run.log

For the sake of those not following links ;-), the build error is:

--8<---------------cut here---------------start------------->8---
    build/genhooks.o build/errors.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
g++   -g -DIN_GCC    -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wno-format -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common  -DHAVE_CONFIG_H -DGENERATOR_FILE -Wl,-rpath=/com/guix/guix/store/qrxkb00z8qmj0aql4gd8zcmf3ldvz583-glibc-2.25/lib -Wl,-dynamic-linker -Wl,/com/guix/guix/store/qrxkb00z8qmj0aql4gd8zcmf3ldvz583-glibc-2.25/lib/ld-linux-x86-64.so.2 -L/com/guix/guix/store/89f8avya4dzh8jrvzxw1q9pf27af702h-libstdc++-5.4.0/lib -L/com/guix/guix/store/yr6nya39hzwx960y8nbiqq91w5yk842x-zlib-1.2.11/lib -Wl,-rpath=/com/guix/guix/store/yr6nya39hzwx960y8nbiqq91w5yk842x-zlib-1.2.11/lib -o build/genchecksum \
    build/genchecksum.o ../build-x86_64-unknown-linux-gnu/libiberty/libiberty.a
x86_64-guix-linux-gnu-ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:2613: build/genhooks] Error 1
make[3]: *** Waiting for unfinished jobs....
x86_64-guix-linux-gnu-ld: cannot find -lstdc++
collect2: error: ld returned 1 exit status
make[3]: *** [Makefile:2613: build/genchecksum] Error 1
--8<---------------cut here---------------end--------------->8---

The ‘guix-bootstrap.sh’ script above runs guix-daemon with
‘--disable-chroot’, which means build processes are not being isolated.
I’m fairly confident that this is the root cause of the problem; for
instance because GCC’s build processes end up picking a few things from
/usr/bin instead of /gnu/store.  (ISTR Roel Janssen experienced a
similar issue back then, maybe Roel can comment.)

Pjotr mentioned PRoot.  An intermediate solution would be to build and
“pack” the software you want to run on your laptop (any machine where
Guix is already installed), to send it to the HPC machine, and to run it
there with PRoot.  I gave instructions at:

  https://lists.gnu.org/archive/html/guix-devel/2017-05/msg00182.html

I know Pjotr has been experimenting with another nice option, I’ll let
him explain.  :-)

HTH!

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-07-17 13:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-07  2:51 Bootstrapping Guix on HPC without Root Wm Salt Hale
2017-07-08  8:31 ` Ricardo Wurmus
  -- strict thread matches above, loose matches on Subject: below --
2017-07-13  0:46 Wm Salt Hale
2017-07-13  7:40 ` Pjotr Prins
2017-07-17 13:48 ` Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.