# Настройка интерфейса командной строки CodeQL

Чтобы начать работу CodeQL CLIс , нужно скачать и настроить CLI так, чтобы он мог получить доступ к инструментам и библиотекам, необходимым для создания и анализа баз данных.

## Настройка CodeQL CLI

Для запуска CodeQL команд нужно настроить CodeQL CLI так, чтобы он мог получать доступ к инструментам, запросам и библиотекам, необходимым для создания и анализа баз данных.

Поддерживает CodeQL CLI широкий спектр сценариев использования и структуры каталогов. В этой статье рассматривается простая настройка, которая работает для большинства пользователей и сред.

Если вы планируете использовать их CodeQL CLI для исследований безопасности, тестирования или внесения запросов, возможно, понадобится более продвинутая система. Дополнительные сведения см. в разделе [Сведения о интерфейсе командной строки CodeQL](/ru/code-security/concepts/code-scanning/codeql/about-the-codeql-cli#getting-started).

### Перед тем как начать

Если вы используете macOS в Apple Silicon (например, Apple M1), убедитесь, что [установлены средства](https://developer.apple.com/library/archive/technotes/tn2339/_index.html) разработчика командной строки Xcode и [Rosetta 2](https://support.apple.com/en-us/HT211861) .

> \[!NOTE]
> В настоящее время он CodeQL CLI несовместим с дистрибутивами Linux без glibc, такими как (muslc-основанный) Alpine Linux.

### 1. Скачайте CodeQL CLI архив смолы

Пакет скачивания CodeQL CLI — это архив tar, содержащий средства, скрипты и различные файлы данных CodeQL. Если у вас нет лицензии GitHub Enterprise , скачав этот архив, вы согласны с [GitHub CodeQL условий.](https://securitylab.github.com/tools/codeql/license)

Загрузите пакет CodeQL из <https://github.com/github/codeql-action/releases>. Содержимое пакета:

* Продукт CodeQL CLI
* совместимая версия запросов и библиотек из <https://github.com/github/codeql>;
* предварительно скомпилированные версии всех запросов, включенных в пакет.

Всегда следует использовать пакет CodeQL . Это обеспечивает совместимость и обеспечивает гораздо более высокую производительность, чем отдельная загрузка запросов CodeQL CLI и извлечении запросов CodeQL. Если вы будете запускать CLI только на одной конкретной платформе, скачайте соответствующий файл `codeql-bundle-PLATFORM.tar.zst`. Кроме того, можно скачать файл `codeql-bundle.tar.zst`, содержащий CLI для всех поддерживаемых платформ.

Существуют также `tar.gz` варианты пакета, которые идентичны `tar.zst` вариантам, кроме сжатых с помощью менее эффективного алгоритма gzip. Единственной причиной скачивания `tar.gz` вариантов является использование старых средств декомпрессии, которые не поддерживают алгоритм сжатия Zstandard.

### 2. Извлечь CodeQL CLI архив смолы

Извлеките CodeQL CLI архив смолы в выбранный вами каталог.

### Опционально: Сделайте CodeQL CLI его доступным в вашей системе CI

Если вы планируете запускать CodeQLcode scanning анализ в CI-системе, убедитесь, что весь контент CodeQL CLI пакета доступен каждому CI-серверу, который будет запускать анализ.

Например, доступны следующие возможности:

* Скопируйте пакет из центрального внутреннего отделения и извлекайте его на каждом сервере, или
* Используйте REST API для загрузки пакета напрямую , GitHubобеспечивая получение последних улучшений запросов. Дополнительные сведения см. в разделе [Конечные точки REST API для выпусков и ресурсов выпуска](/ru/rest/releases).

### 3. Запуск `codeql`

После извлечения можно выполнить процессы CodeQL путем выполнения `codeql` исполняемого файла несколькими способами:

* Выполнив выполнение `<extraction-root>/codeql/codeql`, где `<extraction-root>` находится папка, в которой извлечен пакет CodeQL CLI.
* Добавив `<extraction-root>/codeql` в `PATH`, чтобы можно было запустить исполняемый файл просто как `codeql`.

На этом этапе можно выполнить команды CodeQL. Полный список команд CodeQL CLI см. в разделе [Команды CLI CodeQL вручную](/ru/code-security/codeql-cli/codeql-cli-manual).

> \[!NOTE]
> Если добавить `codeql` к `PATH`своему , к нему можно получить CodeQL доступ для Visual Studio Code компилирования и запуска запросов. Для получения дополнительной информации о настройке VS Code доступа к CodeQL CLI, см. [Управление CLI CodeQL в расширении VS Code](/ru/code-security/codeql-for-vs-code/using-the-advanced-functionality-of-the-codeql-for-vs-code-extension/configuring-access-to-the-codeql-cli).

## Тестирование CodeQL CLI конфигурации

После извлечения CodeQL CLI пакета вы можете выполнить следующую команду, чтобы убедиться, что CLI корректно настроен для создания и анализа баз данных:

* `codeql resolve packs`, если `/<extraction root>/codeql` находится в `PATH`.
* В противном случае `/<extraction root>/codeql/codeql resolve packs`.

При успешном выполнении вы увидите выходные данные, аналогичные следующему извлечению:

```shell
Searching directories specified by `--additional-packs`. All directories have equal priority.
  Searching in:
    No packs were found at this location.
Searching directories specified by `--search-path`. Directories are searched in order.
Searching the root of the CodeQL distribution.
  Searching in:
      <extraction root>
    The following packs were found:
      codeql/java-all@<version>: (library) <extraction root>/qlpacks/codeql/javat-all/<version>/qlpack.yml
      codeql/java-queries@<version>: (query) <extraction root>/qlpacks/codeql/java-queries/<version>/qlpack.yml
      codeql/javascript-all@<version>: (library) <extraction root>/qlpacks/codeql/javascript-all/<version>/qlpack.yml
      codeql/javascript-queries@<version>: (query) <extraction root>/qlpacks/codeql/javascript-queries/<version>/qlpack.yml
      codeql/swift-all@<version>: (library) <extraction root>/qlpacks/codeql/swift-all/<version>/qlpack.yml
      codeql/swift-queries@<version>: (query) <extraction root>/qlpacks/codeql/swift-queries/<version>/qlpack.yml
...
```

Результаты усечены для краткости. Фактические результаты будут более длинными и более подробными.

Убедитесь, что выходные данные содержат ожидаемые языки, а расположение каталога для файлов qlpack указано верно. Место должно находиться внутри извлеченного CodeQL CLI расслоения, показанного в предыдущем примере как `<extraction root>`. Если CodeQL CLI не удаётся найти qlpacks для ожидаемых языков, проверьте, скачали ли вы пакет CodeQL , а не отдельную копию CodeQL CLI.

Можно также запустить `codeql resolve languages` , чтобы показать, какие языки доступны для создания базы данных. Там будет перечислен языки, поддерживаемые по умолчанию в вашем CodeQL CLI пакете.

При необходимости можно скачать некоторые пакеты CodeQL, содержащие предварительно скомпилированные запросы, которые вы хотите запустить. Дополнительные сведения см. в разделе [Настройка анализа с помощью пакетов CodeQL](/ru/code-security/codeql-cli/getting-started-with-the-codeql-cli/customizing-analysis-with-codeql-packs).

Эта `codeql resolve packs` команда полезна для диагностики задач, когда CodeQL CLI не удаётся найти пакеты запросов, которые вы ожидаете для анализа.

> \[!NOTE] Эта `codeql resolve packs` команда доступна в CodeQL CLI версиях 2.19.0 и более поздние. Для более ранних версий интерфейса командной строки следует выполнить `codeql resolve qlpacks` команду, которая создает аналогичные, но менее подробные выходные данные.

## Дальнейшие действия

Чтобы узнать, как подготовить ваш код к анализу CodeQL CLIс помощью , см. [Подготовка кода для анализа CodeQL](/ru/code-security/codeql-cli/getting-started-with-the-codeql-cli/preparing-your-code-for-codeql-analysis).