En esta página, se describe cómo agregar, ver y borrar versiones de paquetes y gemas de Ruby.
Antes de comenzar
Instala y, luego, inicializa Google Cloud CLI.
Se requiere la versión 354.0.0 o posterior de Google Cloud CLI para ejecutar comandos para repositorios de Ruby. Puedes verificar la versión con el siguiente comando:
gcloud versionSi el repositorio de destino no existe, entonces crea un repositorio de paquetes de Ruby.
Verifica que Ruby esté instalado. Para obtener instrucciones de instalación, consulta el Google Cloud instructivo para configurar Ruby.
(Opcional) Establece valores predeterminados para los comandos de gcloud.
Roles obligatorios
Para obtener los permisos que necesitas para administrar gemas, pídele a tu administrador que te otorgue los siguientes roles de IAM en el repositorio:
-
Ver gemas o archivos en gemas:
Lector de Artifact Registry (
roles/artifactregistry.reader) -
Descargar o instalar gemas:
Lector de Artifact Registry (
roles/artifactregistry.reader) -
Agregar gemas a un repositorio:
Escritor de Artifact Registry (
roles/artifactregistry.writer) -
Borrar gemas:
Administrador del repositorio de Artifact Registry (
roles/artifactregistry.repoAdmin)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.
Agrega gemas
Los paquetes en Ruby se denominan gemas, y cada gema contiene un nombre, una versión y una plataforma. Un proyecto de Ruby también debe contener un gemfile, que es un archivo de configuración que especifica las dependencias de gemas requeridas.
Modos de repositorio: estándar
Cuando compilas un proyecto de Ruby, los archivos de distribución se guardan en un subdirectorio lib de tu proyecto. Luego, puedes usar RubyGems para subir gemas a un repositorio estándar.
Para agregar una gema a tu repositorio de Artifact Registry, haz lo siguiente:
gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY
Aquí:
- GEM_NAME es el nombre de la gema que se enviará a tu repositorio.
- LOCATION es la ubicación de tu repositorio.
- PROJECT es el ID del proyecto. Si se omite esta marca, entonces el proyecto actual o predeterminado se usa.
- REPOSITORY es el nombre de tu repositorio en Artifact Registry.
Visualiza gemas y versiones
Modos de repositorio: estándar
Para ver paquetes y versiones de paquetes con la consola de Google Cloud o gcloud, haz lo siguiente:
Console
Abre la página Repositorios en la consola de Google Cloud .
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Haz clic en un paquete para ver las versiones de este.
gcloud
Para enumerar los paquetes en un repositorio, ejecuta el siguiente comando:
gcloud artifacts packages list [--repository=REPOSITORY] [--location=LOCATION]
Reemplaza lo siguiente:
REPOSITORYes el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.-
LOCATIONes la ubicación regional o multirregional del repositorio. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usar la predeterminada.
Para ver las versiones de un paquete, ejecuta el siguiente comando:
gcloud artifacts versions list --package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION]
Reemplaza lo siguiente:
PACKAGEes el ID del paquete o el identificador completamente calificado para el paquete.REPOSITORYes el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.-
LOCATIONes la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
En el caso de los repositorios remotos, la lista que se muestra debe incluir todas las dependencias directas y transitivas.
Enumera archivos
Modos de repositorio: estándar
Puedes enumerar archivos en un repositorio, archivos en todas las versiones de un paquete especificado o archivos en una versión específica de un paquete.
Para todos los siguientes comandos, puedes establecer una cantidad máxima de archivos que se mostrarán agregando la marca --limit al comando.
Para enumerar todos los archivos en el proyecto, el repositorio y la ubicación predeterminados cuando se configuran los valores predeterminados, haz lo siguiente:
gcloud artifacts files list
Para enumerar archivos en un proyecto, un repositorio y una ubicación especificados, ejecuta el siguiente comando:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION
Para enumerar archivos de todas las versiones de un paquete específico, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE
Para enumerar archivos de una versión específica de un paquete, haz lo siguiente:
gcloud artifacts files list \
--project=PROJECT \
--repository=REPOSITORY \
--location=LOCATION \
--package=PACKAGE \
--version=VERSION
Reemplaza los siguientes valores:
LOCATION: la ubicación regional o multirregional del repositorio.PROJECT: El ID de tu Google Cloud proyecto. Si el ID de tu proyecto contiene dos puntos (:), consulta Proyectos con alcance de dominio.REPOSITORY: El nombre del repositorio en el que se almacena la imagen.PACKAGE: El nombre del paquete.VERSION: La versión del paquete.
Ejemplos
Considera la siguiente información del paquete:
- Proyecto:
my-project - Repositorio:
my-repo - Ubicación del repositorio:
us-west1 - Paquete:
my-app
El siguiente comando enumera todos los archivos del repositorio my-repo en la
ubicación us-west1 dentro del proyecto predeterminado:
gcloud artifacts files list \
--location=us-west1 \
--repository=my-repo
1.0 del paquete.
gcloud artifacts files list \
--project=my-project \
--location=us-west1 \
--repository=my-repo \
--package=my-app \
--version=1.0
Instala gemas
Modos de repositorio: estándar
Para instalar la versión estable más reciente de un paquete, haz lo siguiente:
gem install GEM_NAME
En el caso de los repositorios estándar, descargas un paquete directamente desde el repositorio.
En el caso de un repositorio remoto, descargas una copia almacenada en caché del paquete y sus dependencias. Si no existe una copia almacenada en caché, el repositorio remoto descarga el paquete de la fuente superior y lo almacena en caché antes de entregártelo. Puedes verificar que el repositorio remoto recuperó los paquetes de la fuente superior si ves la lista de paquetes en el repositorio.
En el caso de un repositorio virtual, Artifact Registry busca el paquete solicitado en los repositorios superiores.
- Los repositorios remotos superiores descargarán y almacenarán en caché el paquete solicitado si no existe una copia almacenada en caché. Los repositorios virtuales solo entregan los paquetes solicitados, no los almacenan.
- Si solicitas una versión que está disponible en más de un repositorio superior, Artifact Registry elige un repositorio superior para usar según la configuración de prioridad configurada para el repositorio virtual.
Por ejemplo, considera un repositorio virtual con la siguiente configuración de prioridad para los repositorios superiores:
main-repo: Prioridad establecida en100secondary-repo1: Prioridad establecida en80.secondary-repo2: Prioridad establecida en80.test-repo: Prioridad establecida en20.
main-repo tiene el valor de prioridad más alto, por lo que el repositorio virtual siempre lo busca primero.
Tanto secondary-repo1 como secondary-repo2 tienen la prioridad establecida en 80. Si un paquete solicitado no está disponible en main-repo, Artifact Registry busca estos repositorios a continuación. Como ambos tienen el mismo valor de prioridad, Artifact Registry puede elegir entregar un paquete de cualquiera de los repositorios si la versión está disponible en ambos.
test-repo tiene el valor de prioridad más bajo y entregará un artefacto almacenado si ninguno de los otros repositorios superiores lo tiene.
Información adicional
Cuando envías gemas a un repositorio de Artifact Registry o las extraes de él, si la gema solicitada o sus dependencias no se encuentran en el repositorio especificado, tu cliente gem usa cualquier otra fuente definida en el gemfile de tu gema.
Si deseas recuperar e instalar solo desde Artifact Registry, ejecuta el siguiente comando para quitar una fuente que no sea de Artifact Registry de tu gemfile:
gem sources --remove SOURCE
Para volver a agregar rubygems.org como fuente, haz lo siguiente:
gem sources --add SOURCE
Aquí, SOURCE es la dirección de la fuente, como
https://rubygems.org.
Borra paquetes y versiones
Modos de repositorio: estándar
Puedes borrar un paquete y todas sus versiones, o borrar una versión específica.
- Una vez que borras un paquete, no puedes deshacer la acción.
- En el caso de los repositorios remotos, solo se borra la copia almacenada en caché del paquete. La fuente superior no se ve afectada. Si borras un paquete almacenado en caché, Artifact Registry lo descargará y almacenará en caché nuevamente la próxima vez que el repositorio reciba una solicitud para la misma versión del paquete.
Antes de borrar un paquete o una versión de un paquete, verifica que se haya comunicado o abordado cualquier dependencia importante en este.
Para borrar un paquete, haz lo siguiente:
Console
Abre la página Repositorios en la consola de Google Cloud .
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Selecciona el paquete que deseas borrar.
Haz clic en BORRAR.
En el cuadro de diálogo de confirmación, haz clic en BORRAR.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts packages delete PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] [--async]
Reemplaza lo siguiente:
PACKAGEes el nombre del paquete en el repositorio.REPOSITORYes el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.-
LOCATIONes la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
La marca --async hace que el comando se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Para borrar versiones de un paquete, haz lo siguiente:
Console
Abre la página Repositorios en la consola de Google Cloud .
En la lista de repositorios, haz clic en el repositorio correspondiente.
En la página Paquetes, se enumeran los paquetes del repositorio.
Haz clic en un paquete para ver las versiones de este.
Selecciona las versiones que quieras borrar.
Haz clic en BORRAR.
En el cuadro de diálogo de confirmación, haz clic en BORRAR.
gcloud
Ejecuta el siguiente comando:
gcloud artifacts versions delete VERSION \
--package=PACKAGE \
[--repository=REPOSITORY] [--location=LOCATION] \
[--async]
Reemplaza lo siguiente:
VERSIONes el nombre de la versión que se borrará.PACKAGEes el nombre del paquete en el repositorio.REPOSITORYes el nombre del repositorio. Si configuraste un repositorio predeterminado, puedes omitir esta marca para usarlo.-
LOCATIONes la ubicación regional o multirregional del repositorio. Usa esta marca para ver los repositorios en una ubicación específica. Si configuraste una ubicación predeterminada, puedes omitir esta marca para usarla.
La marca --async hace que el comando se muestre de inmediato, sin necesidad de esperar a que se complete la operación en curso.
Limitaciones
Artifact Registry no admite la adición de repositorios como fuentes con el comando
gem sources -add. Sin embargo, puedes agregar fuentes de forma manual a tu.gemrcarchivo o pasar la--sourcemarca directamente en tugemcomando.Artifact Registry no admite la extracción de gemas con
gem fetch.
¿Qué sigue?
- Obtén información para administrar imágenes de contenedor.
- Descarga archivos individuales dentro de un paquete.