Next: , Previous: , Up: Package Management   [Contents][Index]


5.7 Invoking guix time-machine

The guix time-machine command provides access to other revisions of Guix, for example to install older versions of packages, or to reproduce a computation in an identical environment. The revision of Guix to be used is defined by a commit or by a channel description file created by guix describe (see Invoking guix describe).

The general syntax is:

guix time-machine options… -- command arg

where command and arg… are passed unmodified to the guix command of the specified revision. The options that define this revision are the same as for guix pull (see Invoking guix pull):

--url=url
--commit=commit
--branch=branch

Use the guix channel from the specified url, at the given commit (a valid Git commit ID represented as a hexadecimal string), or branch.

--channels=file
-C file

Read the list of channels from file. file must contain Scheme code that evaluates to a list of channel objects. See Channels for more information.

As for guix pull, the absence of any options means that the latest commit on the master branch will be used. The command

guix time-machine -- build hello

will thus build the package hello as defined in the master branch, which is in general a newer revision of Guix than you have installed. Time travel works in both directions!

Note that guix time-machine can trigger builds of channels and their dependencies, and these are controlled by the standard build options (see Common Build Options).


Next: , Previous: , Up: Package Management   [Contents][Index]