diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-05-30 17:50:21 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-09 12:02:27 +0200 |
commit | 75e24d7b0e19ab2164aecb340e82d07d2b9714e7 (patch) | |
tree | 7e46b4d70532dc16482c57f94b6257b42600c04b /doc | |
parent | 8a0d9bc8a3f153159d9e239a151c0fa98f1e12d8 (diff) | |
download | guix-75e24d7b0e19ab2164aecb340e82d07d2b9714e7.tar.gz guix-75e24d7b0e19ab2164aecb340e82d07d2b9714e7.zip |
pull: Install the new Guix in a profile.
* guix/scripts/pull.scm (%pull-version): New variable.
(build-from-source): Pass #:pull-version to BUILD.
(whole-package-for-legacy, derivation->manifest-entry): New procedure.
(build-and-install): Rewrite in terms of 'build-and-use-profile'.
* guix/scripts/system.scm (maybe-suggest-running-guix-pull)[latest]:
Switch to "/current".
* scripts/guix.in (augment-load-paths!): Remove use of
~/.config/guix/latest.
* build-aux/compile-as-derivation.scm: Replace "/guix/latest/" with
"/current/share/guile/site/X.Y"
* guix/scripts.scm (warn-about-old-distro)[age]: Check "/current"
instead of "/latest".
* doc/guix.texi (Invoking guix pull): Document it.
* doc/contributing.texi (Running Guix Before It Is Installed): Remove
footnote about abusing ~/.config/guix/latest.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/contributing.texi | 10 | ||||
-rw-r--r-- | doc/guix.texi | 38 |
2 files changed, 35 insertions, 13 deletions
diff --git a/doc/contributing.texi b/doc/contributing.texi index 2792fe2b29..205c972aea 100644 --- a/doc/contributing.texi +++ b/doc/contributing.texi @@ -155,15 +155,9 @@ The @command{pre-inst-env} script sets up all the environment variables necessary to support this, including @env{PATH} and @env{GUILE_LOAD_PATH}. Note that @command{./pre-inst-env guix pull} does @emph{not} upgrade the -local source tree; it simply updates the @file{~/.config/guix/latest} +local source tree; it simply updates the @file{~/.config/guix/current} symlink (@pxref{Invoking guix pull}). Run @command{git pull} instead if -you want to upgrade your local source tree.@footnote{If you would like -to set up @command{guix} to use your Git checkout, you can point the -@file{~/.config/guix/latest} symlink to your Git checkout directory. -If you are the sole user of your system, you may also consider pointing -the @file{/root/.config/guix/latest} symlink to point to -@file{~/.config/guix/latest}; this way it will always use the same -@command{guix} as your user does.} +you want to upgrade your local source tree. @node The Perfect Setup diff --git a/doc/guix.texi b/doc/guix.texi index 6ed4799dfc..13b42f59f3 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -2743,11 +2743,39 @@ Any user can update their Guix copy using @command{guix pull}, and the effect is limited to the user who run @command{guix pull}. For instance, when user @code{root} runs @command{guix pull}, this has no effect on the version of Guix that user @code{alice} sees, and vice -versa@footnote{Under the hood, @command{guix pull} updates the -@file{~/.config/guix/latest} symbolic link to point to the latest Guix, -and the @command{guix} command loads code from there. Currently, the -only way to roll back an invocation of @command{guix pull} is to -manually update this symlink to point to the previous Guix.}. +versa. + +The result of running @command{guix pull} is a @dfn{profile} available +under @file{~/.config/guix/current} containing the latest Guix. Thus, +make sure to add it to the beginning of your search path so that you use +the latest version, and similarly for the Info manual +(@pxref{Documentation}): + +@example +export PATH="$HOME/.config/guix/current/bin:$PATH" +export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH" +@end example + +This @code{~/.config/guix/current} profile works like any other profile +created by @command{guix package} (@pxref{Invoking guix package}). That +is, you can list generations, roll back to the previous +generation---i.e., the previous Guix---and so on: + +@example +$ guix package -p ~/.config/guix/current -l +Generation 1 May 25 2018 10:06:41 + guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 + +Generation 2 May 27 2018 19:07:47 + + guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f + - guix 221951a out /gnu/store/i4dfk7vw5k112s49jrhl6hwsfnh6wr7l-guix-221951af4 + +Generation 3 May 30 2018 16:11:39 (current) + + guix a076f19 out /gnu/store/332czkicwwg6lc3x4aqbw5q2mq12s7fj-guix-a076f1990 + - guix 2fbae00 out /gnu/store/44cv9hyvxg34xf5kblf5dz57hc52y4bm-guix-2fbae006f +$ guix package -p ~/.config/guix/current --roll-back +switched from generation 3 to 2 +@end example The @command{guix pull} command is usually invoked with no arguments, but it supports the following options: |