

Amazon CodeCatalyst ist nicht mehr offen für Neukunden. Bestandskunden können den Service weiterhin wie gewohnt nutzen. Weitere Informationen finden Sie unter [Wie migriert man von CodeCatalyst](migration.md).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Paketkonzepte
<a name="packages-concepts"></a>

Im Folgenden finden Sie einige Konzepte und Begriffe, die Sie bei der Verwaltung, Veröffentlichung oder Nutzung von Paketen kennen sollten CodeCatalyst.

## Pakete
<a name="packages-concepts-packages"></a>

Ein *Paket* ist ein Paket, das sowohl Software als auch die Metadaten enthält, die für die Installation der Software und die Auflösung aller Abhängigkeiten erforderlich sind. CodeCatalyst unterstützt das npm-Paketformat.

Ein Paket besteht aus:
+ Ein Name (`webpack`ist zum Beispiel der Name eines beliebten npm-Pakets)
+ Ein optionaler [Namespace](#packages-concepts-package-namespaces) (zum Beispiel in) `@types` `@types/node`
+ Eine Reihe von [Versionen](#packages-concepts-package-versions) (zum Beispiel, `1.0.0``1.0.1`,`1.0.2`)
+ Metadaten auf Paketebene (z. B. npm dist-Tags)

## Paket-Namespaces
<a name="packages-concepts-package-namespaces"></a>

Einige Paketformate unterstützen hierarchische Paketnamen, um Pakete in logische Gruppen zu organisieren und Namenskollisionen zu vermeiden. Pakete mit demselben Namen können in verschiedenen Namespaces gespeichert werden. Beispielsweise unterstützt npm Bereiche, und das npm-Paket `@types/node` hat den Bereich und den Namen. `@types` `node` Es gibt viele andere Paketnamen im Gültigkeitsbereich. `@types` CodeCatalystIn wird der Bereich („Typen“) als Paket-Namespace und der Name („Knoten“) als Paketname bezeichnet. Bei Maven-Paketen entspricht der Paket-Namespace der Maven-GroupID. Das Maven-Paket `org.apache.logging.log4j:log4j` hat eine GroupID (Paket-Namespace) von `org.apache.logging.log4j` und die ArtifactID (Paketname). `log4j` Einige Paketformate wie Python unterstützen keine hierarchischen Namen mit einem ähnlichen Konzept wie npm scope oder Maven GroupID. Wenn Sie keine Möglichkeit haben, Paketnamen zu gruppieren, kann es schwieriger sein, Namenskollisionen zu vermeiden.

## Paketversionen
<a name="packages-concepts-package-versions"></a>

Eine *Paketversion* identifiziert die spezifische Version eines Pakets, z. B. `@types/node@12.6.9` Das Format und die Semantik der Versionsnummer variieren je nach Paketformat. Beispielsweise müssen npm-Paketversionen der [Semantic](https://semver.org/) Versioning-Spezifikation entsprechen. In CodeCatalyst besteht eine Paketversion aus der Versionskennung, package-version-level Metadaten und einer Reihe von Assets.

## Objekte
<a name="packages-concepts-assets"></a>

Ein *Asset* ist eine einzelne Datei CodeCatalyst , die in einer Paketversion gespeichert ist, z. B. eine `.tgz` NPM-Datei oder eine Maven-POM- oder JAR-Datei.

## Paket-Repositorys
<a name="packages-concepts-repository"></a>

Ein CodeCatalyst *Paket-Repository* enthält eine Reihe von [Paketen](#packages-concepts-packages), die [Paketversionen](#packages-concepts-package-versions) enthalten, von denen jede einer Reihe von [Assets](#packages-concepts-assets) zugeordnet ist. Paket-Repositorys sind polyglot, was bedeutet, dass ein einzelnes Repository Pakete aller unterstützten Typen enthalten kann. Jedes Paket-Repository stellt Endpunkte zum Abrufen und Veröffentlichen von Paketen mithilfe von Tools wie NuGet CLIs (`nuget`,`dotnet`), der `npm` CLI, der Maven-CLI (`mvn`) und Python CLIs (und) zur Verfügung. `pip` `twine` Informationen zu Paketkontingenten in CodeCatalyst, einschließlich der Anzahl der Paket-Repositorys, die in jedem Bereich erstellt werden können, finden Sie unter. [Kontingente für Pakete](packages-quotas.md)

Sie können ein Paket-Repository mit einem anderen verknüpfen, indem Sie es als Upstream-Repository einrichten. Wenn ein Repository als Upstream-Repository festgelegt ist, können Sie jedes Paket aus dem Upstream-Repository sowie alle zusätzlichen Upstream-Repositorys in der Kette verwenden. Weitere Informationen finden Sie unter [Upstream-Repositorien](#packages-concepts-upstream-repositories).

Gateway-Repositorien sind eine spezielle Art von Paket-Repositorys, die Pakete von offiziellen externen Paketbehörden abrufen und speichern. Weitere Informationen finden Sie unter [Gateway-Repositorys](#packages-concepts-gateway-repositories).

## Upstream-Repositorien
<a name="packages-concepts-upstream-repositories"></a>

Sie können CodeCatalyst es verwenden, um eine Upstream-Beziehung zwischen zwei Paket-Repositorys herzustellen. Ein Paket-Repository ist ein *Upstream-Repository* eines anderen, wenn auf die darin enthaltenen Paketversionen vom Paket-Repository-Endpunkt des Downstream-Repositorys aus zugegriffen werden kann. Bei einer Upstream-Beziehung werden die Inhalte der beiden Paket-Repositorien aus Sicht eines Kunden effektiv zusammengeführt.

Wenn ein Paketmanager beispielsweise eine Paketversion anfordert, die in einem Repository nicht existiert, durchsucht er CodeCatalyst dann konfigurierte Upstream-Repositorys nach der Paketversion. Upstream-Repositorys werden in der Reihenfolge durchsucht, in der sie konfiguriert wurden. Sobald ein Paket gefunden wurde, CodeCatalyst wird die Suche beendet. 

## Gateway-Repositorys
<a name="packages-concepts-gateway-repositories"></a>

Ein *Gateway-Repository* ist eine spezielle Art von Paket-Repository, das mit einer unterstützten externen, offiziellen Paketautorität verbunden ist. Wenn Sie ein Gateway-Repository als [Upstream-Repository](#packages-concepts-upstream-repositories) hinzufügen, können Sie Pakete von der entsprechenden offiziellen Paketbehörde verwenden. Ihr Downstream-Repository kommuniziert nicht mit dem öffentlichen Repository, sondern alles wird vom Gateway-Repository vermittelt. Auf diese Weise verbrauchte Pakete werden sowohl im Gateway-Repository als auch im Downstream-Repository gespeichert, das die ursprüngliche Anfrage erhalten hat.

Gateway-Repositorys sind vordefiniert, müssen aber in jedem Projekt erstellt werden, damit sie verwendet werden können. Die folgende Liste enthält alle Gateway-Repositorys, in denen sie erstellt werden können, CodeCatalyst sowie die Package Authority, mit der sie verbunden sind.
+ **npm-public-registry-gateway**stellt npm-Pakete von npmjs.com bereit.
+ **maven-central-gateway**stellt Maven-Pakete aus dem Maven Central-Repository bereit.
+ **google-android-gateway**bietet Maven-Pakete von Google Android.
+ **commonsware-gateway** bietet Maven-Pakete von. CommonsWare
+ **gradle-plugins-gateway**stellt Maven-Pakete von Gradle Plugins zur Verfügung.
+ **nuget-gallery-gateway**stellt NuGet Pakete aus der Galerie zur NuGet Verfügung.
+ **pypi-gateway** stellt Python-Pakete aus dem Python Package Index zur Verfügung.