Next: Младшие версии, Previous: Вызов guix pull
, Up: Управление пакетами [Contents][Index]
guix time-machine
Команда guix time-machine
предоставляет доступ к другим версиям
Guix, например, для установки более старых версий пакетов или для
воспроизведения вычислений в идентичной среде. Версия используемого Guix
определяется коммитом или файлом описания канала, созданным guix
describe
(see Вызов guix describe
).
Let’s assume that you want to travel to those days of November 2020 when
version 1.2.0 of Guix was released and, once you’re there, run the
guile
of that time:
guix time-machine --commit=v1.2.0 -- \ environment -C --ad-hoc guile -- guile
The command above fetches Guix 1.2.0 and runs its guix
environment
command to spawn an environment in a container running
guile
(guix environment
has since been subsumed by
guix shell
; see Вызов guix shell
). It’s like driving a
DeLorean12! The first guix time-machine
invocation can
be expensive: it may have to download or even build a large number of
packages; the result is cached though and subsequent commands targeting the
same commit are almost instantaneous.
Примечание: The history of Guix is immutable and
guix time-machine
provides the exact same software as they are in a specific Guix revision. Naturally, no security fixes are provided for old versions of Guix or its channels. A careless use ofguix time-machine
opens the door to security vulnerabilities. See --allow-downgrades.
Основной синтаксис:
guix time-machine options… -- command arg…
где command и arg… передаются без изменений в команду
guix
указанной ревизии. options, которые определяют эту
ревизию, такие же, как и для guix pull
(see Вызов 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
the name of a tag), or branch.
--channels=file
-C file
Считать список каналов из файла file вместо ~/.config/guix/channels.scm. file должен содержать код Scheme, который определяет список объектов "канал". См. See Каналы для подробной информации.
Что касается guix pull
, то отсутствие каких-либо опций означает,
что будет использоваться последний коммит в основной ветке. Команда
guix time-machine -- build hello
таким образом, мы соберем пакет hello
, как определено в основной
ветке, которая, как правило, является более новой версией Guix, чем вы
установили. Путешествие во времени работает в обоих направлениях!
Если указанные пакеты ещё не собраны, guix archive
автоматически
соберёт их. Процесс сборки может контролироваться обычными опциями сборки
(see Стандартные параметры сборки).
Next: Младшие версии, Previous: Вызов guix pull
, Up: Управление пакетами [Contents][Index]