Archiviazione dei pacchetti Apt in Artifact Registry

Questa guida rapida mostra come configurare un repository Apt privato di Artifact Registry, aggiungere un pacchetto Debian al repository e installare il pacchetto su una VM di Compute Engine che esegue un sistema operativo basato su Debian.

Per saperne di più sulla gestione dei pacchetti Debian, consulta Utilizzo dei pacchetti Debian.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. Se non hai mai utilizzato Google Cloud, crea un account per valutare il rendimento dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per eseguire, testare ed eseguire il deployment dei carichi di lavoro.
  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. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

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

  5. 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

  6. 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

  7. If you're using an existing project for this guide, verify that you have the permissions required to complete this guide. If you created a new project, then you already have the required permissions.

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

  9. 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

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare e gestire i repository di pacchetti Apt di Artifact Registry, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Avvia Cloud Shell

Cloud Shell è preinstallato con il Google Cloud CLI. gcloud CLI fornisce l'interfaccia a riga di comando principale per per Google Cloud.

Avvia Cloud Shell:

  1. Vai alla Google Cloud console.

    Google Cloud console

  2. Nella Google Cloud console, fai clic su Attiva Cloud Shell Pulsante Attiva Cloud Shell.

Una sessione di Cloud Shell si apre in un frame nella parte inferiore della console. Utilizzerai questa shell per eseguire i comandi gcloud per creare una VM e un repository.

Crea un repository

Crea il repository per gli artefatti.

  1. Crea il repository:

    Console

    1. Apri la pagina Repository nella Google Cloud console.

      Apri la pagina Repositori

    2. Fai clic su Crea repository.

    3. Specifica quickstart-apt-repo come nome del repository.

    4. Seleziona Apt come formato.

    5. In Tipo di località, seleziona Regione, quindi scegli la località us-west1.

    6. Fai clic su Crea.

    Il repository viene aggiunto all'elenco dei repository.

    gcloud

    1. In Cloud Shell, esegui il comando seguente per creare un nuovo repository Apt nel progetto attuale denominato quickstart-apt-repo nella località us-west1.

      gcloud artifacts repositories create quickstart-apt-repo \
          --repository-format=apt \
          --location=us-west1 \
          --description="Apt repository"
      
    2. Esegui questo comando per verificare che il repository sia stato creato:

      gcloud artifacts repositories list
      

Ora puoi aggiungere un pacchetto al repository. Cloud Shell utilizza un'immagine Ubuntu creata da Google, non Debian. Per gestire i pacchetti Debian nel repository, utilizzerai una VM che utilizza un'immagine del sistema operativo Debian.

Crea una VM

Crea una nuova VM di Compute Engine in cui installerai il pacchetto di esempio.

In Cloud Shell, esegui il comando seguente per creare un'istanza VM denominata quickstart-apt-vm:

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

Per impostazione predefinita, la VM non dispone degli ambiti di accesso richiesti per l'utilizzo del repository. Il flag --scopes imposta l'ambito di accesso per la VM su cloud-platform.

  1. Vai alla pagina Istanze VM.

    Apri la pagina Istanze VM

  2. Nella riga della VM, fai clic su SSH. Si apre una nuova finestra con una sessione di terminale sulla VM.

Aggiungi un pacchetto al repository

Puoi caricare un pacchetto in un repository utilizzando Google Cloud CLI oppure puoi importare un pacchetto archiviato in Cloud Storage. Se crei pacchetti utilizzando Cloud Build, la build può archiviare i pacchetti in Cloud Storage per l'importazione.

Per questa guida rapida, caricherai un file di esempio utilizzando il comando gcloud artifacts apt upload.

  1. Esegui gcloud init per inizializzare Google Cloud CLI sulla VM.

  2. Aggiorna Apt:

    sudo apt update
    
  3. Scarica il pacchetto curl con il comando:

    apt download curl
    

    Apt scarica l'ultima versione del pacchetto disponibile dai repository Apt configurati.

    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)
    

    Esegui ls per ottenere il nome file del pacchetto curl. Il nome file è simile a curl_7.88.1-10+deb12u14_amd64.deb.

  4. Per semplificare i com0/}andi, imposta il repository predefinito su quickstart-apt-repo e la località predefinita su us-west1.gcloud Una volta impostati i valori, non devi specificarli nei comandi gcloud che richiedono un repository o una località.

    Per impostare il repository, esegui il comando:

    gcloud config set artifacts/repository quickstart-apt-repo
    

    Per impostare la località, esegui il comando:

    gcloud config set artifacts/location us-west1
    

    Per ulteriori informazioni su questi comandi, consulta la documentazione di gcloud config set.

  5. Esegui gcloud artifacts apt upload per caricare il pacchetto nel repository:

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

    Sostituisci FILE_NAME con il percorso del pacchetto curl.

Visualizza il pacchetto nel repository

Verifica che il pacchetto sia stato aggiunto al repository.

Console

  1. Apri la pagina Repository nella Google Cloud console.

    Apri la pagina Repositori

  2. Nell'elenco dei repository, fai clic sul repository quickstart-apt-repo.

    La pagina Pacchetti elenca i pacchetti nel repository.

gcloud

Per elencare i pacchetti nel repository quickstart-apt-repo, esegui il comando:

 gcloud artifacts packages list

Per visualizzare le versioni di un pacchetto in quickstart-apt-repo, esegui il comando:

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

Configura il gestore di pacchetti

Per installare un pacchetto sulla VM, aggiungi il repository creato al file di configurazione di Apt che definisce i repository di pacchetti.

  1. Installa l'helper delle credenziali Apt sulla VM per consentire ad Apt di eseguire l'autenticazione:

    sudo apt install apt-transport-artifact-registry
    
  2. Configura la VM per accedere ai pacchetti di 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
    

    Sostituisci PROJECT con il tuo Google Cloud ID progetto.

Installa il pacchetto

Installa il pacchetto che hai aggiunto al repository.

  1. Aggiorna l'elenco dei pacchetti disponibili:

    sudo apt update
    
  2. Installa il pacchetto dal repository.

    sudo apt install curl/quickstart-apt-repo
    

    Le informazioni di installazione restituite sono simili all'esempio seguente:

    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) ...
    

Libera spazio

Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, segui questi passaggi.

Prima di rimuovere il repository, assicurati che tutti i pacchetti che vuoi conservare siano disponibili in un'altra posizione.

Per eliminare il repository:

Console

  1. Apri la pagina Repository nella Google Cloud console.

    Apri la pagina Repository

  2. Nell'elenco dei repository, seleziona il repository quickstart-apt-repo.

  3. Fai clic su Elimina.

gcloud

  1. Per eliminare il repository quickstart-apt-repo, esegui il comando seguente:

    gcloud artifacts repositories delete quickstart-apt-repo
    
  2. Se vuoi rimuovere il repository predefinito e le impostazioni di localizzazione configurate per la configurazione gcloud attiva, esegui i comandi seguenti:

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

Per eliminare la VM creata, esegui il comando seguente:

gcloud compute instances delete quickstart-apt-vm

Passaggi successivi