Instalar o .NET no Linux usando um script de instalação ou extraindo binários

Este artigo demonstra como instalar o SDK ou o Runtime do .NET no Linux usando o script de instalação ou extraindo os binários. Para obter uma lista de distribuições que dê suporte ao gerenciador de pacotes interno, confira Instalar o .NET no Linux.

Você também pode instalar o .NET com o Snap. Para obter mais informações, confira Instalar o SDK ou o Runtime do .NET com o Snap.

Instale o SDK (que inclui o runtime) se quiser desenvolver aplicativos .NET. Ou, se você precisar apenas executar aplicativos, instale o runtime. Se você estiver instalando o runtime, sugerimos que você instale o Runtime do ASP.NET Core, pois ele inclui runtimes do .NET e do ASP.NET Core.

Use os dotnet --list-sdks comandos e dotnet --list-runtimes para ver quais versões estão instaladas. Para obter mais informações, confira Como verificar se o .NET já está instalado.

Versões do .NET

Há dois tipos de versões com suporte, versões LTS (Suporte de Longo Prazo) ou STS (Suporte com Prazo Padrão). A qualidade de todas as versões é a mesma. A única diferença é a duração do suporte. As versões LTS recebem suporte e patches gratuitos por 3 anos. As versões STS recebem suporte e patches gratuitos por 18 meses. Para obter mais informações, consulte a Política de Suporte do .NET.

A seguinte tabela lista o status de suporte de cada versão do .NET (e do .NET Core):

✔️ Com suporte ❌ Sem suporte
7 (STS) 5
6 (LTS) 3.1
3,0
2,2
2.1
2,0
1,1
1.0

Dependências

É possível que, ao instalar o .NET, dependências específicas não sejam instaladas, como durante a instalação manual. A lista a seguir fornece detalhes sobre as distribuições do Linux com suporte da Microsoft e com dependências que talvez você precise instalar. Verifique a página de distribuição para obter mais informações:

Para obter informações genéricas sobre as dependências, confira Aplicativos autônomos do Linux.

Dependências de RPM

Se a distribuição não tiver sido listada anteriormente e for baseada em RPM, talvez você precise das seguintes dependências:

  • krb5-libs
  • libicu
  • openssl-libs

Se a versão OpenSSL do ambiente de runtime de destino for 1.1 ou mais recente, você precisará instalar o compat-openssl10.

Dependências de DEB

Se a distribuição não houver sido listada anteriormente e for baseada em Debian, talvez você precise das seguintes dependências:

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu67
  • libssl1.1
  • libstdc++6
  • zlib1g

Dependências comuns

Se o aplicativo .NET usar o assembly System.Drawing.Common , o libgdiplus também precisará ser instalado. Como System.Drawing.Common não tem mais suporte no Linux, isso só funciona no .NET 6 e requer a definição da opção de configuração de System.Drawing.EnableUnixSupport runtime.

Normalmente, você pode instalar uma versão recente do libgdiplusadicionando o repositório Mono ao seu sistema.

Instalação com script

Os scripts dotnet-install são usados para instalações de automação e não administrativas do SDK e do Runtime. É possível baixar o script em https://dot.net/v1/dotnet-install.sh.

Importante

O Bash é necessário para executar o script.

Antes de executar o script, você precisará conceder permissão para que ele seja executado como um executável:

sudo chmod +x ./dotnet-install.sh

O script usa como padrão a instalação da versão LTS (suporte de longo prazo) mais recente, que é o .NET 6. Para instalar a versão mais recente, que pode não ser uma versão LTS, use o parâmetro --version latest.

./dotnet-install.sh --version latest

Para instalar o .NET Runtime em vez do SDK, use o parâmetro --runtime.

./dotnet-install.sh --version latest --runtime aspnetcore

Você pode instalar uma versão principal específica com o parâmetro --channel a fim de indicar a versão desejada. O comando a seguir instala o SDK do .NET 7.0.

./dotnet-install.sh --channel 7.0

Para obter mais informações, confira a referência de scripts dotnet-install.

Instalação manual

Como alternativa aos gerenciadores de pacotes, você pode baixar e instalar manualmente o SDK e o runtime. A instalação manual é usada com frequência como parte do teste de integração contínua ou em uma distribuição Linux sem suporte. Para desenvolvedores ou usuários, é melhor usar um gerenciador de pacotes.

Primeiro, baixe uma versão binária do SDK ou do runtime em um dos sites a seguir. Se você instalar o SDK do .NET, não será necessário instalar o runtime correspondente:

Em seguida, extraia o arquivo baixado e use o comando export para definir DOTNET_ROOT como o local da pasta extraída e verifique se o .NET está no CAMINHO. Isso deve disponibilizar os comandos da CLI do .NET no terminal.

Como alternativa, após baixar o binário do .NET, os comandos a seguir podem ser executados no diretório em que o arquivo está salvo para extrair o runtime. Isso também disponibilizará os comandos da CLI do .NET no terminal e definirá as variáveis de ambiente necessárias. Lembre-se de alterar o valor de DOTNET_FILE para o nome do binário baixado:

DOTNET_FILE=dotnet-sdk-7.0.100-linux-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet

mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"

export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

Essa abordagem permite que você instale diferentes versões em locais distintos e escolha explicitamente qual delas usar em cada aplicativo.

Definir variáveis de ambiente em todo o sistema

Se você usou o script de instalação anterior, as variáveis definidas se aplicam somente à sessão do terminal atual. Adicione-as ao perfil de shell. Há vários shells diferentes disponíveis para Linux, cada qual com um perfil distinto. Por exemplo:

  • Bash Shell: ~/.bash_profile, ~/.bashrc
  • Korn Shell: ~/.kshrc ou .profile
  • Z Shell: ~/.zshrc ou .zprofile

Defina as duas variáveis de ambiente a seguir no perfil de shell:

  • DOTNET_ROOT

    Essa variável é definida como a pasta na qual o .NET foi instalado, como $HOME/.dotnet:

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    Essa variável deve incluir a pasta DOTNET_ROOT e a pasta .dotnet/tools do usuário:

    export PATH=$PATH:$HOME/.dotnet:$HOME/.dotnet/tools
    

Próximas etapas