Gerenciar pacotes Debian

Esta página descreve como adicionar, visualizar e excluir pacotes Debian em repositórios do Apt.

Antes de começar

  1. Se o repositório de destino do Apt não existir, crie um novo repositório.
  2. Configure as VMs para acessar o repositório.
  3. (Opcional) Configure padrões para comandos gcloud.
  4. Verifique se os nomes dos 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 para que o repositório adicione 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, eles poderão ser armazenados no Cloud Storage para você importar.

Operações de importação ou upload muito longas podem exceder o período de expiração do token que a CLI gcloud usa para chamar a API. Se você tiver um número muito grande de pacotes para 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. Consulte a documentação Solução de problemas de pacotes do SO para mais informações.

Envio direto

Use o comando gcloud artifacts apt upload para fazer upload de um pacote para um repositório do 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 my-repo do Apt no local us-west1, execute:

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

Cloud Storage

  1. Faça upload dos pacotes para o Cloud Storage:
    • Fazer upload de pacotes diretamente para um bucket do Cloud Storage
    • Crie pacotes com o Cloud Build e armazene os pacotes 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-west1, execute:

    gcloud artifacts apt import my-repo \
      --location=us-west1 \
      --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, use o console doGoogle Cloud ou a CLI gcloud para acessar os pacotes no repositório e confirmar se eles foram enviados.

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

Como visualizar pacotes

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

Para conferir os pacotes, você precisa ter as permissões na função de leitor do Artifact Registry. O Artifact Registry não lista arquivos dentro de pacotes.

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

Console

  1. Abra a página Repositórios no console 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]

Substitua:

  • REPOSITORY é o nome do repositório. Se você tiver configurado um repositório padrão, poderá omitir essa flag para usar o padrão.
  • LOCATION é o local regional ou multirregional do repositório. Se você tiver configurado um local padrão, poderá omitir essa flag 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]

Substitua:

  • 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, poderá omitir essa flag para usar o padrão.
  • LOCATION é o local regional ou multirregional do repositório. Use essa flag para conferir repositórios em um local específico. Se você tiver configurado um local padrão, poderá omitir essa flag para usar o padrão.

Como instalar pacotes

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

Antes de instalar 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 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

Before you delete a package or package version, verify that any you have communicated or addressed any important dependencies on it.

To delete a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Abrir a página Repositórios

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Select the package that you want to delete.

  4. Click DELETE.

  5. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

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

Replace the following:

  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

The --async flag causes the command to return immediately, without waiting for the operation in progress to complete.

To delete versions of a package:

Console

  1. Open the Repositories page in the Google Cloud console.

    Abrir a página Repositórios

  2. In the repository list, click the appropriate repository.

    The Packages page lists the packages in the repository.

  3. Click a package to view versions of that package.

  4. Select versions that you want to delete.

  5. Click DELETE.

  6. In the confirmation dialog box, click DELETE.

gcloud

Run the following command:

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

Replace the following:

  • VERSION is the name of the version to delete.
  • PACKAGE is the name of the package in the repository.
  • REPOSITORY is the name of the repository. If you configured a default repository, then you can omit this flag to use the default.
  • LOCATION is the regional or multi-regional location of the repository. Use this flag to view repositories in a specific location. If you configured a default location, then you can omit this flag to use the default.

The --async flag causes the command to return immediately, without waiting for the operation in progress to complete.

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

A seguir