doc: Make '--manifest' more visible.
* doc/guix.texi (Invoking guix package): Mention the declarative approach and --manifest in the intro. And an anchor for --manifest. Explain why/how it can be used. Tweak wording.
This commit is contained in:
parent
6fb4fb717d
commit
99bd74d549
|
@ -941,7 +941,7 @@ guix package @var{options}
|
||||||
|
|
||||||
Primarily, @var{options} specifies the operations to be performed during
|
Primarily, @var{options} specifies the operations to be performed during
|
||||||
the transaction. Upon completion, a new profile is created, but
|
the transaction. Upon completion, a new profile is created, but
|
||||||
previous generations of the profile remain available, should the user
|
previous @dfn{generations} of the profile remain available, should the user
|
||||||
want to roll back.
|
want to roll back.
|
||||||
|
|
||||||
For example, to remove @code{lua} and install @code{guile} and
|
For example, to remove @code{lua} and install @code{guile} and
|
||||||
|
@ -951,6 +951,11 @@ For example, to remove @code{lua} and install @code{guile} and
|
||||||
guix package -r lua -i guile guile-cairo
|
guix package -r lua -i guile guile-cairo
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
|
@command{guix package} also supports a @dfn{declarative approach}
|
||||||
|
whereby the user specifies the exact set of packages to be available and
|
||||||
|
passes it @i{via} the @option{--manifest} option
|
||||||
|
(@pxref{profile-manifest, @option{--manifest}}).
|
||||||
|
|
||||||
For each user, a symlink to the user's default profile is automatically
|
For each user, a symlink to the user's default profile is automatically
|
||||||
created in @file{$HOME/.guix-profile}. This symlink always points to the
|
created in @file{$HOME/.guix-profile}. This symlink always points to the
|
||||||
current generation of the user's default profile. Thus, users can add
|
current generation of the user's default profile. Thus, users can add
|
||||||
|
@ -1062,21 +1067,32 @@ substring ``emacs'':
|
||||||
$ guix package --upgrade . --do-not-upgrade emacs
|
$ guix package --upgrade . --do-not-upgrade emacs
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item --manifest=@var{file}
|
@item @anchor{profile-manifest}--manifest=@var{file}
|
||||||
@itemx -m @var{file}
|
@itemx -m @var{file}
|
||||||
Create a new @dfn{generation} of the profile from the manifest object
|
@cindex profile declaration
|
||||||
|
@cindex profile manifest
|
||||||
|
Create a new generation of the profile from the manifest object
|
||||||
returned by the Scheme code in @var{file}.
|
returned by the Scheme code in @var{file}.
|
||||||
|
|
||||||
A manifest file may look like this:
|
This allows you to @emph{declare} the profile's contents rather than
|
||||||
|
constructing it through a sequence of @code{--install} and similar
|
||||||
|
commands. The advantage is that @var{file} can be put under version
|
||||||
|
control, copied to different machines to reproduce the same profile, and
|
||||||
|
so on.
|
||||||
|
|
||||||
|
@c FIXME: Add reference to (guix profile) documentation when available.
|
||||||
|
@var{file} must return a @dfn{manifest} object, which is roughly a list
|
||||||
|
of packages:
|
||||||
|
|
||||||
|
@findex packages->manifest
|
||||||
@example
|
@example
|
||||||
(use-package-modules guile emacs gcc)
|
(use-package-modules guile emacs)
|
||||||
|
|
||||||
(packages->manifest
|
(packages->manifest
|
||||||
(list guile-2.0
|
(list emacs
|
||||||
emacs
|
guile-2.0
|
||||||
;; Use a specific package output.
|
;; Use a specific package output.
|
||||||
(list gcc "debug")))
|
(list guile-2.0 "debug")))
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@item --roll-back
|
@item --roll-back
|
||||||
|
|
Loading…
Reference in New Issue