<!-- markdownlint-disable GHD053 -->

<!-- markdownlint-disable GHD030 -->

<!-- Content after this section is automatically generated -->

> \[!NOTE]
> En este contenido se describe la versión más reciente de CodeQL CLI. Para obtener más información sobre esta versión, consulta <https://github.com/github/codeql-cli-binaries/releases>.
>
> Para ver detalles de las opciones disponibles para este comando en una versión anterior, ejecuta el comando con la opción <span style="white-space: nowrap;">`--help`</span> en el terminal.

## Sinopsis

```shell copy
codeql pack install [--force] <options>... -- <dir>
```

## Descripción

Instala las dependencias para este paquete.

Este comando instala las dependencias del paquete. Si existe un archivo codeql-pack.lock.yml, las versiones especificadas en ese archivo de bloqueo se instalarán si son compatibles con las restricciones de versión que se especifican en el archivo qlpack.yml. Si alguna versión de dependencia especificada en el archivo de bloqueo no es compatible con las restricciones de este paquete, este comando instalará la versión compatible más reciente de cada una de esas dependencias, actualizando el archivo de bloqueo con las versiones recién elegidas. Si no hay ningún archivo de bloqueo, este comando instala la versión compatible más reciente de todas las dependencias, creando un archivo de bloqueo nuevo.

Disponible desde la versión `v2.6.0`.

## Opciones

### Opciones principales

#### `<dir>`

Directorio raíz del paquete.

#### `--format=<fmt>`

Selecciona el formato de salida, ya sea `text` *(predeterminado)* o `json`.

#### `-f, --[no-]force`

Permite sobrescribir paquetes ya existentes.

#### `--[no-]allow-prerelease`

Permite que se usen paquetes con calificadores de versión preliminar (por ejemplo, `X.Y.Z-qualifier`). Sin esta marca, se omitirán los paquetes de versión preliminar.

Disponible desde la versión `v2.11.3`.

#### `--lock-override=<file>`

\[Avanzado] Especifica un archivo de bloqueo alternativo que se va a usar como entrada para la resolución de dependencias.

#### `--lock-output=<file>`

\[Avanzado] Especifica una ubicación alternativa para guardar el archivo de bloqueo alternativo generado por la resolución de dependencias.

Disponible desde la versión `v2.14.1`.

#### `--no-strict-mode`

\[Avanzado] Desactiva el modo strict para evitar una advertencia al resolver paquetes de `--additional-packs`

y otras ubicaciones resueltas localmente. Los paquetes resueltos localmente nunca se descargan

y no se agregarán al bloqueo de paquete.

#### `--mode=<mode>`

\[En desuso] Especifica cómo resolver las dependencias:

`minimal-update` *(valor predeterminado)* : actualiza o crea el archivo codeql-pack.lock.yml en función del contenido existente del archivo qlpack.yml. Si algún archivo codeql-pack.lock.yml no satisface las dependencias actuales en el archivo qlpack.yml, el archivo de bloqueo se actualizará según sea necesario.

`upgrade`: actualiza o crea el archivo codeql-pack.lock.yml para usar las versiones más recientes de todas las dependencias, sujeto a las restricciones del archivo qlpack.yml. Este modo se ha reemplazado por el comando "codeql pack upgrade".

`verify`: comprueba que el archivo codeql-pack.lock.yml existente sigue siendo válido con respecto a las dependencias especificadas en el archivo qlpack.yml o da el archivo de bloqueo por erróneo si no existe. Este modo se ha reemplazado por el comando "codeql pack ci".

`no-lock`: omite el archivo codeql-pack.lock.yml existente y realiza una resolución en función del archivo qlpack.yml. No crea ni actualiza el archivo de bloqueo.

`use-lock`: usa el archivo codeql-pack.lock.yml existente para resolver las dependencias o crea el archivo de bloqueo si no existe.

`update`: \[En desuso] Actualiza o crea el archivo codeql-pack.lock.yml para usar las versiones más recientes de todas las dependencias, sujeto a las restricciones del archivo qlpack.yml. Este modo se ha reemplazado por el comando "codeql pack upgrade".

### Opciones para resolver paquetes de QL fuera del Registro del paquete

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

Lista de directorios en los que se pueden encontrar paquetes de QL. Cada directorio puede ser un paquete de QL (o una agrupación de paquetes que contenga un archivo `.codeqlmanifest.json` en la raíz) o el elemento primario inmediato de uno o varios directorios de este tipo.

Si la ruta de acceso contiene más de un directorio, su orden define la prioridad entre ellos: cuando un nombre de paquete que se debe resolver tiene coincidencias en más de uno de los árboles de directorio, tiene prioridad el que se indica primero.

Apuntar esto a una extracción del repositorio CodeQL de código abierto debería funcionar al consultar uno de los lenguajes que residen allí.

Si extrajiste el repositorio CodeQL como un elemento relacionado de la cadena de herramientas CodeQL desempaquetada, no es necesario proporcionar esta opción; dichos directorios del mismo nivel siempre se buscarán paquetes de QL que no se encuentren de otro modo. (Si este valor predeterminado no funciona, se recomienda encarecidamente configurar `--search-path` de una vez en un archivo de configuración por usuario).

(Nota: En Windows, el separador de ruta de acceso es `;`).

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

Si se da esta lista de directorios, se buscarán paquetes en ellos antes que en los incluidos en `--search-path`. El orden entre ellos no importa; si se encuentra un nombre de paquete en dos lugares diferentes de esta lista es un error.

Esto resulta útil si estás desarrollando temporalmente una versión nueva de un paquete que también aparece en la ruta de acceso predeterminada. Por otro lado, *no se recomienda* reemplazar esta opción en un archivo de configuración; algunas acciones internas agregarán esta opción sobre la marcha y reemplazarán cualquier valor configurado.

(Nota: En Windows, el separador de ruta de acceso es `;`).

### Opciones para configurar el administrador de paquetes de CodeQL

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

Autentícate en los registros de contenedores de servidor de GitHub Enterprise; para ello, pasa una lista separada por comas de pares \<registry\_url>=\<token>.

Por ejemplo, puedes pasar `https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2`
para autenticarte en dos instancias del servidor de GitHub Enterprise.

Esto invalida las variables de entorno CODEQL\_REGISTRIES\_AUTH y GITHUB\_TOKEN. Si solo necesitas autenticarte en el registro de contenedor de github.com, puedes hacerlo mediante la opción `--github-auth-stdin` más sencilla.

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

Autentícate en el registro de contenedores de github.com; para ello, pasa un token de aplicaciones de GitHub en github.com o un token de acceso personal mediante la entrada estándar.

Para autenticarte en los registros de contenedores de servidor de GitHub Enterprise, pasa `--registries-auth-stdin` o usa la variable de entorno CODEQL\_REGISTRIES\_AUTH.

Esto invalida la variable de entorno GITHUB\_TOKEN.

### Opciones comunes

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

Muestra este texto de ayuda.

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

\[Avanzado] Asigna la opción a la JVM que ejecuta el comando.

(Ten en cuenta que las opciones que contienen espacios no se administrarán correctamente).

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

Aumenta incrementalmente el número de mensajes de progreso impresos.

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

Reduce incrementalmente el número de mensajes de progreso impresos.

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

\[Avanzado] Establece explícitamente el nivel de detalle en errores, advertencias, progreso, progreso+, progreso++, progreso+++. Invalida `-v` y `-q`.

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

\[Avanzado] Escribe registros detallados en uno o varios archivos del directorio especificado, con nombres generados que incluyen marcas de tiempo y el nombre del subcomando en ejecución.

(Para escribir un archivo de registro con un nombre sobre el que tienes control total, proporciona `--log-to-stderr` y redirige stderr como quieras).

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

\[Avanzado] Controla la ubicación de los datos en caché del disco que se conservarán entre varias ejecuciones de la CLI, como paquetes QL descargados y planes de consulta compilada. Si no se define explícitamente, se toma como predeterminado un directorio denominado `.codeql` en el directorio principal del usuario, que se creará en caso de que no exista.

Disponible desde la versión `v2.15.2`.