Ruby-Gems verwalten

Auf dieser Seite wird beschrieben, wie Sie Ruby-Gems und Gem-Versionen hinzufügen, aufrufen und löschen.

Hinweise

  1. Installieren und initialisieren Sie die Google Cloud CLI.

    Für die Ausführung von Befehlen für Ruby-Repositories ist die Google Cloud CLI-Version 354.0.0 oder höher erforderlich. Sie können die Version mit dem folgenden Befehl prüfen:

    gcloud version
    
  2. Wenn das Ziel-Repository nicht vorhanden ist, erstellen Sie ein Ruby-Paket-Repository.

  3. Prüfen Sie, ob Ruby installiert ist. Eine Installationsanleitung finden Sie imGoogle Cloud Tutorial zum Einrichten von Ruby.

  4. (Optional) Standardwerte für gcloud-Befehle festlegen.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Repository zuzuweisen, damit Sie die nötigen Berechtigungen zum Verwalten von Gems haben:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Gems hinzufügen

Pakete in Ruby werden als Gems bezeichnet. Jedes Gem enthält einen Namen, eine Version und eine Plattform. Ein Ruby-Projekt muss auch ein Gemfile enthalten. Das ist eine Konfigurationsdatei, in der die erforderlichen Gem-Abhängigkeiten angegeben werden.

Repository-Modi:Standard

Wenn Sie ein Ruby-Projekt erstellen, werden die Verteilungsdateien in einem Unterverzeichnis lib in Ihrem Projekt gespeichert. Anschließend können Sie mit RubyGems Gems in ein Standardrepository hochladen.

So fügen Sie Ihrem Artifact Registry-Repository ein Gem hinzu:

gem push GEM_NAME --host https://LOCATION-ruby.pkg.dev/PROJECT/REPOSITORY

Wobei:

  • GEM_NAME ist der Name des Gems, das in Ihr Repository übertragen werden soll.
  • LOCATION ist der Speicherort Ihres Repositorys.
  • PROJECT ist die Projekt-ID. Wenn dieses Flag nicht angegeben ist, wird das aktuelle Projekt oder das Standardprojekt verwendet.
  • REPOSITORY ist der Name Ihres Repositorys in Artifact Registry.

Gems und Versionen ansehen

Repository-Modi:Standard

So rufen Sie die Pakete und Paketversionen mit der Google Cloud Console oder gcloud ab:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf das entsprechende Repository.

    Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.

  3. Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.

gcloud

Führen Sie den folgenden Befehl aus, um die Pakete in einem Repository aufzulisten:

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

Ersetzen Sie Folgendes:

  • REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.

Um die Versionen für ein Paket aufzurufen, führen Sie folgenden Befehl aus:

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

Ersetzen Sie Folgendes:

  • PACKAGE ist die ID des Pakets oder die vollqualifizierte Kennzeichnung für das Paket.
  • REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.

Bei Remote-Repositories sollte die zurückgegebene Liste alle direkten und transitiven Abhängigkeiten enthalten.

Dateien auflisten

Repository-Modi:Standard

Sie können Dateien in einem Repository, Dateien in allen Versionen eines angegebenen Pakets oder Dateien in einer bestimmten Version eines Pakets auflisten.

Für alle folgenden Befehle können Sie eine maximale Anzahl von zurückzugebenden Dateien festlegen, indem Sie dem Befehl das Flag --limit hinzufügen.

So listen Sie alle Dateien im Standardprojekt, im Standard-Repository und am Standard-Speicherort auf, wenn die Standardwerte konfiguriert sind:

gcloud artifacts files list

Führen Sie den folgenden Befehl aus, um Dateien in einem angegebenen Projekt, Repository und Speicherort aufzulisten:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION

So listen Sie Dateien für alle Versionen eines bestimmten Pakets auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE

So listen Sie Dateien für eine bestimmte Paketversion auf:

gcloud artifacts files list \
    --project=PROJECT \
    --repository=REPOSITORY \
    --location=LOCATION \
    --package=PACKAGE \
    --version=VERSION

Ersetzen Sie die folgenden Werte:

  • LOCATION: der regionale oder multiregionale Speicherort für das Repository.
  • PROJECT: Ihre Google Cloud Projekt-ID. Wenn die Projekt-ID einen Doppelpunkt (:) enthält, finden Sie weitere Informationen unter Auf Domains beschränkte Projekte.
  • REPOSITORY: der Name des Repositorys, in dem das Image gespeichert ist.
  • PACKAGE: der Name des Pakets.
  • VERSION: die Version des Pakets.

Beispiele

Sehen Sie sich die folgenden Paketinformationen an:

  • Projekt: my-project
  • Repository: my-repo
  • Speicherort des Repositorys: us-west1
  • Paket: my-app

Mit dem folgenden Befehl werden alle Dateien im Repository my-repo am Speicherort us-west1 im Standardprojekt aufgelistet:

gcloud artifacts files list \
    --location=us-west1 \
    --repository=my-repo
Mit dem folgenden Befehl werden die Dateien in Version 1.0 des Pakets aufgelistet.

gcloud artifacts files list \
    --project=my-project \
    --location=us-west1 \
    --repository=my-repo \
    --package=my-app \
    --version=1.0

Gems installieren

Repository-Modi:Standard

So installieren Sie die aktuelle stabile Version eines Pakets:

gem install GEM_NAME

Bei Standard-Repositories laden Sie ein Paket direkt aus dem Repository herunter.

Bei einem Remote-Repository laden Sie eine im Cache gespeicherte Kopie des Pakets und seiner Abhängigkeiten herunter. Wenn keine Kopie im Cache vorhanden ist, lädt das Remote-Repository das Paket von der Upstream-Quelle herunter und speichert es im Cache, bevor es an Sie gesendet wird. Sie können prüfen, ob das Remote-Repository die Pakete aus der Upstream-Quelle abgerufen hat, indem Sie die Liste der Pakete im Repository aufrufen.

Bei einem virtuellen Repository sucht Artifact Registry in Upstream-Repositories nach dem angeforderten Paket.

  • Upstream-Remote-Repositories laden das angeforderte Paket herunter und speichern es im Cache, wenn keine im Cache gespeicherte Kopie vorhanden ist. Virtuelle Repositories stellen nur angeforderte Pakete bereit, sie speichern sie nicht.
  • Wenn Sie eine Version anfordern, die in mehreren Upstream-Repositories verfügbar ist, wählt Artifact Registry ein Upstream-Repository basierend auf den für das virtuelle Repository konfigurierten Prioritätseinstellungen aus.

Angenommen, Sie haben ein virtuelles Repository mit den folgenden Prioritätseinstellungen für Upstream-Repositories:

  • main-repo: Priorität auf 100 festgelegt
  • secondary-repo1: Die Priorität ist auf 80 festgelegt.
  • secondary-repo2: Die Priorität ist auf 80 festgelegt.
  • test-repo: Die Priorität ist auf 20 festgelegt.

main-repo hat den höchsten Prioritätswert, daher wird immer zuerst in diesem virtuellen Repository gesucht.

Sowohl für secondary-repo1 als auch für secondary-repo2 ist die Priorität auf 80 festgelegt. Wenn ein angefordertes Paket in main-repo nicht verfügbar ist, durchsucht Artifact Registry als Nächstes diese Repositories. Da beide denselben Prioritätswert haben, kann Artifact Registry ein Paket aus einem der beiden Repositorys bereitstellen, wenn die Version in beiden verfügbar ist.

test-repo hat den niedrigsten Prioritätswert und es wird ein gespeichertes Artefakt bereitgestellt, wenn es in keinem der anderen Upstream-Repositories vorhanden ist.

Weitere Informationen

Wenn Sie Gems in ein Artifact Registry-Repository übertragen oder daraus abrufen und das angeforderte Gem oder seine Abhängigkeiten nicht im angegebenen Repository gefunden werden, verwendet Ihr gem-Client eine andere Quelle, die in der Gemfile für Ihr Gem definiert ist. Wenn Sie nur direkt aus Artifact Registry abrufen und installieren möchten, führen Sie den folgenden Befehl aus, um eine Quelle, die nicht Artifact Registry ist, aus Ihrer Gemfile zu entfernen:

gem sources --remove SOURCE

So fügen Sie rubygems.org wieder als Quelle hinzu:

gem sources --add SOURCE

Dabei ist SOURCE die Adresse der Quelle, z. B. https://rubygems.org.

Pakete und Versionen löschen

Repository-Modi:Standard

Sie können ein Paket und alle seine Versionen oder eine bestimmte Version löschen.

  • Das Löschen eines Pakets kann nicht rückgängig gemacht werden.
  • Bei Remote-Repositories wird nur die im Cache gespeicherte Kopie des Pakets gelöscht. Die Upstream-Quelle ist nicht betroffen. Wenn Sie ein im Cache gespeichertes Paket löschen, wird es von Artifact Registry heruntergeladen und wieder im Cache gespeichert, wenn das Repository das nächste Mal eine Anfrage für dieselbe Paketversion erhält.

Bevor Sie ein Paket oder eine Paketversion löschen, prüfen Sie, ob Sie alle wichtigen Abhängigkeiten davon kommuniziert oder behoben haben.

So löschen Sie ein Paket:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf das entsprechende Repository.

    Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.

  3. Wählen Sie das Paket aus, das Sie löschen möchten.

  4. Klicken Sie auf Löschen.

  5. Klicken Sie im Bestätigungsdialogfeld auf Löschen.

gcloud

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • PACKAGE ist der Name des Pakets im Repository.
  • REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.

Durch das Flag --async wird der Befehl sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.

So löschen Sie Versionen eines Pakets:

Console

  1. Öffnen Sie in der Google Cloud Console die Seite Repositories.

    Zur Seite „Repositories“

  2. Klicken Sie in der Liste der Repositories auf das entsprechende Repository.

    Auf der Seite Pakete sind die Pakete des Repositorys aufgeführt.

  3. Klicken Sie auf das Paket, um die Versionen des Pakets aufzurufen.

  4. Wählen Sie die Versionen aus, die Sie löschen möchten.

  5. Klicken Sie auf Löschen.

  6. Klicken Sie im Bestätigungsdialogfeld auf Löschen.

gcloud

Führen Sie dazu diesen Befehl aus:

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

Ersetzen Sie Folgendes:

  • VERSION ist der Name der Version, die gelöscht werden soll.
  • PACKAGE ist der Name des Pakets im Repository.
  • REPOSITORY ist der Name des Repositorys. Wenn Sie ein Standard-Repository konfiguriert haben, wird bei Weglassen dieses Flags dieses Standard-Repository verwendet.
  • LOCATION ist der regionale oder multiregionale Speicherort des Repositorys. Mit diesem Flag können Sie Repositories an einem bestimmten Speicherort aufrufen. Wenn Sie einen Standard-Speicherort konfiguriert haben, wird bei Weglassen dieses Flags dieser Standardwert verwendet.

Durch das Flag --async wird der Befehl sofort zurückgegeben, ohne auf den Abschluss des Vorgangs zu warten.

Beschränkungen

  • In Artifact Registry wird das Hinzufügen von Repositorys als Quellen mit dem Befehl gem sources -add nicht unterstützt. Sie können jedoch manuell Quellen zu Ihrer .gemrc-Datei hinzufügen oder das Flag --source direkt in Ihrem gem-Befehl übergeben.

  • Artifact Registry unterstützt das Abrufen von Gems mit gem fetch nicht.

Nächste Schritte