Próximo: , Anterior: , Acima: Canais   [Conteúdo][Índice]


6.7 Criando um canal

Digamos que você tenha um monte de variantes de pacotes personalizados ou pacotes pessoais que você acha que faria pouco sentido contribuir para o projeto Guix, mas gostaria de ter esses pacotes disponíveis de forma transparente para você na linha de comando. Ao criar um canal, você pode usar e publicar tal coleção de pacotes. Isso envolve as seguintes etapas:

  1. Um canal fica em um repositório Git, então o primeiro passo, ao criar um canal, é criar seu repositório:
    mkdir meu-canal
    cd meu-canal
    git init
    
  2. O próximo passo é criar arquivos contendo módulos de pacote (veja Módulos de pacote), cada um dos quais conterá uma ou mais definições de pacote (veja Definindo pacotes). Um canal pode fornecer coisas além de pacotes, como sistemas de compilação ou serviços; estamos usando pacotes, pois é o caso de uso mais comum.

    Por exemplo, Alice pode querer fornecer um módulo chamado (alice packages greetings) que fornecerá suas implementações favoritas de “hello world”. Para fazer isso, Alice criará um diretório correspondente ao nome desse módulo.

    mkdir -p alice/packages
    $EDITOR alice/packages/greetings.scm
    git add alice/packages/greetings.scm
    

    Você pode nomear seus módulos de pacote como quiser; a principal restrição a ter em mente é evitar conflitos de nomes com outras coleções de pacotes, e é por isso que nossa hipotética Alice sabiamente escolheu o namespace (alice packages …).

    Observe que você também pode colocar módulos em um subdiretório do repositório; veja Módulos de pacote em um subdiretório, para mais informações sobre isso.

  3. Com este primeiro módulo em funcionamento, o próximo passo é testar os pacotes que ele fornece. Isso pode ser feito com guix build, que precisa ser informado para procurar módulos no checkout do Git. Por exemplo, supondo que (alice packages greetings) forneça um pacote chamado hi-from-alice, Alice executará este comando do checkout do Git:
    guix build -L. hi-from-alice
    

    ... onde -L. adiciona o diretório atual ao caminho de carregamento do Guile (veja Load Paths em Manual de referência do GNU Guile).

  4. Pode levar algumas iterações para Alice obter definições de pacote satisfatórias. Eventualmente, Alice fará commit deste arquivo:
    git commit
    

    Como autor de um canal, considere agrupar material de autenticação com seu canal para que os usuários possam autenticá-lo. Veja Autenticação de canal e Especificando autorizações de canal para obter informações sobre como fazer isso.

  5. Para usar o canal de Alice, qualquer pessoa pode adicioná-lo ao seu arquivo de canal (veja Especificando canais adicionais) e executar guix pull (veja Invocando guix pull):
    $EDITOR ~/.config/guix/channels.scm
    guix pull
    

    Guix agora se comportará como se o diretório raiz do repositório Git daquele canal tivesse sido adicionado permanentemente ao caminho de carregamento do Guile. Neste exemplo, (alice packages greetings) será encontrado automaticamente pelo comando guix.

Voilà!

Aviso: Antes de publicar seu canal, gostaríamos de compartilhar algumas palavras de cautela:

Você foi avisado! Dito isso, acreditamos que canais externos são uma maneira prática de exercer sua liberdade para aumentar a coleção de pacotes do Guix e compartilhar suas melhorias, que são princípios básicos do software livre. Por favor, envie um e-mail para guix-devel@gnu.org se você quiser discutir isso.


Próximo: Módulos de pacote em um subdiretório, Anterior: Canais com substitutos, Acima: Canais   [Conteúdo][Índice]