referencia de scripts de dotnet-install

NOMBRE

dotnet-install.ps1 | dotnet-install.sh: script usado para instalar el SDK de .NET y el entorno de ejecución compartido.

Sinopsis

Windows:

dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
    [-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
    [-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
    [-NoCdn] [-NoPath] [-ProxyAddress] [-ProxyBypassList <LIST_OF_URLS>]
    [-ProxyUseDefaultCredentials] [-Quality <QUALITY>] [-Runtime <RUNTIME>]
    [-SkipNonVersionedFiles] [-UncachedFeed] [-KeepZip] [-ZipPath <PATH>] [-Verbose]
    [-Version <VERSION>]

Get-Help ./dotnet-install.ps1

Linux/macOS:

dotnet-install.sh  [--architecture <ARCHITECTURE>] [--azure-feed]
    [--channel <CHANNEL>] [--dry-run] [--feed-credential]
    [--install-dir <DIRECTORY>] [--jsonfile <JSONFILE>]
    [--no-cdn] [--no-path] [--quality <QUALITY>]
    [--runtime <RUNTIME>] [--runtime-id <RID>]
    [--skip-non-versioned-files] [--uncached-feed] [--keep-zip] [--zip-path <PATH>] [--verbose]
    [--version <VERSION>]

dotnet-install.sh --help

El script de bash también lee modificadores de PowerShell, por lo que puede usar modificadores de PowerShell con el script en sistemas Linux y macOS.

Descripción

Los scripts dotnet-install realizan una instalación sin derechos administrativos del SDK de .NET, que incluye la CLI de .NET y el entorno de ejecución compartido. Hay dos scripts:

Nota

.NET recopila datos de telemetría. Para obtener más información y saber cómo no participar, consulte Telemetría del SDK de .NET.

Propósito

El uso previsto de los scripts es en escenarios de integración continua (CI), donde:

  • el SDK debe instalarse sin interacción del usuario y sin derechos de administrador;

  • no es necesario que la instalación del SDK se mantenga en varias ejecuciones de CI.

    Esta es la secuencia típica de eventos:

    • Se desencadena la CI.
    • CI instala el SDK mediante uno de estos scripts.
    • CI finaliza su trabajo y borra los datos temporales, incluida la instalación del SDK.

Para configurar un entorno de desarrollo o ejecutar aplicaciones, use los instaladores en lugar de estos scripts.

Se recomienda usar la versión estable de los scripts:

El origen de los scripts se encuentra en el repositorio dotnet/install-scripts de GitHub.

Comportamiento de los scripts

Ambos scripts tienen el mismo comportamiento. Descargan el archivo ZIP o tarball desde las entregas de compilación de la CLI y proceden a instalarlo en la ubicación predeterminada o en una ubicación especificada por -InstallDir|--install-dir.

De forma predeterminada, los scripts de instalación descargan el SDK y lo instalan. Si desea obtener solo el tiempo de ejecución compartido, especifique el argumento -Runtime|--runtime.

De forma predeterminada, el script agrega la ubicación de instalación a $PATH para la sesión actual. Para invalidar este comportamiento, especifique el argumento -NoPath|--no-path. El script no establece la variable de entorno DOTNET_ROOT.

Importante

El script no agrega la ubicación de instalación a la variable de entorno PATH del usuario, sino que debe agregarla manualmente.

Antes de ejecutar el script, instale las dependencias necesarias.

Puede instalar una versión específica mediante el argumento -Version|--version. La versión debe especificarse como un número de versión de tres partes, por ejemplo, 2.1.0. Si no se especifica la versión, el script instala la versión latest.

Los scripts de instalación no actualizan el Registro en Windows. Solo descargan los archivos binarios comprimidos y los copian en una carpeta. Si quiere que se actualicen los valores de las claves del Registro, use los instaladores de .NET.

Opciones

  • -Architecture|--architecture <ARCHITECTURE>

    Arquitectura de los archivos binarios de .NET para instalar. Los valores posibles son <auto>, amd64, x64, x86, arm64, arm, s390x y ppc64le. El valor predeterminado es <auto>, que representa la arquitectura de SO que se ejecuta en ese momento.

  • -AzureFeed|--azure-feed

    Solo para uso interno. Permite usar otro almacenamiento del que descargar los archivos del SDK. Este parámetro solo se usa si --no-cdn es “false”. El valor predeterminado es https://dotnetcli.azureedge.net/dotnet.

  • -Channel|--channel <CHANNEL>

    Especifica el canal de origen para la instalación. Los valores posibles son:

    • STS: la versión más reciente con soporte en un plazo estándar.
    • LTS: la versión más reciente con soporte a largo plazo.
    • Versión de dos partes en formato A.B que representa una versión específica (por ejemplo, 3.1 o 6.0).
    • Versión de tres partes en formato A.B.Cxx que representa una versión específica del SDK (por ejemplo 6.0.1xx o 6.0.2xx). Disponible desde la versión 5.0.

    El parámetro version invalida el parámetro channel cuando se usa cualquier versión que no sea latest.

    El valor predeterminado es LTS. Para más información sobre los canales de soporte técnico de .NET, vea la página .NET Support Policy (Directiva de soporte técnico de .NET Core).

  • -DryRun|--dry-run

    Si se establece, el script no realizará la instalación. En su lugar, muestra qué línea de comandos se va a usar para instalar de manera coherente la versión solicitada actualmente de la CLI de .NET. Por ejemplo, si especifica la versión latest, se muestra un vínculo con la versión específica, de manera que este comando puede usarse de manera determinista en un script de compilación. También se muestra la ubicación de los archivos binarios si prefiere instalarla o descargarla por su cuenta.

  • -FeedCredential|--feed-credential

    Se utiliza como una cadena de consulta para anexar a la fuente de Azure. Permite cambiar la dirección URL para usar cuentas de almacenamiento de blobs no público.

  • --help

    Imprime la ayuda para el script. Solo se aplica al script de Bash. Para PowerShell, use Get-Help ./dotnet-install.ps1.

  • -InstallDir|--install-dir <DIRECTORY>

    Especifica la ruta de instalación. Si no existe el directorio, se crea. El valor predeterminado es %LocalAppData%\Microsoft\dotnet en Windows y $HOME/.dotnet en Linux o macOS. Los archivos binarios se colocan directamente en el directorio.

  • -JSonFile|--jsonfile <JSONFILE>

    Especifica una ruta de acceso a un archivo global.json que se va a usar para determinar la versión del SDK. El archivo global.json debe tener un valor para sdk:version.

  • -NoCdn|--no-cdn

    Deshabilita la descarga desde Azure Content Delivery Network (CDN) y usa la fuente no almacenada en caché directamente.

  • -NoPath|--no-path

    Si se establece, la carpeta de instalación no se exporta a la ruta de acceso para la sesión actual. De manera predeterminada, el script modifica la variable de entorno PATH, que hace que la CLI de .NET esté disponible inmediatamente después de la instalación.

  • -ProxyAddress

    Si se establece, el instalador usa el proxy al realizar solicitudes web. (Solo es válido para Windows).

  • -ProxyBypassList <LIST_OF_URLS>

    Si se establece con ProxyAddress, proporciona una lista de direcciones URL separadas por comas que omiten el proxy. (Solo es válido para Windows).

  • -ProxyUseDefaultCredentials

    Si se establece, el instalador usa las credenciales del usuario actual cuando se usa la dirección del proxy. (Solo es válido para Windows).

  • -Quality|--quality <QUALITY>

    Descarga la compilación más reciente de la calidad especificada en el canal. Los valores posibles son daily, signed, validated, preview y GA. La mayoría de los usuarios deben usar cualidades daily, preview o GA.

    Los distintos valores de calidad indican distintas fases del proceso de lanzamiento del SDK o runtime instalados.

    • daily: las compilaciones más recientes del SDK o del runtime. Se construyen todos los días y no se prueban. No se recomiendan para el uso en producción, pero a menudo se pueden usar para probar características o correcciones específicas inmediatamente después de fusionarlas mediante combinación en el producto. Estas compilaciones proceden del repositorio dotnet/installer y, por tanto, si busca correcciones de dotnet/sdk, debe esperar a que el código fluya y se fusione mediante combinación del SDK al instalador antes de que aparezca en una compilación diaria.
    • signed: compilaciones firmadas por Microsoft que no se validan ni publican públicamente. Las compilaciones firmadas son candidatas para la validación, la versión preliminar y la versión de disponibilidad general. Este nivel de calidad no está pensado para uso público.
    • validated: compilaciones que han realizado algunas pruebas internas en ellas, pero que aún no se han publicado como versión preliminar o disponibilidad general. Este nivel de calidad no está pensado para uso público.
    • preview: las versiones públicas mensuales de la siguiente versión de .NET, diseñadas para uso público. No se recomienda para el uso de producción. Diseñado para permitir que los usuarios experimenten y prueben la nueva versión principal antes de su lanzamiento.
    • GA: las versiones estables finales del SDK y el runtime de .NET. Diseñado para uso público, así como soporte técnico de producción.

    La opción --quality solo funciona en combinación con --channel, pero no es aplicable a los canales STS y LTS y se omitirá si se usa uno de ellos.

    Para una instalación del SDK, use un valor channel que esté en formato A.B o A.B.Cxx. Para una instalación del entorno de ejecución, use channel en formato A.B.

    No use los parámetros version y quality. Cuando quality se especifica, el script determina por sí mismo la versión adecuada.

    Disponible desde la versión 5.0.

  • -Runtime|--runtime <RUNTIME>

    Se instala simplemente el entorno de tiempo de ejecución compartido, no el SDK completo. Los valores posibles son:

    • dotnet: el runtime compartido Microsoft.NETCore.App.
    • aspnetcore: el runtime compartido Microsoft.AspNetCore.App.
    • windowsdesktop: el runtime compartido Microsoft.WindowsDesktop.App.
  • --os <OPERATING_SYSTEM>

    Especifica el sistema operativo para el que se instalan las herramientas. Los valores posibles son osx, macos, linux, linux-musl y freebsd.

    El parámetro es opcional y solo se debe usar cuando sea necesario invalidar el sistema operativo detectado por el script.

  • -SharedRuntime|--shared-runtime

    Nota

    Este parámetro está obsoleto y puede quitarse en una versión futura del script. La alternativa recomendada es la opción -Runtime|--runtime.

    Se instalan simplemente los bits del entorno de tiempo de ejecución compartido, no el SDK completo. Esta opción equivale a especificar -Runtime|--runtime dotnet.

  • -SkipNonVersionedFiles|--skip-non-versioned-files

    Omite la instalación de archivos sin control de versiones, como dotnet.exe, si ya existen.

  • -UncachedFeed|--uncached-feed

    Solo para uso interno. Permite usar otro almacenamiento del que descargar los archivos del SDK. Este parámetro solo se usa si --no-cdn es “true”.

  • -KeepZip|--keep-zip

    Si se establece, el archivo del SDK descargado se mantiene después de la instalación.

  • -ZipPath|--zip-path <PATH>

Si se establece, el archivo del SDK descargado se almacena en la ruta de acceso especificada.

  • -Verbose|--verbose

    Muestra la información de diagnóstico.

  • -Version|--version <VERSION>

    Representa una versión de compilación concreta. Los valores posibles son:

    • latest: compilación más reciente en el canal (utilizado con la opción -Channel).
    • Versión de tres partes en formato X.Y.Z que representa una determinada versión de compilación; reemplaza a la opción -Channel. Por ejemplo: 2.0.0-preview2-006120.

    Si no se especifica, el valor predeterminado de -Version es latest.

Ejemplos

  • Instale la versión compatible a largo plazo más reciente en la ubicación predeterminada:

    Windows:

    ./dotnet-install.ps1 -Channel LTS
    

    macOS y Linux:

    ./dotnet-install.sh --channel LTS
    
  • Instale la versión preliminar más reciente del SDK 6.0.1xx en la ubicación especificada:

    Windows:

    ./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\cli
    

    macOS y Linux:

    ./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
    
  • Instale la versión 6.0.0 del entorno de ejecución compartido:

    Windows:

    ./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
    

    macOS y Linux:

    ./dotnet-install.sh --runtime dotnet --version 6.0.0
    
  • Obtenga el script e instale la versión 6.0.2 detrás de un proxy corporativo (solo en Windows):

    Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -Proxy $env:HTTP_PROXY -ProxyUseDefaultCredentials -OutFile 'dotnet-install.ps1';
    ./dotnet-install.ps1 -InstallDir '~/.dotnet' -Version '6.0.2' -Runtime 'dotnet' -ProxyAddress $env:HTTP_PROXY -ProxyUseDefaultCredentials;
    
  • Obtenga el script e instale ejemplos de una línea para la CLI de .NET:

    Windows:

    # Run a separate PowerShell process because the script calls exit, so it will end the current PowerShell session.
    &powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"
    

    macOS y Linux:

    curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin <additional install-script args>
    

Establecimiento de variables de entorno

La instalación manual de .NET no agrega las variables de entorno en todo el sistema y, por lo general, solo funciona para la sesión en la que se instaló .NET. Hay dos variables de entorno que debe establecer para el sistema operativo:

  • DOTNET_ROOT

    Esta variable se establece en la carpeta en la que se instaló .NET, como $HOME/.dotnet para Linux y macOS, y $HOME\.dotnet en PowerShell para Windows.

  • PATH

    Esta variable debe incluir la carpeta DOTNET_ROOT y la carpeta del usuario .dotnet/tools. Por lo general, esto es $HOME/.dotnet/tools en Linux y macOS y $HOME\.dotnet\tools en PowerShell en Windows.

Sugerencia

Para Linux y macOS, use el comando echo para establecer las variables en el perfil de shell, como .bashrc:

echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc

Desinstalación

No hay ningún script de desinstalación. Para obtener información sobre cómo desinstalar .NET manualmente, vea Procedimientos para quitar el runtime y el SDK de .NET.

Validación de firmas de dotnet-install.sh

La validación de firmas es una medida de seguridad importante que ayuda a garantizar la autenticidad e integridad de un script. Al comprobar la firma de un script, puede asegurarse de que no se ha alterado y que procede de un origen de confianza.

Esta es una guía paso a paso sobre cómo comprobar la autenticidad del script de dotnet-install.sh mediante GPG:

  1. Instalar GPG:GPG (GNU Privacy Guard) es una herramienta gratuita y de código abierto para cifrar y firmar datos. Puede instalarlo siguiendo las instrucciones de en el sitio web de GPG.
  2. Importe nuestra clave pública: descargue el archivo de clave pública install-scripts y, a continuación, impórtelo en el keyring GPG ejecutando el comando gpg --import dotnet-install.asc.
  3. Descargue el archivo de firma: el archivo de firma de nuestro script de Bash está disponible en https://dot.net/v1/dotnet-install.sig. Puede descargarlo mediante una herramienta como wget o curl.
  4. Compruebe la firma: para comprobar la firma de nuestro script de Bash, ejecute el comando gpg --verify dotnet-install.sig dotnet-install.sh. Esto comprobará la firma del archivo dotnet-install.sh en la firma del archivo dotnet-install.sig.
  5. Compruebe el resultado: si la firma es válida, verá un mensaje que contiene Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>". Esto significa que el script no se ha alterado y puede ser de confianza.

Preparación del entorno

La instalación de GPG e importación de nuestra clave pública es una operación única.

sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc

Cuando se realiza correctamente, debería ver una salida similar a la siguiente:

gpg: directory '/home/<user>/.gnupg' created
gpg: keybox '/home/<user>/.gnupg/pubring.kbx' created
gpg: /home/<user>/.gnupg/trustdb.gpg: trustdb created
gpg: key B9CF1A51FC7D3ACF: public key "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1

Descarga y comprobación

Con la clave importada, ahora puede descargar el script y la firma y, a continuación, comprobar que el script coincide con la firma:

wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh

Cuando se realiza correctamente, debería ver una salida similar a la siguiente:

gpg: Signature made <datetime>
gpg:                using RSA key B9CF1A51FC7D3ACF
gpg: Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2B93 0AB1 228D 11D5 D7F6  B6AC B9CF 1A51 FC7D 3ACF

La advertencia significa que no confía en la clave pública en el keyring, pero el script se sigue comprobando. El código de salida devuelto por el comando de comprobación debe ser 0, lo que indica que se ha realizado correctamente.

Consulte también