Next: Запуск guix time-machine
, Previous: Вызов guix gc
, Up: Управление пакетами [Contents][Index]
guix pull
Packages are installed or upgraded to the latest version available in the
distribution currently available on your local machine. To update that
distribution, along with the Guix tools, you must run guix pull
:
the command downloads the latest Guix source code and package descriptions,
and deploys it. Source code is downloaded from a
Git repository, by default the official
GNU Guix repository, though this can be customized. guix
pull
ensures that the code it downloads is authentic by verifying
that commits are signed by Guix developers.
В частности, guix pull
загружает код из channel
(see Каналы), указанного одним из следующих способов, в следующем
порядке:
%default-channels
.
После выполнения этой команды guix package
будет использовать
пакеты и те их версии, которые имеются в только что полученной копии
Guix. Эта последняя версия будет источником также всех команд Guix, модулей
Scheme. Из этого обновления станет доступен набор команд guix
.
Любой пользователь может обновить свою копию Guix, используя guix
pull
, эффект коснётся только пользователя, который запустил guix
pull
. Например, если пользователь root
запускает guix
pull
, это не имеет эффекта на версию Guix, которую видит alice
sees,
и наоборот.
Результат запуска guix pull
— это профиль profile,
доступный в ~/.config/guix/current, содержащий последний Guix. Так
что обязательно добавьте этот адрес первым в пути поиска, чтобы использовать
последнюю версию, а также для руководства Info (see Документация):
export PATH="$HOME/.config/guix/current/bin:$PATH" export INFOPATH="$HOME/.config/guix/current/share/info:$INFOPATH"
Опция --list-generations
или -l
выводит список последних
поколений, поставленных guix pull
, вместе с деталями об их
происхождении:
$ guix pull -l Generation 1 Jun 10 2018 00:18:18 guix 65956ad repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe Generation 2 Jun 11 2018 11:02:49 guix e0cc7f6 repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d Generation 3 Jun 13 2018 23:31:07 (current) guix 844cc1c repository URL: https://git.savannah.gnu.org/git/guix.git branch: origin/master commit: 844cc1c8f394f03b404c5bb3aee086922373490c
Смотрите See guix describe
, для
информации о других способах получить информацию о текущем статусе Guix.
Этот профиль ~/.config/guix/current
работает, как любой другой
профиль, созданный guix package
(see Вызов guix package
). Так что можно вывести список поколений, откатиться до предыдущего
поколения, то есть до предыдущего Guix, и так далее:
$ guix package -p ~/.config/guix/current --roll-back switched from generation 3 to 2 $ guix package -p ~/.config/guix/current --delete-generations=1 deleting /var/guix/profiles/per-user/charlie/current-guix-1-link
Вы также можете использовать guix package
(see Вызов guix package
), чтобы управлять профилем, называя его явно:
$ guix package -p ~/.config/guix/current --roll-back switched from generation 3 to 2 $ guix package -p ~/.config/guix/current --delete-generations=1 deleting /var/guix/profiles/per-user/charlie/current-guix-1-link
Команда guix pull
обычно вызывается без аргументов, но
поддерживает следующие опции:
--url=url
--commit=commit
--branch=branch
Download code for 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.
Эти опции внедрены для удобства, но также можно задать конфигурационный файл ~/.config/guix/channels.scm или использовать опцию --channels (смотрите ниже).
--channels=file
-C file
Считать список каналов из файла file вместо ~/.config/guix/channels.scm. file должен содержать код Scheme, который определяет список объектов "канал". См. See Каналы для подробной информации.
--news
-N
Display news written by channel authors for their users for changes made since the previous generation (see Writing Channel News). When --details is passed, additionally display new and upgraded packages.
You can view that information for previous generations with guix
pull -l
.
--list-generations[=pattern]
-l [pattern]
Вывести список всех поколений ~/.config/guix/current или, если
предоставлен паттерн pattern, подмножество поколений, которые
соответствуют pattern. Синтаксис pattern — такой же, как у
guix package --list-generations
(see Вызов guix package
).
By default, this prints information about the channels used in each revision as well as the corresponding news entries. If you pass --details, it will also print the list of packages added and upgraded in each generation compared to the previous one.
--details
Instruct --list-generations or --news to display more information about the differences between subsequent generations—see above.
--roll-back
¶Откатиться до предыдущего поколения профиля, то есть отменить последнюю транзакцию.
--switch-generation=pattern
¶-S pattern
Переключиться на определённое поколение, опрделённое pattern.
pattern может быть либо номером поколения или числом с префиксом "+"
или "-". Последнее означает сменить вперёд/назад на обозначенное число
поколений. Например, если вы хотите вернуться к последнему поколению после
--roll-back
, используйте --switch-generation=+1
.
--delete-generations[=pattern]
-d [pattern]
Если pattern пропущен, удалит все поголения, кроме текущего.
Эта команда принимает такие же паттерны, как
--list-generations. Если pattern задан, удалит
соответствующие поколения. Если паттерн pattern задаёт срок,
выбираются поколения старше срока. Например,
--delete-generations=1m
удалит поколения, которые старше одного
месяца.
Если текущее поколение попадает под условия паттерна, оно не будет удалено. А также нулевое поокление никогда не удаляется.
Отметим, что удаление поколений делает невозможным откат к ним. Следовательно эта команда должна использоваться внимательно.
См. See Вызов guix describe
, чтобы узнать, как вывести информацию
только о текущем поколении.
--profile=profile
-p profile
Использовать профиль profile вместо ~/.config/guix/current.
--dry-run
-n
Показать, какие коммиты будут использоваться, и что будет собрано или скачано в виде подстановок, но не выполнять эту работу.
--allow-downgrades
Разрешить загружать более старые или несвязанные версии каналов, чем те, которые используются в настоящее время.
По умолчанию guix pull
защищает от так называемых “атак на более
раннюю версию”, когда репозиторий Git данного канала будет сброшен до более
ранней или несвязанной версии, что может привести к установке более старых,
известных уязвимых версий пакетов.
Примечание: Прежде чем использовать --allow-downgrades, убедитесь, что вы понимаете его последствия для безопасности.
--disable-authentication
Разрешить загрузку канала без его аутентификации.
По умолчанию guix pull
аутентифицирует код, загруженный из
каналов, проверяя, что его коммиты подписаны авторизованными разработчиками,
и выдает ошибку, если это не так. Эта опция дает указание не выполнять
такую проверку.
Примечание: Прежде чем использовать --disable-authentication, убедитесь, что вы понимаете его последствия для безопасности.
--system=system
-s system
Предпринять попытку собрать систему system, т.е. i686-linux
,
вместо типа системы хоста сборки.
--bootstrap
Использовать бутстрап Guile для сорки последнего Guix. Эта опция полезна только для разработчиков.
Механизм каналов channel позволяет указать guix pull
, из
какого репозитория или ветки скачивать, а также какие дополнительные
репозитории должны использоваться для развёртки. См. See Каналы для
подробной информации.
В добавок guix pull
поддерживает все стандартные опции сборки
(see Стандартные параметры сборки).
Next: Запуск guix time-machine
, Previous: Вызов guix gc
, Up: Управление пакетами [Contents][Index]