Partilhar via


Instalar o SDK .NET com o Snap

Este artigo descreve como instalar o pacote snap do .NET SDK. Os pacotes snap do .NET SDK são fornecidos e mantidos pela Canonical. Os snaps são uma ótima alternativa ao gerenciador de pacotes integrado à sua distribuição Linux.

Um snap é um pacote de um aplicativo e suas dependências que funciona em muitas distribuições Linux diferentes. Os snaps podem ser descobertos e instalados a partir da Snap Store. Para obter mais informações sobre o Snap, consulte Visita guiada de iniciação rápida.

Atenção

As instalações snap de .NET podem ter problemas ao executar ferramentas .NET. Se desejar usar .NET ferramentas, recomendamos que instale .NET usando o script dotnet-install ou o gestor de pacotes da distribuição Linux em questão.

É um problema conhecido que o comando dotnet watch não funciona quando .NET é instalado via Snap.

Se vais usar .NET ferramentas ou o comando dotnet watch, recomendamos que instales .NET usando o script dotnet-install.

Pré-requisitos

  • Distribuição Linux que suporta snap.
  • snapd o daemon do snap.

Sua distribuição Linux já pode incluir snap. Tente executar snap a partir de um terminal para ver se o comando funciona. Para obter uma lista de distribuições Linux suportadas e instruções sobre como instalar o snap, consulte Instalaçãosnapd.

Lançamentos .NET

A Microsoft publica .NET sob duas políticas de suporte diferentes, Suporte a Longo Prazo (LTS) e Suporte a Prazo Padrão (STS). A qualidade de todos os lançamentos é a mesma. A única diferença é a duração do apoio. As versões LTS recebem suporte e patches gratuitos por três anos. As versões STS recebem suporte e patches gratuitos por dois anos. Para mais informações, consulte .NET Política de Apoio.

As versões do .NET atualmente suportadas pela Microsoft são:

  • 10.0 (LTS) — O suporte termina em 14 de novembro de 2028.
  • 9.0 (STS) — O suporte termina em 10 de novembro de 2026.
  • 8.0 (LTS) — O suporte termina em 10 de novembro de 2026.

Outras entidades que desenvolvem e lançam .NET podem introduzir políticas de suporte diferentes. Certifique-se de verificar com eles para perceber como o .NET é suportado.

1. Instale o SDK

Importante

.NET 10 foi lançado a 11 de novembro de 2025. Pode levar algum tempo para que os pacotes apareçam nos feeds do gerenciador de pacotes ou para que sua distribuição Linux específica o inclua.

A partir do .NET 9, os pacotes snap para o SDK .NET são publicados sob identificadores específicos de versão (por exemplo, dotnet-sdk-90 para .NET 9 e dotnet-sdk-100 para .NET 10). Antes de .NET 9, todas as versões do SDK eram publicadas sob o mesmo identificador dotnet-sdk, e especificavas a versão através de um canal. Além disso, os pacotes snap .NET 9 e posteriores suportam tanto as arquiteturas x64 como Arm64, enquanto versões anteriores apenas suportam x64. O SDK inclui tanto o ASP.NET Core como o runtime .NET, versionados para o SDK.

Gorjeta

A página do pacote SDK Snapcraft .NET inclui instruções específicas para distribuição sobre como instalar o Snapcraft e o .NET.

  1. Abra um terminal.

  2. Usa snap install para instalar o pacote snap do SDK .NET.

    O parâmetro --classic é obrigatório.

    • Para .NET 9 e posteriores

      Instale o pacote específico da versão. Por exemplo, o seguinte comando instala o .NET SDK 10:

      sudo snap install dotnet-sdk-100 --classic
      
    • Para .NET 8 e anteriores

      Instale a partir do dotnet-sdk pacote e especifique um canal. Se este parâmetro for omitido, latest/stable é usado. Por exemplo, o seguinte comando instala o .NET SDK 8:

      sudo snap install dotnet-sdk --classic --channel 8.0/stable
      

O dotnet alias de snap é criado automaticamente e mapeado para o comando do pacote snap dotnet .

A tabela a seguir lista os pacotes snap e os canais que podem ser instalados:

Versão .NET Pacote ou canal Snap
10 (LTS) dotnet-sdk-100 (pré-visualização)
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk --channel 8.0/stable
7 dotnet-sdk --channel 7.0/stable (sem apoio)
6 dotnet-sdk --channel 6.0/stable (sem apoio)
5 dotnet-sdk --channel 5.0/stable (sem apoio)
3.1 dotnet-sdk --channel 3.1/stable (sem apoio)
2.1 dotnet-sdk --channel 2.1/stable (sem apoio)

2. Exporte o local de instalação

A variável de ambiente DOTNET_ROOT é frequentemente usada por ferramentas para determinar onde .NET está instalado. Quando o .NET é instalado através do Snap, esta variável de ambiente não está configurada. Você deve configurar a variável de ambiente DOTNET_ROOT em seu perfil. O caminho para o snap segue o seguinte formato: /snap/{package}/current.

Para .NET 9 e posteriores, use o nome específico do pacote da versão:

export DOTNET_ROOT=/snap/dotnet-sdk-100/current

Para .NET 8 e anteriores, use o nome partilhado do pacote:

export DOTNET_ROOT=/snap/dotnet-sdk/current

Exportar a variável de ambiente permanentemente

O comando anterior export define apenas a variável de ambiente para a sessão de terminal em que foi executado.

Você pode editar seu perfil de shell para adicionar permanentemente os comandos. Existem muitos shells diferentes disponíveis para Linux e cada um tem um perfil diferente. Por exemplo:

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

Edita o ficheiro fonte apropriado para o teu shell e adiciona o comando export para a versão .NET instalada. Para .NET 9+, use export DOTNET_ROOT=/snap/dotnet-sdk-100/current (ajuste o número da versão conforme necessário). Para .NET 8 e anteriores, use export DOTNET_ROOT=/snap/dotnet-sdk/current.

3. Usar a CLI .NET

Abra um terminal e digite dotnet.

dotnet

A seguinte saída é exibida:

Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

Para aprender a usar a CLI .NET, veja .NET CLI Overview.

Resolução de Problemas

O comando dotnet terminal não funciona

Os pacotes Snap podem mapear um alias para um comando fornecido pelo pacote. Por padrão, os pacotes snap do SDK .NET criam um alias para o comando dotnet. Se o alias não tiver sido criado ou tiver sido removido anteriormente, use o seguinte comando para mapear o alias.

Para .NET 9 e posteriores:

sudo snap alias dotnet-sdk-100.dotnet dotnet

Para .NET 8 e anteriores:

sudo snap alias dotnet-sdk.dotnet dotnet

Não é possível instalar o Snap no WSL2

systemd deve estar habilitado na instância WSL2 antes que o Snap possa ser instalado.

  1. Abra /etc/wsl.conf em um editor de texto de sua escolha.

  2. Cole a configuração a seguir:

    [boot]
    systemd=true
    
  3. Salve o arquivo e reinicie a instância do WSL2 por meio do PowerShell. Utilize o comando wsl.exe --shutdown.

Não é possível resolver o comando dotnet ou SDK

É comum que outras aplicações, como um IDE de código ou uma extensão no Visual Studio Code, tentem resolver a localização do SDK .NET. Normalmente, a descoberta é feita verificando a DOTNET_ROOT variável de ambiente ou descobrindo onde o dotnet executável está localizado. Um SDK .NET instalado através do Snap pode confundir estas aplicações. Quando estas aplicações não conseguem resolver o SDK .NET, é exibido um erro semelhante a uma das seguintes mensagens:

  • O SDK 'Microsoft.NET. Sdk' especificado não foi possível encontrar
  • O SDK 'Microsoft.NET. Sdk.Web' especificado não foi possível encontrar
  • O SDK 'Microsoft.NET. Sdk.Razor' especificado não foi possível encontrar

Tente as seguintes etapas para corrigir o problema:

  1. Certifique-se de exportar a DOTNET_ROOT variável de ambiente permanentemente.

  2. Tente vincular simbolicamente o executável de snap dotnet ao local que o programa está procurando.

    Dois caminhos comuns que o dotnet comando está procurando são:

    • /usr/local/bin/dotnet
    • /usr/share/dotnet

    Utilize o comando a seguir para criar um link simbólico para o pacote snap. Para .NET 9 e posteriores, use o nome específico do pacote da versão:

    ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnet
    

    Para .NET 8 e anteriores:

    ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
    

Erros de certificado TLS/SSL

Quando .NET é instalado através do Snap, é possível que, em algumas distribuições, os certificados TLS/SSL de .NET não sejam encontrados e possa receber um erro durante restore:

Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
  Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]

Para resolver esse problema, defina algumas variáveis de ambiente:

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

A localização do certificado varia de acordo com a distribuição. Aqui estão os locais para as distribuições onde o problema foi observado:

Distribuição Localização
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt