Veröffentlichen und Wiederherstellen von Frachtpaketen

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Mithilfe von Azure Artifacts können Sie Cargo-Pakete aus Ihren eigenen Feeds und öffentlichen Registern wie crates.io veröffentlichen und wiederherstellen. Verwenden Sie Azure Artifacts, um interne Kisten zu hosten, eine Verbindung mit upstream-Registrierungen herzustellen und den Paketzugriff über einen einzelnen Feed zu verwalten. Diese Schnellstartanleitung führt Sie durch das Erstellen eines Feeds, das Konfigurieren Ihres Cargo-Projekts und das Veröffentlichen und Verwenden von Cargo-Paketen mithilfe von Azure Artifacts.

Voraussetzungen

Produkt Anforderungen
Azure DevOps - Eine Azure DevOps organization.
- Ein Azure DevOps project.
- Herunterladen und Installieren von Rostup. Sie benötigen Cargo 1.74.0 oder höher.

Einen Feed erstellen

Wenn Sie bereits über einen Azure Artifacts Feed verfügen, wechseln Sie zum nächsten Abschnitt. Führen Sie andernfalls die folgenden Schritte aus, um einen Feed zu erstellen. Azure Artifacts empfiehlt, einen Feed für das Verwenden von Crates aus öffentlichen Registries wie crates.io und einen separaten Feed für die Veröffentlichung interner Crates zu verwenden.

  1. Melden Sie sich bei Azure DevOps an, und wechseln Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und dann Ihren Feed erstellen aus.

  3. Geben Sie einen Namen für Ihren Feed ein, wählen Sie dessen Sichtbarkeit aus, und wählen Sie dann einen Bereich aus. Stellen Sie sicher, dass Sie das Kontrollkästchen "Upstreamquellen " aktivieren, um Pakete aus öffentlichen Registrierungen einzuschließen.

  4. Wählen Sie Erstellen, wenn Sie fertig sind.

Mit einem Feed verbinden

Bevor Sie Pakete aus Ihrem Feed veröffentlichen oder wiederherstellen können, müssen Sie zuerst Ihr Projekt so konfigurieren, dass es sich authentifiziert und eine Verbindung mit dem Feed herstellt.

  1. Melden Sie sich bei Azure DevOps an, und wechseln Sie dann zu Ihrem Projekt.

  2. Wählen Sie Artefakte und dann Ihren Feed im Dropdownmenü aus.

  3. Wählen Sie „Mit Feed verbinden“ aus, und wählen Sie dann im linken Navigationsbereich „Cargo“ aus.

  4. Führen Sie die Schritte im Abschnitt Project Setup aus, um Ihre config.toml Datei zu konfigurieren.

  5. Folgen Sie auf derselben Seite den Anweisungen im Abschnitt "Konfigurieren eines Anmeldeinformationsanbieters " und "Anmelden bei den Registrierungsabschnitten ", um den Anmeldeinformationsanbieter einzurichten und eine Verbindung mit Ihrem Feed herzustellen. Detaillierte Schritte finden Sie unter Cargo – Projekteinrichtung.

Wichtig

Die Frachtunterstützung in Azure Artifacts erfordert Rust 1.74 oder höher, einschließlich Unterstützung für das registry-auth Feature. Um Ihre Rust-Version zu aktualisieren, führen Sie rustup update aus.

Wichtig

Cargo befindet sich derzeit in der Vorschau und erfordert möglicherweise die Nightly-Toolchain bei aktiviertem registry-authinstabilem Feature. Fügen Sie zum Aktivieren registry-authdie folgende Einstellung zu .cargo/config.toml hinzu.

[unstable]
registry-auth = true

Führen Sie den folgenden Befehl aus, um die Nachttoolkette zu verwenden:

rustup default nightly

Veröffentlichen von Paketen

Bevor Sie ein Cargo-Paket veröffentlichen, stellen Sie sicher, dass Sie die Schritte in "Herstellen einer Verbindung mit einem Feed" abgeschlossen haben, damit Sie sich bei Ihrem Azure Artifacts Feed authentifizieren können.

Führen Sie im Verzeichnis, das Ihre Cargo.toml-Datei enthält, den folgenden Befehl aus, um Ihr Paket zu veröffentlichen:

cargo publish

Wenn ein Fehler auftritt GLib-GObject-CRITICAL - libsecret-CRITICAL , stellen Sie sicher, dass Sie die folgenden Schritte ausführen:

  1. Überprüfen Sie, ob libsecret installiert ist:

    sudo apt update && sudo apt install libsecret-1-0
    
  2. Stellen Sie sicher, dass gnome-keyring läuft:

    gnome-keyring-daemon --start --components=secrets
    
  3. Aktualisieren Sie Rust auf die neueste stabile Version, und legen Sie stabil als Standardtoolkette fest:

    rustup update  
    rustup default stable  
    
  4. Wenn das Problem weiterhin besteht, führen Sie cargo publish mit ausführlicher Protokollierung erneut aus, um weitere Details zu erfassen:

    RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
    

Pakete wiederherstellen

Stellen Sie vor dem Wiederherstellen von Abhängigkeiten sicher, dass Sie die Schritte in "Herstellen einer Verbindung mit einem Feed" abgeschlossen haben, damit Sie sich bei Ihrem Azure Artifacts Feed authentifizieren können.

  1. Stellen Sie sicher, dass Ihre Abhängigkeiten im [dependencies] Abschnitt Ihrer Cargo.toml Datei aufgeführt sind.

  2. Wenn Sie Crates direkt aus Ihrem privaten Azure-Artifacts-Feed beziehen, geben Sie die Registry explizit wie folgt an:

    [dependencies]
    CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }
    
  3. Wenn Sie über Ihren Upstream-Feed mithilfe der replace-with-Konfiguration auf Crates von crates.io verweisen, geben Sie diese wie folgt an:

    [dependencies]
    CRATE_NAME = "VERSION_NUMBER"
    
  4. Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um Ihr Projekt zu erstellen und Ihre Abhängigkeiten aus dem Feed wiederherzustellen:

    cargo build
    

Die heruntergeladenen Crates werden unter ~/.cargo/registry/cache/<registry-hash>/ lokal zwischengespeichert, wobei registry-hash ein eindeutiger Bezeichner ist, der auf Ihrer Feed-URL basiert.