Gestione dei pacchetti Debian

Questa pagina descrive l'aggiunta, la visualizzazione e l'eliminazione di pacchetti Debian nei repository Apt.

Prima di iniziare

  1. Se il repository Apt di destinazione non esiste, crea un nuovo repository.
  2. Configura le VM per accedere al repository.
  3. (Facoltativo) Configura i valori predefiniti per i comandi gcloud.
  4. Assicurati che i nomi dei pacchetti nei metadati soddisfino gli standard per i nomi dei pacchetti Debian.

Aggiunta di pacchetti

Modalità repository: standard

Devi disporre delle autorizzazioni di lettura e di scrittura per consentire al repository di aggiungere pacchetti.

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 consentirti di importarli.

Le operazioni di importazione o caricamento molto lunghe potrebbero superare il periodo di scadenza per il token utilizzato da gcloud CLI per chiamare l'API. Se devi aggiungere un numero molto elevato di pacchetti, ti consigliamo di aggiungerli in batch più piccoli in modo che ogni operazione di caricamento o importazione possa essere completata in un periodo di tempo inferiore. Per ulteriori informazioni, consulta la documentazione relativa alla risoluzione dei problemi dei pacchetti del sistema operativo.

Caricamento diretto

Utilizza il comando gcloud artifacts apt upload per caricare un pacchetto in un repository Apt:

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

Sostituisci i seguenti valori:

  • REPOSITORY è il nome del repository di Artifact Registry.
  • LOCATION è la località a livello di una o più regioni del repository.
  • PACKAGES è il percorso del pacchetto.

Ad esempio, per caricare il pacchetto my-package.deb nel repository Apt my-repo nella località us-central1, esegui:

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

Cloud Storage

  1. Carica i pacchetti in Cloud Storage in uno dei seguenti modi:

    • Caricare i pacchetti direttamente in un bucket Cloud Storage
    • Crea pacchetti con Cloud Build e archiviali in un bucket
  2. Esegui questo comando:

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

    Sostituisci i seguenti valori:

    • REPOSITORY è il nome del repository di Artifact Registry.
    • LOCATION è la località a livello di una o più regioni del repository.
    • PACKAGES è un elenco separato da virgole di pacchetti in Cloud Storage. Per caricare tutti i pacchetti da una directory, utilizza un carattere jolly nella directory (*) o un carattere jolly nella directory ricorsiva (**) per caricare tutti i pacchetti in tutte le sottodirectory.

    Ad esempio, per caricare un pacchetto package.rpm e tutti i pacchetti nella directory directory dal bucket my-bucket al repository Apt my-repo nella località us-central1, esegui:

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

Al termine dell'operazione di caricamento o importazione, puoi utilizzare la console Google Cloud o gcloud CLI per visualizzare i pacchetti nel repository e confermare che sono stati caricati correttamente.

Se hai un repository di grandi dimensioni con molti pacchetti, potrebbero essere necessari diversi minuti per rigenerare l'indice dei pacchetti in modo che i nuovi pacchetti siano visibili al client Apt.

Visualizzazione dei pacchetti

Modalità repository: standard, remoto (anteprima)

Per visualizzare i pacchetti, devi disporre delle autorizzazioni nel ruolo Lettore di Artifact Registry. Artifact Registry non elenca i file all'interno dei pacchetti.

Per visualizzare i pacchetti e le versioni dei pacchetti utilizzando la console Google Cloud o gcloud:

Console

  1. Apri la pagina Repositories nella console Google Cloud.

    Apri la pagina Repository

  2. Nell'elenco dei repository, fai clic su quello appropriato.

    Nella pagina Pacchetti sono elencati i pacchetti nel repository.

  3. Fai clic su un pacchetto per visualizzare le versioni del pacchetto.

gcloud

Per elencare i pacchetti in un repository, esegui questo comando:

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

Dove

  • REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
  • LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.

Per visualizzare le versioni di un pacchetto, esegui questo comando:

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

Dove

  • PACKAGE è l'ID del pacchetto o l'identificatore completo del pacchetto.
  • REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
  • LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.

Installazione dei pacchetti

Modalità repository: standard, remoto (anteprima)

Prima di installare i pacchetti, verifica di aver configurato correttamente il gestore di pacchetti e il repository.

Per installare un pacchetto nel repository:

  1. Aggiorna l'elenco dei pacchetti disponibili:

    sudo apt update
    
  2. Installa il pacchetto, specificando il nome del repository configurato nell'Apt.

    sudo apt install PACKAGE/REPOSITORY
    

    Sostituisci i seguenti valori:

    • PACKAGE è il nome del pacchetto.
    • REPOSITORY è il nome del repository Artifact Registry. Per i repository remoti, utilizza il nome del repository a monte standard.

    Ad esempio, per installare il pacchetto my-package dal repository my-repo, esegui questo comando:

    sudo apt install my-package -t my-repo
    

Eliminazione dei pacchetti

Modalità repository: standard

Prima di eliminare un pacchetto o una versione del pacchetto, verifica di aver comunicato o risolto eventuali dipendenze importanti.

Per eliminare un pacchetto:

Console

  1. Apri la pagina Repositories nella console Google Cloud.

    Apri la pagina Repository

  2. Nell'elenco dei repository, fai clic su quello appropriato.

    Nella pagina Pacchetti sono elencati i pacchetti nel repository.

  3. Seleziona il pacchetto da eliminare.

  4. Fai clic su ELIMINA.

  5. Nella finestra di dialogo di conferma, fai clic su ELIMINA.

gcloud

Esegui questo comando:

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

Dove

  • PACKAGE è il nome del pacchetto nel repository.
  • REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
  • LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
  • --async Torna immediatamente, senza attendere il completamento dell'operazione in corso.

Per eliminare le versioni di un pacchetto:

Console

  1. Apri la pagina Repositories nella console Google Cloud.

    Apri la pagina Repository

  2. Nell'elenco dei repository, fai clic su quello appropriato.

    Nella pagina Pacchetti sono elencati i pacchetti nel repository.

  3. Fai clic su un pacchetto per visualizzare le relative versioni.

  4. Seleziona le versioni da eliminare.

  5. Fai clic su ELIMINA.

  6. Nella finestra di dialogo di conferma, fai clic su ELIMINA.

gcloud

Esegui questo comando:

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

Dove

  • PACKAGE è il nome del pacchetto nel repository.
  • REPOSITORY è il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.
  • LOCATION è una località a livello di una o più regioni. Utilizza questo flag per visualizzare i repository in una località specifica. Se hai configurato una località predefinita, puoi omettere questo flag per utilizzare quella predefinita.
  • --async viene restituito immediatamente, senza attendere il completamento dell'operazione in corso.

Per i repository di grandi dimensioni, possono essere necessari alcuni minuti per rigenerare l'indice dei pacchetti Apt in modo che rifletta le eliminazioni.

Passaggi successivi