Próximo: , Anterior: , Acima: Gerenciamento de pacote   [Conteúdo][Índice]


5.7 Invocando guix pull

Os pacotes são instalados ou atualizados para a versão mais recente disponível na distribuição atualmente disponível na sua máquina local. Para atualizar essa distribuição, junto com as ferramentas Guix, você deve executar guix pull: o comando baixa o código-fonte Guix mais recente e as descrições dos pacotes, e os implementa. O código-fonte é baixado de um repositório Git, por padrão o repositório oficial GNU Guix, embora isso possa ser personalizado. guix pull garante que o código que ele baixa é autêntico, verificando se os commits são assinados pelos desenvolvedores Guix.

Especificamente, guix pull baixa o código dos canais (veja Canais) especificados por um dos seguintes, nesta ordem:

  1. a opção --channels;
  2. o arquivo ~/.config/guix/channels.scm do usuário, a menos que -q seja passado;
  3. o arquivo /etc/guix/channels.scm de todo o sistema, a menos que -q seja passado (no sistema Guix, este arquivo pode ser declarado na configuração do sistema operacional, veja campo channels de guix-configuration);
  4. os canais padrão integrados especificados na variável %default-channels.

Após a conclusão, guix package usará pacotes e versões de pacotes desta cópia recém-recuperada do Guix. Não apenas isso, mas todos os comandos Guix e módulos Scheme também serão retirados dessa versão mais recente. Novos subcomandos guix adicionados pela atualização também se tornam disponíveis.

Qualquer usuário pode atualizar sua cópia do Guix usando guix pull, e o efeito é limitado ao usuário que executou guix pull. Por exemplo, quando o usuário root executa guix pull, isso não tem efeito na versão do Guix que o usuário alice vê, e vice-versa.

O resultado da execução de guix pull é um perfil disponível em ~/.config/guix/current contendo o Guix mais recente.

A opção --list-generations ou -l lista gerações anteriores produzidas por guix pull, juntamente com detalhes sobre sua procedência:

$ guix pull -l
Geração 1	10 jun 2018 00:18:18
  guix 65956ad
    URL do repositório: https://git.savannah.gnu.org/git/guix.git
    ramo: origin/master
    commit: 65956ad3526ba09e1f7a40722c96c6ef7c0936fe

Geração 2	11 jun 2018 11:02:49
  guix e0cc7f6
    URL do repositório: https://git.savannah.gnu.org/git/guix.git
    ramo: origin/master
    commit: e0cc7f669bec22c37481dd03a7941c7d11a64f1d

Geração 3	13 jun 2018 23:31:07	(atual)
  guix 844cc1c
    URL do repositório: https://git.savannah.gnu.org/git/guix.git
    ramo: origin/master
    commit: 844cc1c8f394f03b404c5bb3aee086922373490c

Veja guix describe, para outras maneiras de descrever o status atual do Guix.

Este perfil ~/.config/guix/current funciona exatamente como os perfis criados por guix package (veja Invocando guix package). Ou seja, você pode listar gerações, reverter para a geração anterior — ou seja, o Guix anterior — e assim por diante:

$ guix pull --roll-back
trocado da geração 3 para 2
$ guix pull --delete-generations=1
excluindo /var/guix/profiles/per-user/charlie/current-guix-1-link

Você também pode usar guix package (veja Invocando guix package) para gerenciar o perfil nomeando-o explicitamente:

$ guix package -p ~/.config/guix/current --roll-back
trocado da geração 3 para 2
$ guix package -p ~/.config/guix/current --delete-generations=1
excluindo /var/guix/profiles/per-user/charlie/current-guix-1-link

O comando guix pull geralmente é invocado sem argumentos, mas suporta as seguintes opções:

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

Baixe o código para o canal guix do url especificado, no commit fornecido (um ID de commit Git válido representado como uma string hexadecimal ou o nome de uma tag) ou ramo.

Essas opções são fornecidas para sua conveniência, mas você também pode especificar sua configuração no arquivo ~/.config/guix/channels.scm ou usando a opção --channels (veja abaixo).

--channels=arquivo
-C arquivo

Leia a lista de canais de arquivo em vez de ~/.config/guix/channels.scm ou /etc/guix/channels.scm. arquivo deve conter código Scheme que avalia uma lista de objetos de canal. Veja Canais, para mais informações.

--no-channel-files
-q

Inibir o carregamento dos arquivos de canal do usuário e do sistema, ~/.config/guix/channels.scm e /etc/guix/channels.scm.

--news
-N

Exibir notícias escritas por autores de canais para seus usuários para alterações feitas desde a geração anterior (veja Escrevendo Notícias de Canal). Quando --details é passado, exibir adicionalmente pacotes novos e atualizados.

Você pode visualizar essas informações de gerações anteriores com guix pull -l.

--list-generations[=padrão]
-l [padrão]

Liste todas as gerações de ~/.config/guix/current ou, se padrão for fornecido, o subconjunto de gerações que correspondem a padrão. A sintaxe de padrão é a mesma de guix package --list-generations (veja Invocando guix package).

Por padrão, isso imprime informações sobre os canais usados em cada revisão, bem como as entradas de notícias correspondentes. Se você passar --details, ele também imprimirá a lista de pacotes adicionados e atualizados em cada geração em comparação com a anterior.

--details

Instrua --list-generations ou --news para exibir mais informações sobre as diferenças entre gerações subsequentes — veja acima.

--roll-back

Reverta para a geração anterior de ~/.config/guix/current—ou seja, desfaça a última transação.

--switch-generation=padrão
-S padrão

Mude para uma geração específica definida por padrão.

padrão pode ser um número de geração ou um número prefixado com "+” ou "-”. O último significa: mover para frente/para trás por um número especificado de gerações. Por exemplo, se você quiser retornar para a última geração após --roll-back, use --switch-generation=+1.

--delete-generations[=padrão]
-d [padrão]

Quando padrão for omitido, exclua todas as gerações, exceto a atual.

Este comando aceita os mesmos padrões de --list-Generations. Quando pattern for especificado, exclua as gerações correspondentes. Quando padrão especifica uma duração, as gerações mais antigas que a duração especificada correspondem. Por exemplo, --delete-generations=1m exclui gerações com mais de um mês.

Se a geração atual corresponder, ela não será excluída.

Observe que a exclusão de gerações impede a reversão para elas. Conseqüentemente, este comando deve ser usado com cuidado.

Veja Invocando guix describe, para uma maneira de exibir informações somente sobre a geração atual.

--profile=perfil
-p perfil

Use perfil em vez de ~/.config/guix/current.

--dry-run
-n

Mostre quais commits de canal seriam usados e o que seria construído ou substituído, mas não faça isso de fato.

--allow-downgrades

Permitir extrair revisões de canais mais antigas ou não relacionadas às que estão em uso atualmente.

Por padrão, guix pull protege contra os chamados "ataques de downgrade”, nos quais o repositório Git de um canal seria redefinido para uma revisão anterior ou não relacionada a si mesmo, potencialmente levando você a instalar versões mais antigas e conhecidas de pacotes de software.

Nota: Certifique-se de entender as implicações de segurança antes de usar --allow-downgrades.

--disable-authentication

Permitir extrair código de canal sem autenticá-lo.

Por padrão, guix pull autentica o código baixado de canais verificando se seus commits são assinados por desenvolvedores autorizados e gera um erro se esse não for o caso. Esta opção o instrui a não executar nenhuma verificação desse tipo.

Nota: Certifique-se de entender as implicações de segurança antes de usar --disable-authentication.

--system=sistema
-s sistema

Tente compilar para sistema—por exemplo, i686-linux—em vez do tipo de sistema do host de compilação.

--bootstrap

Use o bootstrap Guile para construir o Guix mais recente. Esta opção é útil somente para desenvolvedores Guix.

O mecanismo dos canais permite que você instrua guix pull de qual repositório e branch extrair, bem como repositórios adicionais contendo módulos de pacote que devem ser implantados. Veja Canais, para mais informações.

Além disso, guix pull suporta todas as opções de compilação comuns (veja Opções de compilação comuns).


Próximo: Invocando guix time-machine, Anterior: Invocando guix gc, Acima: Gerenciamento de pacote   [Conteúdo][Índice]