Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Met behulp van Azure-artefacten kunt u Cargo-pakketten publiceren en herstellen vanuit uw eigen feeds en openbare registers, zoals crates.io. Gebruik Azure-artefacten om interne kratten te hosten, verbinding te maken met upstreamregisters en pakkettoegang te beheren vanuit één feed. In deze quickstart wordt u begeleid bij het maken van een feed, het configureren van uw Cargo-project en het publiceren en gebruiken van Cargo-pakketten met behulp van Azure-artefacten.
Prerequisites
| Product | Requirements |
|---|---|
| Azure DevOps | - Een Azure DevOps organisatie. - Een Azure DevOps project. - Download en installeer rustup. U hebt Cargo 1.74.0 of hoger nodig. |
Een feed maken
Als u al een Azure-artefacten feed hebt, gaat u naar de volgende sectie. Volg anders deze stappen om een feed te maken. Azure-artefacten raadt aan om één feed te gebruiken voor het verbruik van kratten uit openbare registers, zoals crates.io en een afzonderlijke feed voor het publiceren van interne kratten.
Meld u aan bij Azure DevOps en ga naar uw project.
Selecteer Artefacten en selecteer Feed maken.
Voer een naam in voor uw feed, kies de zichtbaarheid en selecteer vervolgens een bereik. Zorg ervoor dat u het selectievakje Upstream-bronnen inschakelt om pakketten uit openbare registers op te nemen.
Selecteer Maken wanneer u klaar bent.
Verbinding maken met een feed
Voordat u pakketten vanuit uw feed kunt publiceren of herstellen, moet u eerst uw project configureren om de feed te verifiëren en er verbinding mee te maken.
Meld u aan bij Azure DevOps en ga naar uw project.
Selecteer Artefacten en selecteer vervolgens uw feed in de vervolgkeuzelijst.
Kies Verbinding maken met feed en selecteer daarna Cargo in het linkernavigatievenster.
Volg de stappen in de sectie Project setup om uw
config.tomlbestand te configureren.Volg op dezelfde pagina de instructies in de secties Een referentieprovider configureren en meld u aan bij de registersecties om de referentieprovider in te stellen en verbinding te maken met uw feed. Zie Cargo - projectinstallatie voor gedetailleerde stappen.
Belangrijk
Cargo-ondersteuning in Azure-artefacten vereist Rust 1.74 of hoger, waaronder ondersteuning voor de registry-auth functie.
Voer rustup update uit om uw Rust-versie bij te werken.
Belangrijk
Cargo is momenteel beschikbaar als previewversie en vereist mogelijk de nightly-toolchain met de registry-authinstabiele functie ingeschakeld. Als u dit wilt inschakelen registry-auth, voegt u de volgende instelling toe aan .cargo/config.toml.
[unstable]
registry-auth = true
Voer de volgende opdracht uit om de nightly toolchain te gebruiken:
rustup default nightly
Pakketten publiceren
Voordat u een Cargo-pakket publiceert, moet u ervoor zorgen dat u de stappen in Verbinding maken met een feed hebt voltooid, zodat u zich kunt verifiëren met uw Azure-artefacten feed.
Voer vanuit de map met uw Cargo.toml-bestand de volgende opdracht uit om uw pakket te publiceren:
cargo publish
Als u GLib-GObject-CRITICAL - libsecret-CRITICAL fout tegenkomt, zorg ervoor dat u de volgende stappen volgt:
Controleer of libsecret is geïnstalleerd:
sudo apt update && sudo apt install libsecret-1-0Zorg ervoor dat gnome-keyring actief is:
gnome-keyring-daemon --start --components=secretsWerk Rust bij naar de nieuwste stabiele versie en stel 'stable' in als de standaard toolchain:
rustup update rustup default stableAls het probleem zich blijft voordoen, voert u
cargo publishopnieuw uit met uitgebreide logregistratie om meer details te verzamelen:RUST_LOG=debug cargo publish --registry <REGISTRY_NAME>
herstellen van pakketten
Voordat u afhankelijkheden herstelt, moet u ervoor zorgen dat u de stappen in Verbinding maken met een feed hebt voltooid, zodat u zich kunt verifiëren met uw Azure-artefacten feed.
Zorg ervoor dat uw afhankelijkheden worden vermeld in de
[dependencies]sectie van hetCargo.tomlbestand.Als u crates rechtstreeks uit uw privéfeed in Azure-artefacten afneemt, specificeert u het register als volgt:
[dependencies] CRATE_NAME = { version = "VERSION_NUMBER", registry = "FEED_NAME" }Als u verwijst naar crates van crates.io via uw upstream-feed met behulp van de configuratie
replace-with, geeft u deze als volgt op:[dependencies] CRATE_NAME = "VERSION_NUMBER"Voer de volgende opdracht uit in uw projectmap om uw project te bouwen en uw afhankelijkheden te herstellen vanuit de feed:
cargo build
De gedownloade crates worden lokaal opgeslagen in de cache op ~/.cargo/registry/cache/<registry-hash>/, waarbij registry-hash een unieke ID is die is gebaseerd op uw feed-URL.