Patchwork doc: Mention "guix pull" during installation.

login
register
mail settings
Submitter Petter
Date Dec. 16, 2016, 8:38 a.m.
Message ID <82b3233597949c866c26628054117ee3@mykolab.ch>
Download mbox | patch
Permalink /patch/18505/
State New
Headers show

Comments

Petter - Dec. 16, 2016, 8:38 a.m.
Hi,

Some new users don't run `guix pull` before installing, and can have a 
less good experience because of this. Proposing a patch to add this to 
the manual.

Thanks,
Petter
Leo Famulari - Dec. 17, 2016, 5:38 p.m.
On Fri, Dec 16, 2016 at 09:38:02AM +0100, Petter wrote:
> good experience because of this. Proposing a patch to add this to the
> manual.

Thanks for looking out for the new user experience, which one tends to
forget as time passes :)

> * doc/guix.texi (Proceeding with the Installation): Add "guix pull".

> +At this point it is advisable to update the system, especially if the
> +installer is more than a few weeks old. Then most, if not all, packages
> +will be available as substitutes.
> +
> +@example
> +guix pull
> +@end example

So far, in practice, this seems to become necessary as a given release
grows old. This is a negative side effect of some limitations of our
build farm infrastructure.

Specifically, we start to garbage collect the substitutes that
correspond to a release as time goes by, for two reasons: we need the
disk space, and more importantly, our method of registering garbage
collector roots [0] is still rather crude.

Some of us are working on a different method of registering garbage
collector roots that will allow us to tell Hydra, "Keep the substitutes
for release X", or "Keep the substitutes for the master branch in the
last 3 months".

I've recently gave an explanation of why I think using `guix pull`
before installing GuixSD should not be recommended unconditionally:

http://lists.gnu.org/archive/html/bug-guix/2016-11/msg00047.html

In the specific case of installing GuixSD 0.11.0 today, `guix pull` is
necessary, because we lack the substitutes, and some packages can't be
built at all now [1]. But, adding these lines to the manual now won't
make it show up in the 0.11.0 installer manual.

I think we should work on improving our infrastructure in the next
release cycle, and revisit this change to the manual if we are still
having problems before the 0.13.0 release.

What does everyone think?

[0]
https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-gc.html

[1] For example:
http://git.savannah.gnu.org/cgit/guix.git/commit/?id=d404a6f9711c8dcc1cc6cf55d8c07901aa450192
Ludovic Courtès - Dec. 18, 2016, 11 a.m.
Hello!

Leo Famulari <leo@famulari.name> skribis:

> I've recently gave an explanation of why I think using `guix pull`
> before installing GuixSD should not be recommended unconditionally:
>
> http://lists.gnu.org/archive/html/bug-guix/2016-11/msg00047.html
>
> In the specific case of installing GuixSD 0.11.0 today, `guix pull` is
> necessary, because we lack the substitutes, and some packages can't be
> built at all now [1]. But, adding these lines to the manual now won't
> make it show up in the 0.11.0 installer manual.
>
> I think we should work on improving our infrastructure in the next
> release cycle, and revisit this change to the manual if we are still
> having problems before the 0.13.0 release.
>
> What does everyone think?

I agree with everything you wrote here.

Ludo’.
Theodoros Foradis - Dec. 18, 2016, 12:05 p.m.
Petter writes:

> Hi,
>
> Some new users don't run `guix pull` before installing, and can have a 
> less good experience because of this. Proposing a patch to add this to 
> the manual.
>
> Thanks,
> Petter

Just a sidenote here, that I mentioned in #guix irc channel the other
time. I tried to `guix pull` from the 0.11 USB installer, and it would
fail because some package couldn't be substituted,
module-import-compiled if I recall correctly.

Guix suggested as normal, that `--fallback` flag should be used, which
is a non-accepted flag for `guix pull`. I had to `guix system init
--fallback`, until that package was built, and then `guix pull`. Not
having run `guix pull`, building from source was failing anyway.

Is this intented behaviour, or something to be fixed?

Regards,
Alex Sassmannshausen - Dec. 19, 2016, 7:41 a.m.
Ludovic Courtès writes:

> Hello!
>
> Leo Famulari <leo@famulari.name> skribis:
>
>> I've recently gave an explanation of why I think using `guix pull`
>> before installing GuixSD should not be recommended unconditionally:
>>
>> http://lists.gnu.org/archive/html/bug-guix/2016-11/msg00047.html
>>
>> In the specific case of installing GuixSD 0.11.0 today, `guix pull` is
>> necessary, because we lack the substitutes, and some packages can't be
>> built at all now [1]. But, adding these lines to the manual now won't
>> make it show up in the 0.11.0 installer manual.
>>
>> I think we should work on improving our infrastructure in the next
>> release cycle, and revisit this change to the manual if we are still
>> having problems before the 0.13.0 release.
>>
>> What does everyone think?
>
> I agree with everything you wrote here.
>
> Ludo’.

I think I too agree here.  Especially as my experience (running GuixSD
on i686 bare metal) suggests that `guix pull` can actually result in
packages that do not quite build reliably.  There currently seems to be
a `guix pull` sweet spot when the substitutes are not too old yet the
recipes not too new…

I think the best solution would definitely be guaranteed availability of
substitutes for releases until at least the next release — so I greatly
appreciate the work that is being done to on the infrastructure side.

My 2¢,

Alex
Raoul J.P. Bonnal - Dec. 19, 2016, 8:09 a.m.
Hi Theodoros,

On Sun, Dec 18, 2016 at 1:12 PM Theodoros Foradis <
theodoros.for@openmailbox.org> wrote:

>
> Petter writes:
>
> > Hi,
> >
> > Some new users don't run `guix pull` before installing, and can have a
> > less good experience because of this. Proposing a patch to add this to
> > the manual.
> >
> > Thanks,
> > Petter
>
> Just a sidenote here, that I mentioned in #guix irc channel the other
> time. I tried to `guix pull` from the 0.11 USB installer, and it would
> fail because some package couldn't be substituted,
> module-import-compiled if I recall correctly.
>
> Guix suggested as normal, that `--fallback` flag should be used, which
> is a non-accepted flag for `guix pull`. I had to `guix system init
> --fallback`, until that package was built, and then `guix pull`. Not
> having run `guix pull`, building from source was failing anyway.


Last week I tried to follow the manual (binary install with Ubuntu) and use
`guix pull` without success, `--fallback` option was there and I had a lot
of troubles with [module-import-compiled](
https://gist.github.com/helios/6d13037a7ae7be40f118573545cbccb3)
In #guix irc I found valuable helps (cbaines, rekado)  and I ended up using
the git source


git clone --recurse git://git.savannah.gnu.org/guix.git
cd guix

guix environment --fallback --pure --container -N guix --ad-hoc guile-cairo
guile-charting guile-rsvg -- sh -c "make clean; ./bootstrap &&
./configure --localstatedir=/var
&& make -j4"

ln -s ~/guix ~/.config/guix/latest
guix package -u

maybe the git/source install should be documented as well or at least
tested from scratch for newbies such as me.

--
Ra

Patch

From 2340158e5454cbb3050840821bf0fd1965d2fe79 Mon Sep 17 00:00:00 2001
From: Petter <petter@mykolab.ch>
Date: Fri, 16 Dec 2016 09:28:32 +0100
Subject: [PATCH] doc: Mention "guix pull" during installation.

* doc/guix.texi (Proceeding with the Installation): Add "guix pull".
---
 doc/guix.texi | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/doc/guix.texi b/doc/guix.texi
index 46ed451..cda90ed 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -6863,6 +6863,14 @@  rather than kept in memory.  This is necessary because the first phase of
 the @command{guix system init} command (see below) entails downloads or
 builds to @file{/gnu/store} which, initially, is an in-memory file system.
 
+At this point it is advisable to update the system, especially if the
+installer is more than a few weeks old. Then most, if not all, packages
+will be available as substitutes.
+
+@example
+guix pull
+@end example
+
 Next, you have to edit a file and
 provide the declaration of the operating system to be installed.  To
 that end, the installation system comes with three text editors: GNU nano
-- 
2.10.1