Gerenciar pacotes do Debian

Nesta página, descrevemos como adicionar, visualizar e excluir pacotes Debian em repositórios Apt.

Antes de começar

  1. Se o repositório Apt de destino não existir, crie um novo repositório.
  2. Configure VMs para acessar o repositório.
  3. (Opcional) Configure padrões para comandos gcloud.
  4. Verifique se os nomes de pacotes nos metadados atendem aos padrões de nome de pacote do Debian.

Como adicionar pacotes

Modos de repositório: padrão

Você precisa ter permissões de leitura e gravação no repositório para adicionar pacotes.

É possível fazer upload de um pacote para um repositório usando a Google Cloud CLI ou importar um pacote armazenado no Cloud Storage. Se você criar pacotes usando o Cloud Build, a versão poderá armazenar os pacotes no Cloud Storage para importá-los.

Operações de importação ou upload muito longas podem exceder o período de validade do token que a CLI gcloud usa para chamar a API. Se você tiver um número muito de pacotes a adicionar, considere adicioná-los em lotes menores para que cada operação de upload ou importação possa ser concluída em um período mais curto. Para mais informações, consulte a documentação Solução de problemas de pacotes do SO.

Envio direto

Use o comando gcloud artifacts apt upload para fazer upload de um pacote para um repositório Apt:

gcloud artifacts apt upload REPOSITORY \
    --location=LOCATION \
    --source=PACKAGES

Substitua os seguintes valores:

  • REPOSITORY é o nome do repositório do Artifact Registry.
  • LOCATION é o local regional ou multirregional do repositório.
  • PACKAGES é o caminho para o pacote.

Por exemplo, para fazer upload do pacote my-package.deb para o repositório Apt my-repo no local us-central1, execute:

gcloud artifacts apt upload my-repo \
    --location=us-central1 \
    --source=my-package.deb

Cloud Storage

  1. Faça upload dos pacotes para o Cloud Storage de uma das seguintes maneiras:

    • Faça upload de pacotes diretamente para um bucket do Cloud Storage.
    • Crie pacotes com o Cloud Build e armazene-os em um bucket
  2. Execute este comando:

    gcloud artifacts apt import REPOSITORY \
        --location=LOCATION \
         --gcs-source=PACKAGES
    

    Substitua os seguintes valores:

    • REPOSITORY é o nome do repositório do Artifact Registry.
    • LOCATION é o local regional ou multirregional do repositório.
    • PACKAGES é uma lista de pacotes separados por vírgulas no Cloud Storage. Para fazer upload de todos os pacotes de um diretório, use um caractere curinga de diretório (*) ou um caractere curinga de diretório recursivo (**) para fazer upload de todos os pacotes em todos os subdiretórios.

    Por exemplo, para fazer upload do pacote package.rpm e de todos os pacotes no diretório directory do bucket my-bucket para o repositório Apt my-repo no local us-central1, execute:

    gcloud artifacts apt import my-repo \
       --location=us-central1 \
       --gcs-source=gs://my-bucket/path/to/package.deb,gs://my-bucket/directory*
    

Quando a operação de upload ou importação for concluída, será possível usar o console do Google Cloud ou CLI gcloud para visualizar pacotes no repositório e confirmar se eles foram enviados com êxito.

Se você tiver um repositório grande com muitos pacotes, pode levar vários minutos para gerar novamente o índice de pacotes. Assim, os novos pacotes ficam visíveis para o cliente Apt.

Como visualizar pacotes

Modos de repositório:padrão, remoto (pré-lançamento)

Para conferir os pacotes, é preciso ter as permissões do papel Leitor do Artifact Registry. O Artifact Registry não lista arquivos dentro de pacotes.

Para visualizar pacotes e versões de pacote usando o console do Google Cloud ou gcloud:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, clique no repositório apropriado.

    A página Pacotes lista os pacotes no repositório.

  3. Clique em um pacote para visualizar as versões dele.

gcloud

Para listar pacotes em um repositório, execute o seguinte comando:

gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]

Onde

  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, você pode omitir essa sinalização para usar o padrão.
  • LOCATION é um local ou multirregião local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.

Para ver as versões de um pacote, execute o seguinte comando:

gcloud artifacts versions list --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION]

Onde

  • PACKAGE é o ID do pacote ou o identificador totalmente qualificado do pacote.
  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, você pode omitir essa sinalização para usar o padrão.
  • LOCATION é um local ou multirregião local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.

Como instalar pacotes

Modos de repositório:padrão, remoto (pré-lançamento)

Antes de instalar os pacotes, verifique se você configurou o gerenciador de pacotes e o repositório corretamente.

Para instalar um pacote no repositório:

  1. Atualize a lista de pacotes disponíveis:

    sudo apt update
    
  2. Instale o pacote, especificando o nome do repositório configurado no Apt.

    sudo apt install PACKAGE/REPOSITORY
    

    Substitua os seguintes valores:

    • PACKAGE é o nome do pacote.
    • REPOSITORY é o nome do repositório do Artifact Registry. Para repositórios remotos, use o nome do repositório upstream padrão.

    Por exemplo, para instalar o pacote my-package a partir do repositório my-repo, execute o comando:

    sudo apt install my-package -t my-repo
    

Como excluir pacotes

Modos de repositório: padrão

Antes de excluir uma versão de pacote ou um pacote, verifique se você comunicou ou resolveu qualquer dependência importante nele.

Para excluir um pacote:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, clique no repositório apropriado.

    A página Pacotes lista os pacotes no repositório.

  3. Selecione o pacote que você quer excluir.

  4. Clique em EXCLUIR.

  5. Na caixa de diálogo de confirmação, clique em Excluir.

gcloud

Execute este comando:

gcloud artifacts packages delete PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] [--async]

Onde

  • PACKAGE é o nome do pacote no repositório.
  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, você pode omitir essa sinalização para usar o padrão.
  • LOCATION é um local ou multirregião local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.
  • --async Retorna imediatamente, sem aguardar a conclusão da operação em andamento.

Para excluir versões de um pacote:

Console

  1. Abra a página Repositórios no console do Google Cloud.

    Abrir a página Repositórios

  2. Na lista de repositórios, clique no repositório apropriado.

    A página Pacotes lista os pacotes no repositório.

  3. Clique em um pacote para visualizar as versões dele.

  4. Selecione as versões que você quer excluir.

  5. Clique em EXCLUIR.

  6. Na caixa de diálogo de confirmação, clique em Excluir.

gcloud

Execute este comando:

gcloud artifacts versions delete VERSION \
    --package=PACKAGE \
    [--repository=REPOSITORY] [--location=LOCATION] \
    [--async]

Onde

  • PACKAGE é o nome do pacote no repositório.
  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, você pode omitir essa sinalização para usar o padrão.
  • LOCATION é um local ou multirregião local. Use esta sinalização para ver repositórios em um local específico. Se você configurou um local default, é possível omitir essa sinalização para usar o padrão.
  • --async retorna imediatamente, sem aguardar a conclusão da operação em andamento.

Para repositórios grandes, pode levar alguns minutos para gerar novamente o índice do pacote Apt para refletir as exclusões.

A seguir