Almacena paquetes de Apt en Artifact Registry

En esta guía de inicio rápido, se muestra cómo configurar un repositorio privado de Apt de Artifact Registry, agregar un paquete de Debian al repositorio y, luego, instalar el paquete en una VM de Compute Engine que ejecute un sistema operativo basado en Debian.

Para obtener más información sobre la administración de paquetes de Debian, consulta Trabajar con paquetes de Debian.

Antes de comenzar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Artifact Registry API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  8. Inicia Cloud Shell

    Cloud Shell ya viene instalado en Google Cloud CLI. Gcloud CLI proporciona la interfaz de línea de comandos principal para Google Cloud.

    Iniciar Cloud Shell:

    1. Ve a la consola de Google Cloud .

      Google Cloud console

    2. En la Google Cloud consola, haz clic en Activar Cloud Shell Botón Activar Cloud Shell.

    Se abrirá una sesión de Cloud Shell dentro de un marco en la parte inferior en la consola. Usarás esta shell para ejecutar los comandos de gcloud y crear una VM y un repositorio.

    Crea un repositorio

    Crea el repositorio para tus artefactos.

    1. Crea el repositorio:

      Console

      1. Abre la página Repositorios en la consola de Google Cloud .

        Abrir la página repositorios

      2. Haz clic en Crear repositorio.

      3. Especifica quickstart-apt-repo como el nombre del repositorio.

      4. Selecciona Apt como el formato.

      5. En Tipo de ubicación, selecciona Región y, luego, elige la ubicación us-west1.

      6. Haga clic en Crear.

      El repositorio se agrega a la lista de repositorios.

      gcloud

      1. En Cloud Shell, ejecuta el siguiente comando para crear un nuevo repositorio de Apt en el proyecto actual llamado quickstart-apt-repo en la ubicación us-west1.

        gcloud artifacts repositories create quickstart-apt-repo \
            --repository-format=apt \
            --location=us-west1 \
            --description="Apt repository"
        
      2. Ejecuta el siguiente comando para verificar que se haya creado el repositorio:

        gcloud artifacts repositories list
        

    Ahora puedes agregar un paquete al repositorio. Cloud Shell usa una imagen de Ubuntu compilada por Google, no de Debian. Para administrar los paquetes de Debian en el repositorio, usarás una VM que use una imagen de SO de Debian.

    Crea una VM

    Crea una nueva VM de Compute Engine en la que instalarás el paquete de muestra.

    En Cloud Shell, ejecuta el siguiente comando para crear una instancia de VM llamada quickstart-apt-vm:

    gcloud compute instances create quickstart-apt-vm \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --scopes=cloud-platform
    

    De forma predeterminada, la VM no tiene los permisos de acceso necesarios para trabajar con el repositorio. La marca --scopes establece el permiso de acceso de la VM en cloud-platform.

    1. Ve a la página Instancias de VM.

      Abre la página Instancias de VM

    2. En la fila con tu VM, haz clic en SSH. Se abrirá una ventana nueva con una sesión de terminal en la VM.

    Agrega un paquete al repositorio

    Puedes subir un paquete a un repositorio con Google Cloud CLI o importar un paquete almacenado en Cloud Storage. Si compilas paquetes con Cloud Build, la compilación puede almacenarlos en Cloud Storage para que los importes.

    En esta guía de inicio rápido, subirás un archivo de muestra con el comando gcloud artifacts apt upload.

    1. Ejecuta gcloud init para inicializar Google Cloud CLI en tu VM.

    2. Actualizar departamento:

      sudo apt update
      
    3. Descarga el paquete curl con el siguiente comando:

      apt download curl
      

      Apt descarga la versión más reciente del paquete disponible en los repositorios de Apt configurados.

      Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
      Get:2 https://deb.debian.org/debian bookworm/main amd64 curl amd64 7.88.1-10+deb12u14 [316 kB]
      Fetched 316 kB in 0s (3078 kB/s)
      

      Ejecuta ls para obtener el nombre de archivo del paquete curl. El nombre del archivo es similar a curl_7.88.1-10+deb12u14_amd64.deb.

    4. Para simplificar los comandos de gcloud, configura el repositorio predeterminado como quickstart-apt-repo y la ubicación predeterminada como us-west1. Una vez configurados los valores, no necesitas especificarlos en los comandos de gcloud que requieren un repositorio o una ubicación.

      Para configurar el repositorio, ejecuta el siguiente comando:

      gcloud config set artifacts/repository quickstart-apt-repo
      

      Para configurar la ubicación, ejecuta el siguiente comando:

      gcloud config set artifacts/location us-west1
      

      Para obtener más información sobre estos comandos, consulta la documentación de establecimiento de la configuración de gcloud.

    5. Ejecuta gcloud artifacts apt upload para subir el paquete al repositorio:

      gcloud artifacts apt upload quickstart-apt-repo \
          --source=FILE_NAME
      

      Reemplaza FILE_NAME por la ruta de acceso al paquete curl.

    Visualiza el paquete en el repositorio

    Verifica que tu paquete se haya agregado al repositorio.

    Console

    1. Abre la página Repositorios en la consola de Google Cloud .

      Abrir la página repositorios

    2. En la lista de repositorios, haz clic en el repositorio quickstart-apt-repo.

      En la página Paquetes, se enumeran los paquetes del repositorio.

    gcloud

    Para generar una lista de los paquetes en el repositorio quickstart-apt-repo, ejecuta el siguiente comando:

     gcloud artifacts packages list
    

    Para ver las versiones de un paquete en quickstart-apt-repo, ejecuta el siguiente comando:

    gcloud artifacts versions list --package=apt-dpkg-ref
    

    Configura el administrador de paquetes

    Para instalar un paquete en la VM, agrega el repositorio que creaste al archivo de configuración de Apt que define los repositorios de paquetes.

    1. Instala el asistente de credenciales de Apt en la VM para permitir que Apt realice la autenticación:

      sudo apt install apt-transport-artifact-registry
      
    2. Configura tu VM para acceder a los paquetes de Artifact Registry:

      echo 'deb ar+https://us-west1-apt.pkg.dev/projects/PROJECT quickstart-apt-repo main' | sudo tee -a  /etc/apt/sources.list.d/artifact-registry.list
      

      Reemplaza PROJECT por el ID del proyecto de Google Cloud.

    Instale el paquete

    Instala el paquete que agregaste al repositorio.

    1. Actualiza la lista de paquetes disponibles:

      sudo apt update
      
    2. Instala el paquete desde tu repositorio.

      sudo apt install curl/quickstart-apt-repo
      

      La información de instalación que se devuelve se ve como en el siguiente ejemplo:

      Reading package lists... Done
      Building dependency tree... Done
      Reading state information... Done
      Selected version '7.88.1-10+deb12u14' (quickstart-apt-repo:quickstart-apt-repo, Debian:12.12/oldstable [amd64]) for 'curl'
      The following additional packages will be installed:
        libcurl3-gnutls libcurl4
      The following packages will be upgraded:
        curl libcurl3-gnutls libcurl4
      3 upgraded, 0 newly installed, 0 to remove and 77 not upgraded.
      Need to get 1093 kB of archives.
      After this operation, 0 B of additional disk space will be used.
      Do you want to continue? [Y/n] y
      Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
      Get:2 https://deb.debian.org/debian bookworm/main amd64 libcurl4 amd64 7.88.1-10+deb12u14 [392 kB]
      Get:3 https://deb.debian.org/debian bookworm/main amd64 libcurl3-gnutls amd64 7.88.1-10+deb12u14 [386 kB]
      Get:4 ar+https://us-west1-apt.pkg.dev/projects/PROJECT quickstart-apt-repo/main amd64 curl amd64 7.88.1-10+deb12u14 [316 kB]
      Fetched 1093 kB in 1s (947 kB/s)
      Reading changelogs... Done
      (Reading database ... 72080 files and directories currently installed.)
      Preparing to unpack .../curl_7.88.1-10+deb12u14_amd64.deb ...
      Unpacking curl (7.88.1-10+deb12u14) over (7.88.1-10+deb12u12) ...
      Preparing to unpack .../libcurl4_7.88.1-10+deb12u14_amd64.deb ...
      Unpacking libcurl4:amd64 (7.88.1-10+deb12u14) over (7.88.1-10+deb12u12) ...
      Preparing to unpack .../libcurl3-gnutls_7.88.1-10+deb12u14_amd64.deb ...
      Unpacking libcurl3-gnutls:amd64 (7.88.1-10+deb12u14) over (7.88.1-10+deb12u12) ...
      Setting up libcurl3-gnutls:amd64 (7.88.1-10+deb12u14) ...
      Setting up libcurl4:amd64 (7.88.1-10+deb12u14) ...
      Setting up curl (7.88.1-10+deb12u14) ...
      Processing triggers for man-db (2.11.2-2) ...
      Processing triggers for libc-bin (2.36-9+deb12u10) ...
      

    Realiza una limpieza

    Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que usaste en esta página.

    Antes de quitar el repositorio, asegúrate de que los paquetes que quieres conservar estén disponibles en otra ubicación.

    Para borrar el repositorio, haz lo siguiente:

    Console

    1. Abre la página Repositorios en la consola de Google Cloud .

      Abrir la página repositorios

    2. En la lista de repositorios, selecciona el repositorio quickstart-apt-repo.

    3. Haz clic en Borrar.

    gcloud

    1. Para borrar el repositorio quickstart-apt-repo, ejecuta el siguiente comando:

      gcloud artifacts repositories delete quickstart-apt-repo
      
    2. Si deseas quitar la configuración predeterminada de la ubicación y del repositorio que estableciste para la configuración activa de gcloud, ejecuta los siguientes comandos:

      gcloud config unset artifacts/repository
      gcloud config unset artifacts/location
      

    Para borrar la VM que creaste, ejecuta el siguiente comando:

    gcloud compute instances delete quickstart-apt-vm
    

    ¿Qué sigue?