From mboxrd@z Thu Jan  1 00:00:00 1970
From: Leo Famulari <leo@famulari.name>
Subject: bug#24993: Documentation: 'guix pull' needed during SD installation
Date: Tue, 22 Nov 2016 23:46:07 -0500
Message-ID: <20161123044607.GA23298@jasmine>
References: <7d52d8ee-c253-685b-1871-f908850ee606@alaskasi.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Return-path: <bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org>
Received: from eggs.gnu.org ([2001:4830:134:3::10]:47438)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1c9PSc-0003D7-7M
	for bug-guix@gnu.org; Tue, 22 Nov 2016 23:47:07 -0500
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1c9PSY-0005lj-9h
	for bug-guix@gnu.org; Tue, 22 Nov 2016 23:47:06 -0500
Received: from debbugs.gnu.org ([208.118.235.43]:51625)
	by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
	(Exim 4.71) (envelope-from <Debian-debbugs@debbugs.gnu.org>)
	id 1c9PSY-0005lN-14
	for bug-guix@gnu.org; Tue, 22 Nov 2016 23:47:02 -0500
Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2)
	(envelope-from <Debian-debbugs@debbugs.gnu.org>) id 1c9PSX-0004ye-MN
	for bug-guix@gnu.org; Tue, 22 Nov 2016 23:47:01 -0500
Sender: "Debbugs-submit" <debbugs-submit-bounces@debbugs.gnu.org>
Resent-Message-ID: <handler.24993.B24993.147987637419062@debbugs.gnu.org>
Content-Disposition: inline
In-Reply-To: <7d52d8ee-c253-685b-1871-f908850ee606@alaskasi.com>
List-Id: Bug reports for GNU Guix <bug-guix.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/bug-guix>,
	<mailto:bug-guix-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/archive/html/bug-guix/>
List-Post: <mailto:bug-guix@gnu.org>
List-Help: <mailto:bug-guix-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/bug-guix>,
	<mailto:bug-guix-request@gnu.org?subject=subscribe>
Errors-To: bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org
Sender: "bug-Guix" <bug-guix-bounces+gcggb-bug-guix=m.gmane.org@gnu.org>
To: Christopher Howard <christopher@alaskasi.com>
Cc: 24993@debbugs.gnu.org

On Tue, Nov 22, 2016 at 01:25:57PM -0900, Christopher Howard wrote:

Welcome Christopher!

> In the online installation docs at
> <https://www.gnu.org/software/guix/manual/html_node/Proceeding-with-the-Installation.html#Proceeding-with-the-Installation>,
> please insert the command 'guix pull' before the "guix system init"
> command. Otherwise installation can fail due to missing binary packages,
> which creates confusion for newbie installers like myself. Thank you!

Can you give more detail about the problems you ran into? We want `guix
system init` to "just work".

In general, if some binary fails to be substituted [0], adding
--fallback to the command should cause the package to be built from
source, working around the issue.

I think that running `guix pull` before `guix system init` is not the
right choice for newbies, although there are some trade-offs [1].

Most new users will be installing from the binary GuixSD installer
offered on our web site. This installer is built from a Git commit that
we have tested to ensure that everything should work. We strive to keep
our master branch "deployable", but of course we make mistakes
sometimes. `guix pull` draws from the HEAD commit of the master branch,
and so new users might end up with a broken system as their first
experience.  GuixSD is extremely robust once installed — you can always
roll-back — so it's a good idea to initialize from a known good commit
and then update.

Additionally, it's likely that we will not yet have built binary
substitutes for the most recent changes on the master branch, so new
users will end up building some things from source if they use `guix
pull`.

[0] Guix is a hybrid of build-from-source and binary package management
systems. It's really a build-from-source distro, but we offer so-called
"binary substitutes", and they are transparently substituted for a
source build if they are available and the user has authorized our
substitutes server. But, if Guix expects a package to be substituted
and something goes wrong, the action will fail. Using --fallback works
around this and builds from source even when the substitution fails.

[1] I think the main drawback of installing from the release tag without
`guix pull` is that the initial generation of the GuixSD system will be
lacking important upstream bug fixes. I think users should `guix pull &&
guix system reconfigure` immediately after initializing the system. Guix
actually nags users to do this:

http://git.savannah.gnu.org/cgit/guix.git/tree/guix/scripts/system.scm?id=08b3e4a97066c9baaf39e3df7c2dd9c39e693ead#n577