Questa pagina descrive come aggiungere, visualizzare ed eliminare gemme e versioni di gemme Ruby.
Prima di iniziare
Installa e inizializza Google Cloud CLI.
Per eseguire i comandi per i repository Ruby è necessaria la versione 354.0.0 o successive di Google Cloud CLI. Puoi controllare la versione con il comando:
gcloud versionSe il repository di destinazione non esiste, allora crea un repository di pacchetti Ruby.
Verifica che Ruby sia installato. Per le istruzioni di installazione, consulta il Google Cloud tutorial per la configurazione di Ruby.
(Facoltativo) Imposta le impostazioni predefinite per i comandi gcloud.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire le gemme, chiedi all'amministratore di concederti i seguenti ruoli IAM per il repository:
-
Visualizza gemme o file nelle gemme:
Lettore Artifact Registry (
roles/artifactregistry.reader) -
Scarica o installa gemme:
Lettore Artifact Registry (
roles/artifactregistry.reader) -
Aggiungi gemme a un repository:
Writer Artifact Registry (
roles/artifactregistry.writer) -
Elimina gemme:
Amministratore repository Artifact Registry (
roles/artifactregistry.repoAdmin)
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.
Aggiungi gemme
I pacchetti in Ruby sono chiamati gemme, ognuna delle quali contiene un nome, una versione e una piattaforma. Un progetto Ruby deve contenere anche un gemfile, ovvero un file di configurazione che specifica le dipendenze delle gemme richieste.
Modalità repository: standard
Quando crei un progetto Ruby, i file di distribuzione vengono salvati in una sottodirectory lib del progetto. Puoi quindi utilizzare RubyGems per caricare le gemme in un repository standard.
Per aggiungere una gemma al repository Artifact Registry:
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Dove:
- GEM_NAME è il nome della gemma da eseguire il push nel repository.
- LOCATION è la località del repository.
- PROJECT è l'ID progetto. Se questo flag viene omesso, allora il progetto corrente o predefinito viene utilizzato.
- REPOSITORY è il nome del repository in Artifact Registry.
Visualizza gemme e versioni
Modalità repository: standard
Per visualizzare i pacchetti e le versioni dei pacchetti utilizzando la Google Cloud console
o gcloud:
Console
Apri la pagina Repository nella Google Cloud console.
Nell'elenco dei repository, fai clic sul repository appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Fai clic su un pacchetto per visualizzarne le versioni.
gcloud
Per elencare i pacchetti in un repository, esegui questo comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Sostituisci quanto segue:
REPOSITORYè il nome del repository. Se hai configurato un repository predefinito, puoi omettere questo flag per utilizzare quello predefinito.-
LOCATIONè la località regionale o multiregionale del repository. 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]
Sostituisci quanto segue:
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è la località regionale o multiregionale del repository. 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 i repository remoti, l'elenco restituito deve includere tutte le dipendenze dirette e transitive.
Elenco file
Modalità repository: standard
Puoi elencare i file in un repository, i file in tutte le versioni di un pacchetto specificato o i file in una versione specifica di un pacchetto.
Per tutti i comandi seguenti, puoi impostare un numero massimo di file da restituire aggiungendo il flag --limit al comando.
Per elencare tutti i file nel progetto, nel repository e nella località predefiniti quando sono configurati i valori predefiniti:
gcloud artifacts files list
Per elencare i file in un progetto, in un repository e in una località specificati, esegui il comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Per elencare i file per tutte le versioni di un pacchetto specifico:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Per elencare i file per una versione specifica del pacchetto:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Sostituisci i seguenti valori:
LOCATION: la località regionale o multiregionale del repository.PROJECT: l' Google Cloud ID progetto. Se l'ID progetto contiene due punti (:), consulta Progetti basati sul dominio.REPOSITORY: il nome del repository in cui è archiviata l'immagine.PACKAGE: il nome del pacchetto.VERSION: la versione del pacchetto.
Esempi
Considera le seguenti informazioni sul pacchetto:
- Progetto:
my-project - Repository:
my-repo - Località repository:
us-west1 - Pacchetto:
my-app
Il seguente comando elenca tutti i file nel repository my-repo nella
località us-west1 all'interno del progetto predefinito:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0 del pacchetto.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Installa gemme
Modalità repository: standard
Per installare la release stabile più recente di un pacchetto:
gem install GEM_NAME
Per i repository standard, scarica un pacchetto direttamente dal repository.
Per un repository remoto, scarica una copia memorizzata nella cache del pacchetto e delle relative dipendenze. Se non esiste una copia memorizzata nella cache, il repository remoto scarica il pacchetto dall'origine upstream e lo memorizza nella cache prima di fornirtelo. Puoi verificare che il repository remoto abbia recuperato i pacchetti dall' origine upstream visualizzando l'elenco dei pacchetti nel repository.
Per un repository virtuale, Artifact Registry cerca il pacchetto richiesto nei repository upstream.
- I repository remoti upstream scaricheranno e memorizzeranno nella cache il pacchetto richiesto se non esiste una copia memorizzata nella cache. I repository virtuali forniscono solo i pacchetti richiesti, non li archiviano.
- Se richiedi una versione disponibile in più repository upstream, Artifact Registry sceglie un repository upstream da utilizzare in base alle impostazioni di priorità configurate per il repository virtuale.
Considera ad esempio un repository virtuale con le seguenti impostazioni di priorità per i repository upstream:
main-repo: priorità impostata su100secondary-repo1: priorità impostata su80.secondary-repo2: priorità impostata su80.test-repo: priorità impostata su20.
main-repo ha il valore di priorità più alto, quindi il repository virtuale lo cerca sempre per primo.
Sia secondary-repo1 sia secondary-repo2 hanno la priorità impostata su 80. Se un pacchetto richiesto non è disponibile in main-repo, Artifact Registry cerca questi repository. Poiché entrambi hanno lo stesso valore di priorità, Artifact Registry può scegliere di fornire un pacchetto da uno dei due repository se la versione è disponibile in entrambi.
test-repo ha il valore di priorità più basso e fornirà un artefatto archiviato se nessuno degli altri repository upstream lo contiene.
Informazioni aggiuntive
Quando esegui il push o il pull di gemme da un repository Artifact Registry, se la gemma richiesta o le relative dipendenze non vengono trovate nel repository specificato, il client gem utilizza qualsiasi altra origine definita nel gemfile per la gemma.
Se vuoi recuperare e installare solo direttamente da Artifact Registry, esegui il seguente comando per rimuovere un'origine non Artifact Registry dal gemfile:
gem sources --remove SOURCE
Per aggiungere di nuovo rubygems.org come origine:
gem sources --add SOURCE
Dove SOURCE è l'indirizzo dell'origine, ad esempio
https://rubygems.org.
Elimina pacchetti e versioni
Modalità repository: standard
Puoi eliminare un pacchetto e tutte le relative versioni oppure eliminare una versione specifica.
- Una volta eliminato un pacchetto, non puoi annullare l'azione.
- Per i repository remoti, viene eliminata solo la copia memorizzata nella cache del pacchetto. L'origine upstream non è interessata. Se elimini un pacchetto memorizzato nella cache, Artifact Registry lo scaricherà e lo memorizzerà di nuovo nella cache la volta successiva che il repository riceve una richiesta per la stessa versione del pacchetto.
Prima di eliminare un pacchetto o una versione del pacchetto, verifica di aver comunicato o risolto eventuali dipendenze importanti.
Per eliminare un pacchetto:
Console
Apri la pagina Repository nella console Google Cloud .
Nell'elenco dei repository, fai clic su quello appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Seleziona il pacchetto che vuoi eliminare.
Fai clic su ELIMINA.
Nella finestra di dialogo di conferma, fai clic su ELIMINA.
gcloud
Esegui questo comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Sostituisci quanto segue:
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è la posizione regionale o multiregionale del repository. 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.
Il flag --async fa sì che il comando venga restituito immediatamente,
senza attendere il completamento dell'operazione in corso.
Per eliminare le versioni di un pacchetto:
Console
Apri la pagina Repository nella console Google Cloud .
Nell'elenco dei repository, fai clic su quello appropriato.
La pagina Pacchetti elenca i pacchetti nel repository.
Fai clic su un pacchetto per visualizzarne le versioni.
Seleziona le versioni da eliminare.
Fai clic su ELIMINA.
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]
Sostituisci quanto segue:
VERSIONè il nome della versione da eliminare.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è la posizione regionale o multiregionale del repository. 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.
Il flag --async fa sì che il comando venga restituito immediatamente,
senza attendere il completamento dell'operazione in corso.
Limitazioni
Artifact Registry non supporta l'aggiunta di repository come origini utilizzando il comando
gem sources -add. Tuttavia, puoi aggiungere manualmente le origini a tuo.gemrcfile, o passare il--sourceflag direttamente nel tuogemcomando.Artifact Registry non supporta il pull di gemme utilizzando
gem fetch.
Passaggi successivi
- Scopri di più sulla gestione delle immagini container
- Scarica singoli file all'interno di un pacchetto