unofficial mirror of guix-science@gnu.org 
 help / color / mirror / Atom feed
* Introducing Guix to HPC at my institution
@ 2021-03-15  3:12 Sébastien Lerique
  2021-03-15 13:47 ` zimoun
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-03-15  3:12 UTC (permalink / raw)
  To: guix-science

Hi all,

I'm interested in introducing Guix to the HPC team at my 
institution. There's quite some content on the Guix-HPC blog [0], 
but I was wondering if people here have stories about how such 
conversations went for them, which arguments worked best, which 
didn't.

As a first step I would like to discuss with the sysadmins if they 
would consider activating user namespaces so users can play 
around. Aside from [1] and [2], are there any updated discussions 
about this topic, e.g. why to do it or why not?

Best,
Sébastien


[0] https://hpc.guix.info/blog/
[1] 
https://hpc.guix.info/blog/2017/10/using-guix-without-being-root/
[2] 
https://hpc.guix.info/blog/2017/09/reproducibility-and-root-privileges/


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

* Re: Introducing Guix to HPC at my institution
  2021-03-15  3:12 Introducing Guix to HPC at my institution Sébastien Lerique
@ 2021-03-15 13:47 ` zimoun
  2021-03-16  1:54   ` Sébastien Lerique
  0 siblings, 1 reply; 16+ messages in thread
From: zimoun @ 2021-03-15 13:47 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science

Hi Sébastien,

On Mon, 15 Mar 2021 at 06:19, Sébastien Lerique <sl@eauchat.org> wrote:

> I'm interested in introducing Guix to the HPC team at my
> institution. There's quite some content on the Guix-HPC blog [0],
> but I was wondering if people here have stories about how such
> conversations went for them, which arguments worked best, which
> didn't.

Thanks for your interest!

Currently, there is no such stories, AFAIK.  We discussed something
like that when releasing v1.2 but we had not been able to make it.

Well, if you are French speaker, a two mornings* workshop is in the
pipe.  The announce should come really soon.  The idea is sharing
feedback with other users from sysadmin to researcher.

*morning in metropolitan France meaning. :-)

> As a first step I would like to discuss with the sysadmins if they
> would consider activating user namespaces so users can play
> around. Aside from [1] and [2], are there any updated discussions
> about this topic, e.g. why to do it or why not?

You mean to run "bundles" on computers that do not have Guix installed, right?
Well, the answer "qui peut le plus peut le moins" is maybe not
satisfactoring... if you have the choice to do it, you should.  Even,
if you have the choice to install Guix (the package manager), you also
should.


Cheers,
simon


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

* Re: Introducing Guix to HPC at my institution
  2021-03-15 13:47 ` zimoun
@ 2021-03-16  1:54   ` Sébastien Lerique
  2021-03-16  8:06     ` zimoun
  2021-03-16  9:05     ` Ludovic Courtès
  0 siblings, 2 replies; 16+ messages in thread
From: Sébastien Lerique @ 2021-03-16  1:54 UTC (permalink / raw)
  To: zimoun; +Cc: guix-science

Hi Simon,

Thanks for your answer!

On 15 Mar 2021 at 22:47, zimoun <zimon.toutoune@gmail.com> wrote:
> Well, if you are French speaker, a two mornings* workshop is in 
> the
> pipe.  The announce should come really soon.  The idea is 
> sharing
> feedback with other users from sysadmin to researcher.
>
> *morning in metropolitan France meaning. :-)

I am French, I'll be very happy to attend if I can! I live in 
Japan now though, so I guess I'll miss parts. Are you planning to 
record the workshop?

Another thought: given Ludo's position, I am imagining that Inria 
Bordeaux runs Guix on some of their infrastructure, is that the 
case? If so, can you share any details about how that came to 
happen?

>> As a first step I would like to discuss with the sysadmins if 
>> they
>> would consider activating user namespaces so users can play
>> around. Aside from [1] and [2], are there any updated 
>> discussions
>> about this topic, e.g. why to do it or why not?
>
> You mean to run "bundles" on computers that do not have Guix 
> installed, right?
> Well, the answer "qui peut le plus peut le moins" is maybe not
> satisfactoring... if you have the choice to do it, you should. 
> Even,
> if you have the choice to install Guix (the package manager), 
> you also
> should.

Yes I meant that. They run CentOS 8, so convincing them to run a 
build daemon will not be as simple as `apt install guix`, but 
we'll see how the conversation goes :)

I'll write back here in a few days once I've thought about how to 
present things to the sysadmins. In the meantime, any feedback on 
past experience is very welcome!


Sébastien


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

* Re: Introducing Guix to HPC at my institution
  2021-03-16  1:54   ` Sébastien Lerique
@ 2021-03-16  8:06     ` zimoun
  2021-03-16  9:05     ` Ludovic Courtès
  1 sibling, 0 replies; 16+ messages in thread
From: zimoun @ 2021-03-16  8:06 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science

Hi Sábastien,

On Tue, 16 Mar 2021 at 10:54, Sébastien Lerique <sl@eauchat.org> wrote:

> On 15 Mar 2021 at 22:47, zimoun <zimon.toutoune@gmail.com> wrote:

> I am French, I'll be very happy to attend if I can! I live in
> Japan now though, so I guess I'll miss parts. Are you planning to
> record the workshop?

Cool!  If I remember correctly, there is some Japaneses’s users.  Do not
hesitate to roam on #guix (irc.freenode.net) or drop an email to
help-guix. :-)

We have not discussed the record of the workshop yet.  Keep you in
touch.

Well, I do not know if it is visible all around the world, here some
materials: 

<https://calcul.math.cnrs.fr/2021-01-anf-ust4hpc-2021.html#programme>

If I may, I would recommend the Konrad’s talk because it explains why
reproducibility matters for scientific reproducibility.  The next talk
by Ludo provides good connections with these principles and how to do in
practise.  I also recommend the 2 last talks by Francois Rué et Florent
Pruvost.  Other materials are worth to watch when speaking about
reproducibility, for sure, but they are not with a Guix angle.  Last, I
did not run the «TPs» so I cannot tell more.

Ludo’s did a nice talk at FOSDEM 2019 about distro:

<https://archive.fosdem.org/2019/schedule/event/gnu_guix_new_approach_to_software_distribution/>

well, he presents some arguments why and how Guix addresses the
challenge.  Moreover, here

<https://git.savannah.gnu.org/cgit/guix/maintenance.git/tree/talks>

you can find some raw materials used in various talks.  Especially one
at CERN in 2018 for instance:

<https://cds.cern.ch/record/2316926>



> Another thought: given Ludo's position, I am imagining that Inria
> Bordeaux runs Guix on some of their infrastructure, is that the
> case? If so, can you share any details about how that came to
> happen?

I cannot share how it runs at INRIA Bordeaux since I am far from my
beloved South West. :-) Well, some words how it runs at my place in a
small team of a Research Institute doing stuff in the biomedical field.

First, I am trained in apply maths and I studied wave propagation
(numerical methods, linear solver, etc.).  At the time, I am using
mainly Conda and some modulefiles prepared by the cluster’s team of the
different institutes I were.

Then, I traveled back to home and found a permanent position in this
Institute.  And I deal with Biologists with few skills on how to run
their computations.  I inherited a small cluster and couple of strong
desktop machines with an history.  Therefore, at the beginning, I was
doing the modulefiles by hand… then I said stop!  It does not scale
since I am alone and I felt as reinventing the wheel: repackaging
everything by hand.  Conda is still an option but Conda is doing wrong
at different levels.

I was following Guix, as the Emacs of distro. :-) And on Dec. 2018, Ludo
organized a day in Paris and I attended.  Then I installed Guix at work
on my main desktop and another remote strong desktop.  I teach Guix to
the new users and almost support only Guix.  But you know how people
have their habits. :-) One and half year later (2020 is off, since I was
recovering from a sport’s injury), I convinced people to switch to Guix
and I am in the process to reinstall the small cluster (for historical
reasons, LTS and never upgraded with too old kernel and now impossible
to upgrade “for free”, whatever!).

On strong desktops (256G of RAM, 64 cores) running a classic distro as
Ubuntu or Debian, installing Guix on the top is straightforward.  I do
as much as I can on the machines I am in charge.

Why Guix?  Beyond reproducibility, it is easy to have R packages via
“guix import”, for instance.  For the record, a Medical Doctor is
writing their own packages.  Well, people are less waiting after me and
they install the packages they need.  Guix works from laptop to cluster,
the surprises are really mitigated compared to the other tools I know.
Last, for users a bit afraid by the command line, I pack a Docker image
all included for them. Now a lot of journals ask code and data and I
would like to convince people in my Institute that
channels.scm+manifest.scm capture and Docker is just the container, easy
to move from one place to another; it has not happened yet.  That’s why
I investigated in things like:

<https://yhetil.org/guix/86bldahz42.fsf@gmail.com>


Last, Guix is a Scheme library.  Aside the parenthesis which is just not
an issue for a good editor, being Lisp allows to easily hack in.  Once
one is a bit familiar with a Lisp (Emacs Lisp, Racket, Common Lisp,
whatever, not necessary Guile) by running a tutorial, it is relatively
easy to read the code and understand which part does what.  For
instance, my first contribution after the usual packaging is fixing a
minor bug in the relevance scoring function.  I never understood Conda
enough to be able to fix any annoyance that I had.



> Yes I meant that. They run CentOS 8, so convincing them to run a
> build daemon will not be as simple as `apt install guix`, but
> we'll see how the conversation goes :)

Good luck!  Please report their feedback if they are not convinced.


> I'll write back here in a few days once I've thought about how to
> present things to the sysadmins. In the meantime, any feedback on
> past experience is very welcome!

I guess you already know the section «Clusters Deployment»:

<https://hpc.guix.info/about/>

Cheers,
simon


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

* Re: Introducing Guix to HPC at my institution
  2021-03-16  1:54   ` Sébastien Lerique
  2021-03-16  8:06     ` zimoun
@ 2021-03-16  9:05     ` Ludovic Courtès
  2021-03-18  2:26       ` Sébastien Lerique
  1 sibling, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2021-03-16  9:05 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: zimoun, guix-science

Hi Sébastien,

Sébastien Lerique <sl@eauchat.org> skribis:

> Another thought: given Ludo's position, I am imagining that Inria
> Bordeaux runs Guix on some of their infrastructure, is that the 
> case? If so, can you share any details about how that came to happen?

I’ve been working with HPC people at Inria and back then I was working
on Guix in my spare time.  The HPC folks had been using “environment
modules” forever but were looking for a solution that would provide
automation, primarily, and optionally some kind of reproducibility.

They invested into Spack first (actually based on my recommendation; at
the time I wasn’t sure Guix could meet all their requirements) and grew
dissatisfied after a couple of years, in particular because
reproducibility became a more important factor for them.  It’s also
about the time when Ricardo and I published
<https://hal.inria.fr/hal-01161771/en> (Ricardo already had experience
with Guix in HPC and surely has an interesting story to share :-)).

We kept discussing these matters, together with sysadmins of the local
cluster, who were also looking for a solution they could offer users in
addition to modules.  Eventually Guix was installed on that cluster and
local HPC teams got into it at that point.

That’s my story!  :-)

It’s hopefully not the end of the story though.  There are other
clusters listed at <https://hpc.guix.info/about/> that provide Guix.
We’re discussing with others in France, but these things take time…

> Yes I meant that. They run CentOS 8, so convincing them to run a build
> daemon will not be as simple as `apt install guix`, but we'll see how
> the conversation goes :)

Tools like modules, Conda, Spack, and “containers” (Docker, Singularity)
are quite entrenched now in HPC.  All these tools are relatively new so
proposing yet another tool can be a hard sell.

Also, cluster sysadmins tend to be conservative and don’t like the idea
of having a “daemon running as root”.

But my impression is that there’s increasing awareness of the
limitations of these tools.  It used to be that people would disagree
when we said in talks that Docker/Singularity images are not
reproducible; now this is more widely understood.  Likewise for the
deployment issues around Jupyter and workflow languages.

And there’s not a zillion tools out there to address these issues.  :-)

Good luck with your endeavors!

Ludo’.


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

* Re: Introducing Guix to HPC at my institution
  2021-03-16  9:05     ` Ludovic Courtès
@ 2021-03-18  2:26       ` Sébastien Lerique
  2021-03-26  8:22         ` Sébastien Lerique
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-03-18  2:26 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: zimoun, guix-science

Hi Ludo, Simon,

Thanks for these very interesting stories! That's a lot of 
resources too, I will be watching some of the talks you linked to 
over the coming days. I'm currently contacting people who might 
already feel a strong need for what Guix can offer, to see what 
would be the best way to introduce the topic to the sysadmins. Who 
knows, maybe my institution can also support the development of 
Guix in some way :)

Will be back once I have some progress or more questions.

Best,
Sébastien

On 16 Mar 2021 at 18:05, Ludovic Courtès 
<ludovic.courtes@inria.fr> wrote:

> Hi Sébastien,
>
> Sébastien Lerique <sl@eauchat.org> skribis:
>
>> Another thought: given Ludo's position, I am imagining that 
>> Inria
>> Bordeaux runs Guix on some of their infrastructure, is that the
>> case? If so, can you share any details about how that came to 
>> happen?
>
> I’ve been working with HPC people at Inria and back then I was 
> working
> on Guix in my spare time.  The HPC folks had been using 
> “environment
> modules” forever but were looking for a solution that would 
> provide
> automation, primarily, and optionally some kind of 
> reproducibility.
>
> They invested into Spack first (actually based on my 
> recommendation; at
> the time I wasn’t sure Guix could meet all their requirements) 
> and grew
> dissatisfied after a couple of years, in particular because
> reproducibility became a more important factor for them.  It’s 
> also
> about the time when Ricardo and I published
> <https://hal.inria.fr/hal-01161771/en> (Ricardo already had 
> experience
> with Guix in HPC and surely has an interesting story to share 
> :-)).
>
> We kept discussing these matters, together with sysadmins of the 
> local
> cluster, who were also looking for a solution they could offer 
> users in
> addition to modules.  Eventually Guix was installed on that 
> cluster and
> local HPC teams got into it at that point.
>
> That’s my story!  :-)
>
> It’s hopefully not the end of the story though.  There are other
> clusters listed at <https://hpc.guix.info/about/> that provide 
> Guix.
> We’re discussing with others in France, but these things take 
> time…
>
>> Yes I meant that. They run CentOS 8, so convincing them to run 
>> a build
>> daemon will not be as simple as `apt install guix`, but we'll 
>> see how
>> the conversation goes :)
>
> Tools like modules, Conda, Spack, and “containers” (Docker, 
> Singularity)
> are quite entrenched now in HPC.  All these tools are relatively 
> new so
> proposing yet another tool can be a hard sell.
>
> Also, cluster sysadmins tend to be conservative and don’t like 
> the idea
> of having a “daemon running as root”.
>
> But my impression is that there’s increasing awareness of the
> limitations of these tools.  It used to be that people would 
> disagree
> when we said in talks that Docker/Singularity images are not
> reproducible; now this is more widely understood.  Likewise for 
> the
> deployment issues around Jupyter and workflow languages.
>
> And there’s not a zillion tools out there to address these 
> issues.  :-)
>
> Good luck with your endeavors!
>
> Ludo’.


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

* Re: Introducing Guix to HPC at my institution
  2021-03-18  2:26       ` Sébastien Lerique
@ 2021-03-26  8:22         ` Sébastien Lerique
  2021-03-29 12:03           ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-03-26  8:22 UTC (permalink / raw)
  To: guix-science; +Cc: Ludovic Courtès, zimoun

Hi Ludo, Simon, all,

> Will be back once I have some progress or more questions.

It turns out the HPC cluster I have access to has user namespaces 
activated \o/, so I'm looking into getting things running as an 
unpriviliged user to show other people how useful Guix can be 
(before approaching higher levels in the administration).

I have been through the following notes:

https://hpc.guix.info/blog/2017/09/reproducibility-and-root-privileges/
https://hpc.guix.info/blog/2017/10/using-guix-without-being-root/
http://issues.guix.gnu.org/34494

and am now following Guix's binary installation inside a user 
namespace. After decompressing the binary distribution of guix 
inside `~/local-guix`, my naïve next step was `unshare -mrf chroot 
~/local-guix 
gnu/store/mmhimfwmmidf09jw1plw3aw1g1zn2nkh-bash-static-5.0.16/bin/bash`.

But my knowledge of linux namespaces is hindering my next steps 
:). A few questions:

- after setting $GUIX_PROFILE and sourcing 
  `/root/.config/guix/current`, running `guix` warns with:

  GC Warning: pthread_getattr_np or pthread_attr_getstack failed 
  for main thread
  GC Warning: Couldn't read /proc/stat

  The first warning I don't know what to do with. About the 
  second: should I be binding `/proc` somehow?

- is it possible to create build users inside the user-namespaced 
  chroot?

- last but not least, how would I go about sharing this setup with 
  other users on the cluster? Ideally I would like to have a 
  non-priviliged build daemon that other users can call on. (Is 
  there such a thing as kernel group namespaces?)

Is this the right way to go for running guix without being root, 
or is there a better way?

Thanks for any guidance you might provide!
Best,
Sébastien


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

* Re: Introducing Guix to HPC at my institution
  2021-03-26  8:22         ` Sébastien Lerique
@ 2021-03-29 12:03           ` Ludovic Courtès
  2021-03-30  1:54             ` Sébastien Lerique
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2021-03-29 12:03 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science, zimoun

Hi Sébastien,

Sébastien Lerique <sl@eauchat.org> skribis:

> It turns out the HPC cluster I have access to has user namespaces
> activated \o/, so I'm looking into getting things running as an 
> unpriviliged user to show other people how useful Guix can be (before
> approaching higher levels in the administration).

Good!

> and am now following Guix's binary installation inside a user
> namespace. After decompressing the binary distribution of guix 
> inside `~/local-guix`, my naïve next step was `unshare -mrf chroot
> ~/local-guix 
> gnu/store/mmhimfwmmidf09jw1plw3aw1g1zn2nkh-bash-static-5.0.16/bin/bash`.

Instead of installing the “regular” binary tarball inside a namespace,
it might be easier to create a tarball like so:

  guix pack -RR -S /bin=bin -S /etc=etc guix bash

… and to unpack the resulting tarball.

From there, you can run ./bin/sh to get a shell that “sees” /gnu/store.
You can then run:

  . ./etc/profile

And then, you should be able to run the daemon, like so:

  export GUIX_STATE_DIRECTORY=$HOME/.local/var/guix
  guix-daemon --disable-chroot &

(Adapted from
<https://lists.gnu.org/archive/html/guix-devel/2018-05/msg00139.html>.)

Does that work for you?

> But my knowledge of linux namespaces is hindering my next steps :). A
> few questions:
>
> - after setting $GUIX_PROFILE and sourcing
>   `/root/.config/guix/current`, running `guix` warns with:
>
>  GC Warning: pthread_getattr_np or pthread_attr_getstack failed   for
> main thread
>  GC Warning: Couldn't read /proc/stat
>
>  The first warning I don't know what to do with. About the   second:
> should I be binding `/proc` somehow?

Yes, you should expose /proc.  The wrappers created by ‘guix pack -RR’
in the example above bind-mount everything + /gnu/store, such that you
can’t tell the difference.

> - is it possible to create build users inside the user-namespaced
>   chroot?

No: you still have a single UID at hand, so there’s no way to allocate
new ones.

> - last but not least, how would I go about sharing this setup with
>   other users on the cluster? Ideally I would like to have a 
>  non-priviliged build daemon that other users can call on. (Is   there
> such a thing as kernel group namespaces?)

It’s not really sharable.  To share it, you would need some sort of a
shared trusted “proxy”; that’s precisely what guix-daemon is in normal
multi-user setups.

HTH!

Ludo’.


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

* Re: Introducing Guix to HPC at my institution
  2021-03-29 12:03           ` Ludovic Courtès
@ 2021-03-30  1:54             ` Sébastien Lerique
  2021-03-30  7:21               ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-03-30  1:54 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-science, zimoun

Hi Ludo,

Thanks for the help!

On 29 Mar 2021 at 21:03, Ludovic Courtès 
<ludovic.courtes@inria.fr> wrote:

> Instead of installing the “regular” binary tarball inside a 
> namespace,
> it might be easier to create a tarball like so:
>
>   guix pack -RR -S /bin=bin -S /etc=etc guix bash
>
> … and to unpack the resulting tarball.
>
> From there, you can run ./bin/sh to get a shell that “sees” 
> /gnu/store.
> You can then run:
>
>   . ./etc/profile
>
> And then, you should be able to run the daemon, like so:
>
>   export GUIX_STATE_DIRECTORY=$HOME/.local/var/guix
>   guix-daemon --disable-chroot &
>
> (Adapted from
> <https://lists.gnu.org/archive/html/guix-devel/2018-05/msg00139.html>.)
>
> Does that work for you?

Thanks! I `guix pack`'ed with a single -R since I shouldn't need 
PRoot, and had to add

  export GUIX_LOG_DIRECTORY=$HOME/.local/var/log

to the environment setup in order to start guix-daemon. Then `guix 
install hello` warned at the beginning with

  user with UID 7352 not found

and later failed with

  Backtrace:
  In ice-9/boot-9.scm:
    1736:10  6 (with-exception-handler _ _ #:unwind? _ # _)
  In unknown file:
             5 (apply-smob/0 #<thunk 7f5a32f85520>)
  In ice-9/boot-9.scm:
      718:2  4 (call-with-prompt _ _ #<procedure 
      default-prompt-handle…>)
  In ice-9/eval.scm:
      619:8  3 (_ #(#(#<directory (guile-user) 7f5a32f88c80>)))
  In guix/ui.scm:
    2164:12  2 (run-guix-command _ . _)
  In guix/scripts/offload.scm:
     782:21  1 (guix-offload "x86_64-linux" "0" "1" "0")
  In unknown file:
             0 (getpw 7352)

  ERROR: In procedure getpw:
  In procedure getpw: entry not found
  killing process 9106
  guix install: error: unexpected EOF reading a line

I'm guessing some part on the non-namespaced uids are leaking into 
the user namespace?


Another problem appeared for substitutes (as 'guix install hello' 
was rebuilding the world):

  $ guix archive --authorize < \
    /gnu/store/xb4szjambyi52bpnkjv080g2mlfqqpp0-profile/share/guix/ci.guix.gnu.org.pub
  guix archive: error: mkdir: Permission denied


I quickly went through `guix/scripts/pack.scm` and 
`gnu/packages/aux-files/run-in-namespace.c` to try and understand 
what `guix pack -R` does, but it looks like I need to learn more 
about namespaces before I can digest that. My high-level 
understanding from poking around is that the binaries from `guix 
pack -R` run inside a namespace where /gnu is bind-mounted (along 
with /proc, /dev, /sys, ...), but the rest of the host filesystem 
is still available, and other host processes can also be seen. 
Then, anything I run from inside the `guix pack`'ed bash inherits 
that namespace, which is what makes guix-daemon work.

If this is incorrect, could you maybe give a high-level overview 
of what it does? The documentation is a bit scarce on the topic 
(or I didn't find it).

I'm also wondering why `guix-daemon` must be invoked with 
`--disable-chroot`. Doesn't that make the reproducibility 
guarantees more brittle (according to the docs)?

>> - is it possible to create build users inside the 
>> user-namespaced
>>   chroot?
>
> No: you still have a single UID at hand, so there’s no way to 
> allocate
> new ones.
>
>> - last but not least, how would I go about sharing this setup 
>> with
>>   other users on the cluster? Ideally I would like to have a
>>  non-priviliged build daemon that other users can call on. (Is 
>>  there
>> such a thing as kernel group namespaces?)
>
> It’s not really sharable.  To share it, you would need some sort 
> of a
> shared trusted “proxy”; that’s precisely what guix-daemon is in 
> normal
> multi-user setups.

Ok. My use cases here are:
- trying to provide a setup that others can more-or-less easily 
  try out to get a feel for Guix on the HPC cluster (if possible 
  without duplicating /gnu/store), thus creating interest and user 
  support for later presenting the case to sysadmins / university 
  administration;
- getting to know the exact requirements that I would have to 
  convince sysadmins to agree to, with rationales/explanations for 
  the hardest-to-obtain. Getting them to run guix-daemon as root 
  is probably a lost case, so I'd like to explore everything else 
  that is possible.

So let's transform my two questions above into the two following:

1. what would be the list of requirements that explain why 
guix-daemon must run as root? What does each of those requirements 
accomplish?
2. knowing that my environment has user namespaces (and knowing 
that that may not be enough), would it be possible to set up 
guix-daemon as non-root with the assistance of a sysadmin (so say 
with root access during setup), with build users and all, and have 
it provide identical guarantees to a guix-daemon running as root? 
If not, why not, and could we work around that?


Thanks again for all the help!
Sébastien


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

* Re: Introducing Guix to HPC at my institution
  2021-03-30  1:54             ` Sébastien Lerique
@ 2021-03-30  7:21               ` Ludovic Courtès
  2021-03-31  5:23                 ` Sébastien Lerique
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2021-03-30  7:21 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science, zimoun

Hi Sébastien,

Sébastien Lerique <sl@eauchat.org> skribis:

> On 29 Mar 2021 at 21:03, Ludovic Courtès <ludovic.courtes@inria.fr>
> wrote:
>
>> Instead of installing the “regular” binary tarball inside a
>> namespace,
>> it might be easier to create a tarball like so:
>>
>>   guix pack -RR -S /bin=bin -S /etc=etc guix bash
>>
>> … and to unpack the resulting tarball.

[...]

> Thanks! I `guix pack`'ed with a single -R since I shouldn't need
> PRoot, and had to add
>
>  export GUIX_LOG_DIRECTORY=$HOME/.local/var/log

OK.

> to the environment setup in order to start guix-daemon. Then `guix
> install hello` warned at the beginning with
>
>  user with UID 7352 not found
>
> and later failed with
>
>  Backtrace:
>  In ice-9/boot-9.scm:
>    1736:10  6 (with-exception-handler _ _ #:unwind? _ # _)
>  In unknown file:
>             5 (apply-smob/0 #<thunk 7f5a32f85520>)
>  In ice-9/boot-9.scm:
>      718:2  4 (call-with-prompt _ _ #<procedure
>      default-prompt-handle…>)
>  In ice-9/eval.scm:
>      619:8  3 (_ #(#(#<directory (guile-user) 7f5a32f88c80>)))
>  In guix/ui.scm:
>    2164:12  2 (run-guix-command _ . _)
>  In guix/scripts/offload.scm:
>     782:21  1 (guix-offload "x86_64-linux" "0" "1" "0")
>  In unknown file:
>             0 (getpw 7352)
>
>  ERROR: In procedure getpw:
>  In procedure getpw: entry not found

Hmm could it be that nscd is not running, and that /etc/nsswitch.conf
specifies a “non-standard” NSS plugin, such as ‘sssd’?

  https://guix.gnu.org/manual/en/html_node/Application-Setup.html#Name-Service-Switch-1

Does ‘guix install hello --no-offload’ work around the issue?

> Another problem appeared for substitutes (as 'guix install hello' was
> rebuilding the world):
>
>  $ guix archive --authorize < \
>    /gnu/store/xb4szjambyi52bpnkjv080g2mlfqqpp0-profile/share/guix/ci.guix.gnu.org.pub
>  guix archive: error: mkdir: Permission denied

I guess it’s trying to write to /etc/guix.  You probably need to set
GUIX_STATE_DIRECTORY=$HOME/.local/var/guix here.

> I quickly went through `guix/scripts/pack.scm` and
> `gnu/packages/aux-files/run-in-namespace.c` to try and understand 
> what `guix pack -R` does, but it looks like I need to learn more about
> namespaces before I can digest that. My high-level understanding from
> poking around is that the binaries from `guix pack -R` run inside a
> namespace where /gnu is bind-mounted (along with /proc, /dev, /sys,
> ...), but the rest of the host filesystem is still available, and
> other host processes can also be seen. Then, anything I run from
> inside the `guix pack`'ed bash inherits that namespace, which is what
> makes guix-daemon work.

Correct!

> If this is incorrect, could you maybe give a high-level overview of
> what it does? The documentation is a bit scarce on the topic (or I
> didn't find it).

The design and implementation are documented in blog posts:

  https://guix.gnu.org/en/blog/2018/tarballs-the-ultimate-container-image-format/
  https://hpc.guix.info/blog/2020/05/faster-relocatable-packs-with-fakechroot/

> I'm also wondering why `guix-daemon` must be invoked with
> `--disable-chroot`. Doesn't that make the reproducibility 
> guarantees more brittle (according to the docs)?

True, but I think (?) that’s currently unavoidable in this setup…
though I forget why.  You might want to try without ‘--disable-chroot’.

> Ok. My use cases here are:
> - trying to provide a setup that others can more-or-less easily   try
>  out to get a feel for Guix on the HPC cluster (if possible   without
> duplicating /gnu/store), thus creating interest and user   support for
> later presenting the case to sysadmins / university   administration;

Safe sharing among users is not possible without a daemon coordinating
accesses to the store and acting as a trusted proxy.

> - getting to know the exact requirements that I would have to
>   convince sysadmins to agree to, with rationales/explanations for 
>  the hardest-to-obtain. Getting them to run guix-daemon as root   is
> probably a lost case, so I'd like to explore everything else   that is
> possible.

Yeah.

> So let's transform my two questions above into the two following:
>
> 1. what would be the list of requirements that explain why guix-daemon
> must run as root? What does each of those requirements accomplish?

I think this article remains relevant:

  https://hpc.guix.info/blog/2017/09/reproducibility-and-root-privileges/

> 2. knowing that my environment has user namespaces (and knowing that
> that may not be enough), would it be possible to set up guix-daemon as
> non-root with the assistance of a sysadmin (so say with root access
> during setup), with build users and all, and have it provide identical
> guarantees to a guix-daemon running as root? If not, why not, and
> could we work around that?

Good question.  It should be possible to make the daemon run as
non-root; that’s what the trick with the ‘guix pack -R’ wrapper should
achieve, but it could also be a built-in capability.

Food for thought!

Thanks,
Ludo’.


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

* Re: Introducing Guix to HPC at my institution
  2021-03-30  7:21               ` Ludovic Courtès
@ 2021-03-31  5:23                 ` Sébastien Lerique
  2021-04-01  8:35                   ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-03-31  5:23 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-science, zimoun

Hi Ludo, zimoun, all,

Thanks again for your answers, for the links to documentation, and 
for the support on IRC!

> Hmm could it be that nscd is not running, and that 
> /etc/nsswitch.conf
> specifies a “non-standard” NSS plugin, such as ‘sssd’?
>
>   https://guix.gnu.org/manual/en/html_node/Application-Setup.html#Name-Service-Switch-1
>
> Does ‘guix install hello --no-offload’ work around the issue?

Yes, that solves the issue!

>>  $ guix archive --authorize < \
>>    /gnu/store/xb4szjambyi52bpnkjv080g2mlfqqpp0-profile/share/guix/ci.guix.gnu.org.pub
>>  guix archive: error: mkdir: Permission denied
>
> I guess it’s trying to write to /etc/guix.  You probably need to 
> set
> GUIX_STATE_DIRECTORY=$HOME/.local/var/guix here.

Yes, that would be GUIX_CONFIGURATION_DIRECTORY. As discussed on 
IRC though, /etc in the tarball is a symlink to the profile, so 
neither `guix archive` nor I can create /etc/guix. So I resorted 
to creating a `/etc-guix` folder which I use for 
GUIX_CONFIGURATION_DIRECTORY.

>> 2. knowing that my environment has user namespaces (and knowing 
>> that
>> that may not be enough), would it be possible to set up 
>> guix-daemon as
>> non-root with the assistance of a sysadmin (so say with root 
>> access
>> during setup), with build users and all, and have it provide 
>> identical
>> guarantees to a guix-daemon running as root? If not, why not, 
>> and
>> could we work around that?
>
> Good question.  It should be possible to make the daemon run as
> non-root; that’s what the trick with the ‘guix pack -R’ wrapper 
> should
> achieve, but it could also be a built-in capability.

Yes, I'd be very happy to try and build that once things work!

So, to summarize the current status, here is what I do:

On my Guix System (`deigo` is my ssh config for the cluster):

  $ scp (guix pack -R -S /bin=bin -S /etc=etc guix bash) 
  deigo:guix-pack.tar.gz

Then on deigo:

  $ mkdir -p /a-working-directory/guix
  $ cd /a-working-directory/guix
  $ tar xzf ~/guix-pack.tar.gz
  $ mkdir etc-guix
  $ bin/bash
  $ . etc/profile
  $ export GUIX_STATE_DIRECTORY=$(pwd)/var/guix
  $ export GUIX_LOG_DIRECTORY=$(pwd)/var/log
  $ export GUIX_CONFIGURATION_DIRECTORY=$(pwd)/etc-guix

Then the fun starts. There are 4 different cases and problems, 
depending on whether I use substitutes or not, and on whether 
`/a-working-directory` is an NFS share or a local mount.


Case 1: with substitutes, on a local (non-NFS) folder
-----------------------------------------------------

  $ guix archive --authorize < 
  bin/../share/guix/ci.guix.gnu.org.pub
  $ guix-daemon --disable-chroot &
  $ guix install hello
  [... dowloading ...]
  unexpected substituter message 'defining `GUIX_LOCPATH', along 
  these lines:

       guix install glibc-utf8-locales
       export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

  See the "Application Setup" section in the manual, for more 
  info.
  '

I think this is https://issues.guix.gnu.org/45166.

Using instead `guix pack -R -S /bin=bin -S /etc=etc -S /lib=lib 
guix bash glibc-utf8-locales`, and:

  $ export GUIX_LOCPATH=$(pwd)/lib/locale
  $ ls $GUIX_LOCPATH/
  2.31

seems to start working, but then `guix install hello` fails with 
the same error, and:

  $ ls $GUIX_LOCPATH/
  ls: cannot access '/tmp/sebastien-lerique/guix/lib/locale/': No 
  such file or directory

Is it possible that glibc-utf8-locales gets garbage-collected?


Case 2: from source (no substitutes), on a local (non-NFS) folder
-----------------------------------------------------------------

No need for the locale fix here (another bug appears before that):

  $ guix-daemon --disable-chroot &
  # --no-offload works around the missing nscd problem; up to now 
  this
  # doesn't seem necessary when using substitutes
  $ guix install hello --no-offload
  [... builds for a while ...]
  build of 
  /gnu/store/pkn1w1q3xkn273kpmggc4dnq6n6hr9jy-bzip2-mesboot-1.0.8.drv 
  failed

The build log for bzip2-mesboot ends with:

  tcc -ar cq libbz2.a blocksort.o huffman.o crctable.o randtable.o 
  compress.o decompress.o bzlib.o
  ranlib libbz2.a
  /gnu/store/prkqai3zwh3shlqpll6xyncmmqpj49dd-gash-boot-0.2.0/bin/sh: 
  ranlib: Command not found.
  make: *** [libbz2.a] Error 127
  command "make" "CC=tcc -I ." "AR=tcc -ar" "bzip2" 
  "PREFIX=/gnu/store/s94hyrv1vgllxir5niiyzfc9g80l5kcd-bzip2-mesboot-1.0.8" 
  failed with status 2

Is this new and should be reported as a bug? Should 
binutils-mesboot0 be part of bzip2-mesboot's inputs? (I haven't 
learned about the boostrapping mechanism yet.)


Case 3: with substitutes, on an NFS share
-----------------------------------------

Again no need for the locale fix (another bug appears before 
that):

  $ guix archive --authorize < 
  bin/../share/guix/ci.guix.gnu.org.pub
  $ guix-daemon --disable-chroot &
  $ guix install hello
  [... downloading ...]
  guix install: error: cannot unlink 
  `/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib': 
  Directory not empty

so checking:

  $ ls -lA 
  /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib
  total 3840
  -r-xr-xr-x 1 sebastien-lerique froeseuni   64832 Jan  1  1970 
  .nfs000000000172caa5000054bd
  [... more .nfs files ...]

  $ lsof -f -- 
  /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/.nfs000000000172caa5000054bd` 
  reports:
  [... some warnings ...]
  COMMAND     PID              USER  FD   TYPE DEVICE SIZE/OFF 
  NODE NAME
  bash      25616 sebastien-lerique mem    REG   0,52    64832 
  24300197 
  /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/.nfs000000000172caa5000054bd
  guix-daem 25934 sebastien-lerique mem    REG   0,52    64832 
  24300197 
  /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/.nfs000000000172caa5000054bd

Not sure what's going wrong here. Maybe it's more 
garbage-collecting (as in case 1), failing because of an nfs 
nuance or bug?


Case 4: from source (no substitutes), on an NFS share
-----------------------------------------------------

Fails in the exact same way as Case 2.


I have no idea how to make progress in any of these cases (except 
the bzip2-mesboot one maybe), so any input on these different 
problems is very welcome :)

Thanks and happy hacking!
Sébastien


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

* Re: Introducing Guix to HPC at my institution
  2021-03-31  5:23                 ` Sébastien Lerique
@ 2021-04-01  8:35                   ` Ludovic Courtès
  2021-04-01 14:34                     ` Sébastien Lerique
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2021-04-01  8:35 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science, zimoun

Howdy!

Sébastien Lerique <sl@eauchat.org> skribis:

> Case 1: with substitutes, on a local (non-NFS) folder
> -----------------------------------------------------
>
>  $ guix archive --authorize <   bin/../share/guix/ci.guix.gnu.org.pub
>  $ guix-daemon --disable-chroot &
>  $ guix install hello
>  [... dowloading ...]
>  unexpected substituter message 'defining `GUIX_LOCPATH', along
>  these lines:
>
>       guix install glibc-utf8-locales
>       export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"
>
>  See the "Application Setup" section in the manual, for more   info.
>  '
>
> I think this is https://issues.guix.gnu.org/45166.
>
> Using instead `guix pack -R -S /bin=bin -S /etc=etc -S /lib=lib guix
> bash glibc-utf8-locales`, and:
>
>  $ export GUIX_LOCPATH=$(pwd)/lib/locale
>  $ ls $GUIX_LOCPATH/
>  2.31
>
> seems to start working, but then `guix install hello` fails with the
> same error, and:
>
>  $ ls $GUIX_LOCPATH/
>  ls: cannot access '/tmp/sebastien-lerique/guix/lib/locale/': No
>  such file or directory
>
> Is it possible that glibc-utf8-locales gets garbage-collected?

Can you run guix-daemon like so?

  LC_ALL=en_US.utf8 guix-daemon --disable-chroot &

The “unexpected substitute message” thing is a bug: it turns out that
stderr of ‘guix substitute’ is consumed directly by the daemon at this
point, which it shouldn’t (similar to the issue fixed by
ee3226e9d54891c7e696912245e4904435be191c).

> Case 2: from source (no substitutes), on a local (non-NFS) folder
> -----------------------------------------------------------------
>
> No need for the locale fix here (another bug appears before that):
>
>  $ guix-daemon --disable-chroot &
>  # --no-offload works around the missing nscd problem; up to now
>      this
>  # doesn't seem necessary when using substitutes
>  $ guix install hello --no-offload
>  [... builds for a while ...]
>  build of
>  /gnu/store/pkn1w1q3xkn273kpmggc4dnq6n6hr9jy-bzip2-mesboot-1.0.8.drv 
>  failed
>
> The build log for bzip2-mesboot ends with:
>
>  tcc -ar cq libbz2.a blocksort.o huffman.o crctable.o randtable.o
>  compress.o decompress.o bzlib.o
>  ranlib libbz2.a
>  /gnu/store/prkqai3zwh3shlqpll6xyncmmqpj49dd-gash-boot-0.2.0/bin/sh:
>  ranlib: Command not found.
>  make: *** [libbz2.a] Error 127
>  command "make" "CC=tcc -I ." "AR=tcc -ar" "bzip2"
>  "PREFIX=/gnu/store/s94hyrv1vgllxir5niiyzfc9g80l5kcd-bzip2-mesboot-1.0.8" 
>  failed with status 2
>
> Is this new and should be reported as a bug? Should binutils-mesboot0
> be part of bzip2-mesboot's inputs? (I haven't learned about the
> boostrapping mechanism yet.)

The problem is that ‘--disable-chroot’ is a bit of the wild west: build
processes can access the whole file system and what you do as a user can
interfere with them.

It could be that the bzip2 build failure above is just that: the build
process picks something from /usr/lib or /usr/bin, and that breaks
everything.

I think ‘--disable-chroot’ is OK if you’re going to use substitutes for
almost everything.  Otherwise, it’s not good.  Your use case calls for
built-in support; that way, the daemon could take still advantage of
user namespaces to set up a chroot and all.

> Case 3: with substitutes, on an NFS share
> -----------------------------------------
>
> Again no need for the locale fix (another bug appears before that):
>
>  $ guix archive --authorize <   bin/../share/guix/ci.guix.gnu.org.pub
>  $ guix-daemon --disable-chroot &
>  $ guix install hello
>  [... downloading ...]
>  guix install: error: cannot unlink
>  `/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib': 
>  Directory not empty
>
> so checking:
>
>  $ ls -lA   /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib
>  total 3840
>  -r-xr-xr-x 1 sebastien-lerique froeseuni   64832 Jan  1  1970
>   .nfs000000000172caa5000054bd
>  [... more .nfs files ...]

Ah yes, that’s a known issue with NFS.  I’m not aware of any workaround.

Thanks,
Ludo’.


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

* Re: Introducing Guix to HPC at my institution
  2021-04-01  8:35                   ` Ludovic Courtès
@ 2021-04-01 14:34                     ` Sébastien Lerique
  2021-04-10 20:43                       ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-04-01 14:34 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-science, zimoun

Hello!

On 01 Apr 2021 at 17:35, Ludovic Courtès 
<ludovic.courtes@inria.fr> wrote:

>> Case 1: with substitutes, on a local (non-NFS) folder
>> -----------------------------------------------------
>> [snip]
>
> Can you run guix-daemon like so?
>
>   LC_ALL=en_US.utf8 guix-daemon --disable-chroot &

Then:

  $ guix install hello --no-offload
  [... dowloading ...]
  13.3 MB will be downloaded
  substitution of 
  /gnu/store/395pvii4bcjqxvdv7h0drq10lxi01sv1-glibc-utf8-locales-2.31 
  failed
  guix install: error: some substitutes for the outputs of 
  derivation 
  `/gnu/store/b2jkmg71m0dpf3i6hvskb32ra48lls28-glibc-utf8-locales-2.31.drv' 
  failed (usually happens due to networking issues); try 
  `--fallback' to build derivation from source

Restarting from scratch and using `--fallback` then leads to the 
bzip2-mesboot failure of Case 2.

If, instead of resarting from scratch, I just run again `guix 
install hello --no-offload`, I then get:

  guix install: error: got unexpected path 
  `/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: 
  warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)' 
  from substituter

And indeed once again lib/locale is a dead symlink, as the 
glibc-utf8-locales packaged in my tar.gz has been removed from the 
store. Why is that? I had a look through the same commands with 
--debug=4 or 5, but to no insight (aside from seeing locale 
derivations being deleted at some stage). I posted the end of the 
log produced by `guix install hello --no-offload --debug=4`, 
starting with the failed substitution, here: 
https://paste.debian.net/1191991/ .

> The “unexpected substitute message” thing is a bug: it turns out 
> that
> stderr of ‘guix substitute’ is consumed directly by the daemon 
> at this
> point, which it shouldn’t (similar to the issue fixed by
> ee3226e9d54891c7e696912245e4904435be191c).

Ok, I'll file a bug for that then :)

>> Case 2: from source (no substitutes), on a local (non-NFS) 
>> folder
>> -----------------------------------------------------------------
>> [snip]
>
> The problem is that ‘--disable-chroot’ is a bit of the wild 
> west: build
> processes can access the whole file system and what you do as a 
> user can
> interfere with them.
>
> It could be that the bzip2 build failure above is just that: the 
> build
> process picks something from /usr/lib or /usr/bin, and that 
> breaks
> everything.
>
> I think ‘--disable-chroot’ is OK if you’re going to use 
> substitutes for
> almost everything.  Otherwise, it’s not good.  Your use case 
> calls for
> built-in support; that way, the daemon could take still 
> advantage of
> user namespaces to set up a chroot and all.

I see. By the way, starting guix-daemon without `--disable-chroot` 
(and without substitutes) leads to:

  guix build: error: cannot change ownership of 
  ‘/gnu/store/0dn61y4n8ig333b23hmc80hvlcy8gdli-guile-bootstrap-2.0.drv.chroot’: 
  Invalid argument

so --disable-chroot is indeed still necessary! I am interested in 
working on this built-in support once I get the substitutes case 
working (although I will probably come ask for guidance for that) 
:)

Thanks!
Sébastien


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

* Re: Introducing Guix to HPC at my institution
  2021-04-01 14:34                     ` Sébastien Lerique
@ 2021-04-10 20:43                       ` Ludovic Courtès
  2021-04-12  1:21                         ` Sébastien Lerique
  0 siblings, 1 reply; 16+ messages in thread
From: Ludovic Courtès @ 2021-04-10 20:43 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science, zimoun

Hi Sébastien,

Sébastien Lerique <sl@eauchat.org> skribis:

> If, instead of resarting from scratch, I just run again `guix install
> hello --no-offload`, I then get:
>
>  guix install: error: got unexpected path
>  `/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash: 
>  warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)'   from
> substituter

I (re-)fixed this particular problem here:

  https://issues.guix.gnu.org/46362

So if you create a pack containing the ‘guix’ package from current
master, this problem should no longer be there.

Ludo’.


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

* Re: Introducing Guix to HPC at my institution
  2021-04-10 20:43                       ` Ludovic Courtès
@ 2021-04-12  1:21                         ` Sébastien Lerique
  2021-04-12 12:43                           ` Ludovic Courtès
  0 siblings, 1 reply; 16+ messages in thread
From: Sébastien Lerique @ 2021-04-12  1:21 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: guix-science, zimoun

Hi Ludo,

On 11 Apr 2021 at 05:43, Ludovic Courtès <ludo@gnu.org> wrote:

>> If, instead of resarting from scratch, I just run again `guix 
>> install
>> hello --no-offload`, I then get:
>>
>>  guix install: error: got unexpected path
>>  `/gnu/store/pwcp239kjf7lnj5i4lkdzcfcxwcfyk72-bash-minimal-5.0.16/bin/bash:
>>  warning: setlocale: LC_ALL: cannot change locale (en_US.utf8)' 
>>  from
>> substituter
>
> I (re-)fixed this particular problem here:
>
>   https://issues.guix.gnu.org/46362
>
> So if you create a pack containing the ‘guix’ package from 
> current
> master, this problem should no longer be there.

Success! With substitutes:

  $ guix install hello --no-offload
  [... installs ...]
  $ GUIX_PROFILE="/home/s/sebastien-lerique/.guix-profile"
  $ . "$GUIX_PROFILE/etc/profile"
  $ hello
  Hello, world!

Then my next steps are to try out a few more things, see if some 
builds work (based on existing substitutes, not from scratch), 
gather some interest here now that I can demo, and then come back 
to explore builtin support for a non-root shared build daemon.

Thank you!!
Sébastien


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

* Re: Introducing Guix to HPC at my institution
  2021-04-12  1:21                         ` Sébastien Lerique
@ 2021-04-12 12:43                           ` Ludovic Courtès
  0 siblings, 0 replies; 16+ messages in thread
From: Ludovic Courtès @ 2021-04-12 12:43 UTC (permalink / raw)
  To: Sébastien Lerique; +Cc: guix-science, zimoun

Hi,

Sébastien Lerique <sl@eauchat.org> skribis:

> Success! With substitutes:
>
>  $ guix install hello --no-offload
>  [... installs ...]
>  $ GUIX_PROFILE="/home/s/sebastien-lerique/.guix-profile"
>  $ . "$GUIX_PROFILE/etc/profile"
>  $ hello
>  Hello, world!

Yay!  (Of course, “echo hello world” would have been simpler but not as
as fun.  :-))

> Then my next steps are to try out a few more things, see if some
> builds work (based on existing substitutes, not from scratch), 
> gather some interest here now that I can demo, and then come back to
> explore builtin support for a non-root shared build daemon.

Awesome, let us know how it goes!

Ludo’.


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

end of thread, other threads:[~2021-04-12 12:43 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-15  3:12 Introducing Guix to HPC at my institution Sébastien Lerique
2021-03-15 13:47 ` zimoun
2021-03-16  1:54   ` Sébastien Lerique
2021-03-16  8:06     ` zimoun
2021-03-16  9:05     ` Ludovic Courtès
2021-03-18  2:26       ` Sébastien Lerique
2021-03-26  8:22         ` Sébastien Lerique
2021-03-29 12:03           ` Ludovic Courtès
2021-03-30  1:54             ` Sébastien Lerique
2021-03-30  7:21               ` Ludovic Courtès
2021-03-31  5:23                 ` Sébastien Lerique
2021-04-01  8:35                   ` Ludovic Courtès
2021-04-01 14:34                     ` Sébastien Lerique
2021-04-10 20:43                       ` Ludovic Courtès
2021-04-12  1:21                         ` Sébastien Lerique
2021-04-12 12:43                           ` Ludovic Courtès

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).