# Auflösen von Bibliothekspfaden

> [!NOTE]
> In diesem Inhalt wird die neueste Version von CodeQL CLI beschrieben. Weitere Informationen zu diesem Thema findest du unter https://github.com/github/codeql-cli-binaries/releases.
>
> Um Details zu den Optionen anzuzeigen, die für diesen Befehl in früheren Releases verfügbar sind, führe den Befehl mit der Option <span style="white-space: nowrap;">`--help`</span> im Terminal aus.

## Zusammenfassung

```shell copy
codeql resolve library-paths <options>... -- <query>...
```

## Beschreibung

\[Deep Plumbing] Bestimmen Sie QL-Bibliothekspfade und Dbschemes für mehrere Abfragen.

Bestimmen Sie, mit welchem QL-Bibliothekspfad jede Abfrage kompiliert werden soll.
Diese Berechnung ist implizit für mehrere Unterbefehle, die möglicherweise Abfragen kompilieren müssen. Er wird als separater Plumbing-Befehl verfügbar gemacht, um (a) bei der Problembehandlung zu helfen und (b) einen Ausgangspunkt für die Änderung des Pfads in Ausnahmefällen zu bieten, in denen eine genaue Steuerung erforderlich ist.

Der Befehl erkennt außerdem eine Sprache und dbscheme zum Kompilieren jeder Abfrage, da diese auch von der automatischen Erkennung der Sprache einer QL-Abfrage abhängen.

**Der Befehl ist absolut intern, und sein Verhalten oder Vorhandensein kann sich ohne Ankündigung ändern, wenn das QL-Sprachökosystem weiterentwickelt wird.**

## Optionen

### Primäre Optionen

#### `<query>...`

\[Verpflichtend] Der Pfad zur QL-Datei, die kompiliert werden soll. Das Verzeichnis und die übergeordneten Verzeichnisse werden nach der Datei „qlpack.yml“ oder der Legacydatei „queries.xml“ durchsucht, um die erforderlichen Pakete zu ermitteln.

#### `--[no-]find-extractors`

\[Erweitert] Fügt in die Ausgabe eine Zusammenfassung der `extractor`-Felder aus den QL-Paketen ein, von denen die Abfrage abhängt. Diese Option wird nur in einigen seltenen internen Fällen verwendet und erfordert möglicherweise mehr Rechenaufwand. Aus diesem Grund ist sie standardmäßig deaktiviert.

### Optionen von der Kommandozeile des aufrufenden Befehls

#### `--search-path=<dir>[:<dir>...]`

Eine Liste der Verzeichnisse, in denen QL-Pakete gefunden werden können. Jedes Verzeichnis kann entweder ein QL-Paket (oder ein Bündel von Paketen mit einer Datei vom Typ `.codeqlmanifest.json` am Stamm) oder das unmittelbar übergeordnete Element eines oder mehrerer solcher Verzeichnisse sein.

Wenn der Pfad mehr als ein Verzeichnis enthält, definiert deren Reihenfolge den Vorrang: Wenn ein Paketname, der aufgelöst werden muss, in mehr als einem der Verzeichnisbäume gefunden wird, hat das zuerst angegebene Vorrang.

Ein entsprechender Verweis beim Auschecken des Open-Source-CodeQL-Repositorys sollte funktionieren, wenn eine der darin enthaltenen Sprachen abgefragt wird.

Wenn du das CodeQL-Repository als gleichgeordnetes Element der entpackten CodeQL-Toolkette ausgecheckt hast, musst du diese Option nicht verwenden. Solche gleichgeordneten Verzeichnisse werden immer nach QL-Paketen durchsucht, die andernfalls nicht gefunden werden können. (Wenn diese Standardeinstellung nicht funktioniert, solltest du unbedingt `--search-path` in einer Benutzerkonfigurationsdatei festlegen.)

(Hinweis: Unter Windows wird `;` als Pfadtrennzeichen verwendet.)

#### `--additional-packs=<dir>[:<dir>...]`

Bei Angabe dieser Verzeichnisliste werden die Verzeichnisse vor den Verzeichnissen in `--search-path` nach Paketen durchsucht. Die Reihenfolge zwischen diesen Elementen spielt keine Rolle. Wenn ein Paketname über diese Liste an zwei verschiedenen Stellen gefunden wird, handelt es sich um einen Fehler.

Dies ist hilfreich, wenn du vorübergehend eine neue Version eines Pakets entwickelst, die auch am Standardpfad vorhanden ist. Andererseits wird davon _abgeraten_, diese Option in einer Konfigurationsdatei außer Kraft zu setzen. Einige interne Aktionen fügen diese Option direkt hinzu, wodurch alle konfigurierten Werte überschrieben werden.

(Hinweis: Unter Windows wird `;` als Pfadtrennzeichen verwendet.)

#### `--library-path=<dir>[:<dir>...]`

\[Erweitert] Eine optionale Liste von Verzeichnissen, die dem ursprünglichen Suchpfad für den Import von QL-Bibliotheken hinzugefügt wird. Sollte nur verwendet werden, wenn du QL-Bibliotheken verwendest, die nicht als QL-Pakete gepackt wurden.

(Hinweis: Unter Windows wird `;` als Pfadtrennzeichen verwendet.)

#### `--dbscheme=<file>`

\[Erweitert] Definiert explizit, für welche Abfragen des Datenbankschemas kompiliert werden sollen. Sollte nur von Aufrufer*innen angegeben werden, die sehr genau wissen, was sie tun.

#### `--compilation-cache=<dir>`

\[Erweitert] Gibt ein zusätzliches Verzeichnis an, das als Kompilierungscache verwendet werden soll.

#### `--no-default-compilation-cache`

\[Erweitert] Verwendet keine Kompilierungscaches an Standardspeicherorten, z. B. im QL-Paket mit der Abfrage oder im Verzeichnis der CodeQL-Toolkette.

### Optionen zum Konfigurieren des CodeQL-Paket-Managers

#### `--registries-auth-stdin`

Führt eine Authentifizierung bei GitHub Enterprise Server Container-Registries durch, indem eine kommaseparierte Liste von \<registry\_url>=\<token>-Paaren übergeben wird.

Zum Beispiel kannst du `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2` übergeben.
um dich bei zwei GitHub Enterprise Server-Instanzen zu authentifizieren.

Dadurch werden die Umgebungsvariablen CODEQL\_REGISTRIES\_AUTH und GITHUB\_TOKEN überschrieben. Wenn du dich nur bei der Containerregistrierung von github.com authentifizieren musst, kannst du dich stattdessen mit der einfacheren Option `--github-auth-stdin` authentifizieren.

#### `--github-auth-stdin`

Authentifiziere dich bei der Containerregistrierung von github.com, indem du ein GitHub Apps-Token oder ein persönliches Zugriffstoken über die Standardeingabe übergibst.

Für die Authentifizierung bei Containerregistrierungen in GitHub Enterprise Server übergibst du `--registries-auth-stdin` oder verwendest die Umgebungsvariable „CODEQL\_REGISTRIES\_AUTH“.

Dadurch wird die GITHUB\_TOKEN-Umgebungsvariable überschrieben.

### Allgemeine Optionen

#### `-h, --help`

Zeigt diesen Hilfetext an.

#### `-J=<opt>`

\[Erweitert] Dient zum Angeben einer Option für die JVM-Instanz, die den Befehl ausführt.

(Beachte, dass Optionen, die Leerzeichen enthalten, nicht ordnungsgemäß verarbeitet werden.)

#### `-v, --verbose`

Erhöhen Sie schrittweise die Anzahl der ausgegebenen Fortschrittsmeldungen.

#### `-q, --quiet`

Verringere inkrementell die Anzahl der ausgegebenen Statusmeldungen.

#### `--verbosity=<level>`

\[[Erweitert] Legen Sie explizit den Ausführlichkeitsgrad auf „errors“, „warnings“, „progress“, „progress+“, „progress++“ oder „progress+++“ fest. Überschreibt `-v` und `-q`:

#### `--logdir=<dir>`

\[Erweitert] Ermöglicht das Schreiben detaillierter Protokolle in eine oder mehrere Dateien im angegebenen Verzeichnis mit generierten Namen, die Zeitstempel und den Namen des ausgeführten Unterbefehls enthalten.

(Um eine Protokolldatei mit einem Namen zu schreiben, über den du die volle Kontrolle hast, gib stattdessen `--log-to-stderr` an, und leite stderr wie gewünscht um.)

#### `--common-caches=<dir>`

\[Erweitert] Steuert den Speicherort zwischengespeicherter Daten auf dem Datenträger, der zwischen mehreren Ausführungsvorgängen der CLI beibehalten wird, z. B. heruntergeladene QL-Pakete und kompilierte Abfragepläne. Wenn dies nicht explizit festgelegt ist, wird dieses Verzeichnis standardmäßig auf ein Verzeichnis mit dem Namen `.codeql` festgelegt, das sich im Startverzeichnis des Benutzer. Es wird erstellt, wenn es noch nicht vorhanden ist.

Verfügbar seit `v2.15.2`.