referência de scripts dotnet-install

Nome

dotnet-install.ps1 | dotnet-install.sh - Script usado para instalar o SDK do .NET e o runtime compartilhado.

Sinopse

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

O script de bash também lê comutadores do PowerShell. Portanto, você pode usar comutadores do PowerShell com o script nos sistemas Linux/macOS.

Descrição

O scripts dotnet-install executam uma instalação não administrativa do SDK do .NET, que inclui a CLI do .NET e o runtime compartilhado. Há dois scripts:

Observação

O .NET coleta dados de telemetria. Para saber mais e como recusar, consulte Telemetria do SDK do .NET.

Finalidade

O uso pretendido dos scripts é para cenários de CI (integração contínua), em que:

  • O SDK precisa ser instalado sem interação do usuário e sem direitos de administrador.

  • A instalação do SDK não precisa persistir em várias execuções de CI.

    A sequência típica de eventos:

    • A CI é disparada.
    • A CI instala o SDK usando um desses scripts.
    • A CI conclui seu trabalho e limpa dados temporários, incluindo a instalação do SDK.

Para configurar um ambiente de desenvolvimento ou executar aplicativos, use os instaladores em vez desses scripts.

Recomendamos que você use a versão estável dos scripts:

A fonte dos scripts está no repositório dotnet/install-scripts do GitHub.

Comportamento do script

Ambos os scripts têm o mesmo comportamento. Eles baixam o arquivo ZIP/tarball dos destinos de build da CLI e o instalam no local padrão ou em um local especificado por -InstallDir|--install-dir.

Por padrão, os scripts de instalação baixam o SDK e o instalam. Se você quiser obter somente o runtime compartilhado, especifique o argumento -Runtime|--runtime.

Por padrão, o script adiciona o local de instalação ao $PATH da sessão atual. Substitua esse comportamento padrão especificando o argumento -NoPath|--no-path. O script não define a variável de ambiente DOTNET_ROOT.

Importante

O script não adiciona o local de instalação à variável de ambiente PATH do usuário, você deve adicioná-lo manualmente.

Antes de executar o script, instale as dependências necessárias.

Você pode instalar uma versão específica usando o argumento -Version|--version. A versão deve ser especificada como uma versão de três partes, como 2.1.0. Se a versão não for especificada, o script instalará a versão latest.

Os scripts de instalação não atualizam o registro no Windows. Eles apenas baixam os binários compactados e os copiam para uma pasta. Se você quiser que os valores de chave do registro sejam atualizados, use os instaladores do .NET.

Opções

  • -Architecture|--architecture <ARCHITECTURE>

    Arquitetura dos binários do .NET para instalação. Os valores possíveis são <auto>, amd64, x64, x86, arm64, arm, s390x e ppc64le. O valor padrão é <auto>, que representa a arquitetura do sistema operacional em execução no momento.

  • -AzureFeed|--azure-feed

    Apenas para uso interno. Permite o uso de um armazenamento diferente para baixar arquivos do SDK. Esse parâmetro só será usado se --no-cdn for false. O padrão é https://dotnetcli.azureedge.net/dotnet.

  • -Channel|--channel <CHANNEL>

    Especifica o canal de origem da instalação. Os valores possíveis são:

    • STS: a versão mais recente do Suporte a Prazo Standard.
    • LTS: a versão mais recente do Suporte de Longo Prazo.
    • Versão de duas partes no formato A.B, que representa uma versão específica (por exemplo, 3.1 ou 6.0).
    • Versão de três partes no formato A.B.Cxx, representando uma versão específica do SDK (por exemplo, 6.0.1xx ou 6.0.2xx). Disponível desde a versão 5.0.

    O parâmetro version substitui o parâmetro channel quando qualquer versão que não latest for usada.

    O valor padrão é LTS. Para saber mais sobre os canais de suporte do .NET, consulte a página Política de suporte do .NET.

  • -DryRun|--dry-run

    Se definido, o script não executará a instalação. Em vez disso, exibirá qual linha de comando deve ser usada para instalar de forma consistente a versão atualmente solicitada da CLI do .NET. Por exemplo, se você especificar a versão latest, será exibido um link com a versão específica, para que este comando possa ser usado de forma determinista em um script de build. Ele também exibirá o local dos binários, caso você prefira instalá-lo ou baixá-lo por conta própria.

  • -FeedCredential|--feed-credential

    Usado como uma cadeia de caracteres de consulta para acrescentar ao feed do Azure. Permite alterar a URL para usar contas de armazenamento de blobs não públicos.

  • --help

    Imprime a ajuda do script. Aplica-se somente ao script bash. Para o PowerShell, use Get-Help ./dotnet-install.ps1.

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

    Especifica o caminho da instalação. O diretório será criado se não existir. O valor padrão é %LocalAppData%\Microsoft\dotnet no Windows e $HOME/.dotnet no Linux/macOS. Os binários são colocados diretamente nesse diretório.

  • -JSonFile|--jsonfile <JSONFILE>

    Especifica um caminho para um arquivo global.json que será usado para determinar a versão do SDK. O arquivo global.json deve ter um valor para sdk:version.

  • -NoCdn|--no-cdn

    Desabilita o download da Rede de Distribuição de Conteúdo (CDN) Azure e usa o feed não armazenado em cache diretamente.

  • -NoPath|--no-path

    Se definida, a pasta de instalação não será exportada para o caminho da sessão atual. Por padrão, o script modifica o PATH, o que torna a CLI do .NET disponível imediatamente após a instalação.

  • -ProxyAddress

    Se for definido, o instalador usará o proxy ao fazer solicitações da Web. (Válido somente para Windows.)

  • -ProxyBypassList <LIST_OF_URLS>

    Se definido com ProxyAddress, fornece uma lista de URLs separadas por vírgula que ignorarão o proxy. (Válido somente para Windows.)

  • -ProxyUseDefaultCredentials

    Se definido, o instalador usará as credenciais do usuário atual ao usar o endereço de proxy. (Válido somente para Windows.)

  • -Quality|--quality <QUALITY>

    Baixa a build mais recente da qualidade especificada no canal. Os valores possíveis são: daily, signed, validated, preview e GA. A maioria dos usuários deve usar daily, preview ou GA qualidades.

    Os diferentes valores de qualidade sinalizam diferentes estágios do processo de liberação do SDK ou do Runtime instalado.

    • daily: as compilações mais recentes do SDK ou do Runtime. Eles são criados todos os dias e não são testados. Não são recomendadas para uso em produção, mas muitas vezes podem ser utilizadas para testar recursos ou correções específicas imediatamente após serem incorporadas ao produto. Essas compilações são do repositório dotnet/installer e, portanto, se estiver procurando correções do dotnet/sdk: é preciso esperar que o fluxo do código seja mesclado do SDK para o Instalador antes que ele apareça em uma compilação diária.
    • signed: compilações assinadas pela Microsoft que não são validadas ou lançadas publicamente. As compilações assinadas são candidatas à validação, à pré-visualização e à versão da GA. Esse nível de qualidade não se destina ao uso público.
    • validated: compilações que passaram por alguns testes internos, mas ainda não foram lançadas como prévias ou GA. Esse nível de qualidade não se destina ao uso público.
    • preview: os lançamentos públicos mensais da próxima versão do .NET, destinados ao uso público. Não é recomendado para uso em produção. Destina-se a permitir que os usuários experimentem e testem a nova versão principal antes do lançamento.
    • GA: as versões estáveis finais do SDK e do runtime do .NET. Destinadas ao uso público e ao suporte à produção.

    A opção --quality funciona apenas em combinação com --channel, mas não é aplicável aos canais STS e LTS e será ignorada se um desses canais for usado.

    Para uma instalação de SDK, use um valor channel que esteja no formato A.B ou A.B.Cxx. Para uma instalação de runtime, use channel no formato A.B.

    Não use ambos os parâmetros version e quality. Quando quality é especificado, o script determina a versão adequada por conta própria.

    Disponível desde a versão 5.0.

  • -Runtime|--runtime <RUNTIME>

    Instala apenas o runtime compartilhado, não todo o SDK. Os valores possíveis são:

    • dotnet: o runtime compartilhado Microsoft.NETCore.App.
    • aspnetcore: o runtime compartilhado Microsoft.AspNetCore.App.
    • windowsdesktop O runtime compartilhado Microsoft.WindowsDesktop.App.
  • --os <OPERATING_SYSTEM>

    Especifica o sistema operacional para o qual as ferramentas estão sendo instaladas. Os possíveis valores são: osx, macos, linux, linux-musle freebsd.

    O parâmetro é opcional e só deve ser usado quando for necessário substituir o sistema operacional detectado pelo script.

  • -SharedRuntime|--shared-runtime

    Observação

    Esse parâmetro está obsoleto e pode ser removido em uma versão futura do script. A alternativa recomendada é a opção -Runtime|--runtime.

    Instala apenas os bits de runtime compartilhado, não todo o SDK. Essa opção é equivalente a especificar -Runtime|--runtime dotnet.

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

    Ignora a instalação de arquivos sem controle de versão, como dotnet.exe, se já existirem.

  • -UncachedFeed|--uncached-feed

    Apenas para uso interno. Permite o uso de um armazenamento diferente para baixar arquivos do SDK. Esse parâmetro só será usado se --no-cdn for true.

  • -KeepZip|--keep-zip

    Se definido, o arquivo SDK baixado será mantido após a instalação.

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

Se definido, o arquivo SDK baixado será armazenado no caminho especificado.

  • -Verbose|--verbose

    Exibe informações de diagnóstico.

  • -Version|--version <VERSION>

    Representa uma versão específica do build. Os valores possíveis são:

    • latest: última compilação no canal (utilizada com a opção -Channel).
    • Versão de três partes no formato X.Y.Z que representa uma determinada versão do build; substitui a opção -Channel. Por exemplo: 2.0.0-preview2-006120.

    Se não for especificada, a -Version assumirá o padrão latest.

Exemplos

  • Instale a versão LTS (suportada a longo prazo) no local padrão:

    Windows:

    ./dotnet-install.ps1 -Channel LTS
    

    macOS/Linux:

    ./dotnet-install.sh --channel LTS
    
  • Instale a versão prévia mais recente do SDK 6.0.1xxx para o local especificado:

    Windows:

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

    macOS/Linux:

    ./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
    
  • Instale a versão 6.0.0 do runtime compartilhado:

    Windows:

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

    macOS/Linux:

    ./dotnet-install.sh --runtime dotnet --version 6.0.0
    
  • Obtenha o script e instale a versão 6.0.2 atrás de um proxy corporativo (somente 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;
    
  • Obtenha o script e instale exemplos de uma linha da CLI do .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/Linux:

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

Definir variáveis de ambiente

A instalação manual do .NET não adiciona as variáveis de ambiente em todo o sistema e geralmente funciona apenas para a sessão na qual o .NET foi instalado. Há duas variáveis de ambiente que você deve definir para seu sistema operacional:

  • DOTNET_ROOT

    Essa variável é definida como a pasta para a qual o .NET foi instalado, como $HOME/.dotnet para Linux e macOS, e $HOME\.dotnet no PowerShell para Windows.

  • PATH

    Essa variável deve incluir a pasta DOTNET_ROOT e a pasta .dotnet/tools do usuário. Geralmente, isso é $HOME/.dotnet/tools no Linux e macOS e $HOME\.dotnet\tools no PowerShell no Windows.

Dica

Para Linux e macOS, use o comando echo para definir as variáveis no perfil do shell, como .bashrc:

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

Desinstalar

Não há script de desinstalação. Para obter informações sobre a desinstalação manual do .NET, confira Como remover o . Runtime e o SDK do .NET.

Validação de assinatura de dotnet-install.sh

A validação de assinatura é uma medida de segurança importante que ajuda a garantir a autenticidade e a integridade de um script. Com a verificação da assinatura de um script, você pode ter certeza de que ele não foi adulterado e que vem de uma fonte confiável.

Veja aqui um guia passo a passo sobre como verificar a autenticidade do script dotnet-install.sh usando GPG:

  1. Instalar o GPG: o GPG (GNU Privacy Guard) é uma ferramenta gratuita e de código aberto para criptografar e assinar dados. Você pode instalá-lo seguindo as instruções no site do GPG.
  2. Importar nossa chave pública: baixe o arquivo de chave pública install-scripts e importe-o para o keyring GPG executando o comando gpg --import dotnet-install.asc.
  3. Baixar o arquivo de assinatura: o arquivo de assinatura para nosso script Bash está disponível em https://dot.net/v1/dotnet-install.sig. Você pode baixá-lo usando uma ferramenta como wget ou curl.
  4. Verificar a assinatura: para verificar a assinatura do nosso script Bash, execute o comando gpg --verify dotnet-install.sig dotnet-install.sh. Isso verificará a assinatura do arquivo dotnet-install.sh em relação à assinatura no arquivo dotnet-install.sig.
  5. Verificar o resultado: se a assinatura for válida, você verá uma mensagem contendo Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>". Isso significa que o script não foi adulterado e é confiável.

Preparando o ambiente

A instalação do GPG e a importação da nossa chave pública é uma operação única.

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

Quando for bem-sucedida, você deverá ver uma saída semelhante a esta:

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

Download e verificação

Com a chave importada, você pode baixar o script e a assinatura e verificar se o script corresponde à assinatura:

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

Quando for bem-sucedida, você deverá ver uma saída semelhante a esta:

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

O aviso significa que você não confia na chave pública no keyring, mas o script ainda é verificado. O código de saída retornado pelo comando de verificação deve ser 0, o que indica êxito.

Confira também