Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve como instalar o pacote snap do SDK .NET. Os pacotes SDK snap do .NET são fornecidos e mantidos pela Canonical. Os snaps são uma ótima alternativa para o gerenciador de pacotes integrado à distribuição do Linux.
Um snap é um pacote de um aplicativo e as dependências dele que funcionam em muitas distribuições diferentes do Linux. Os snaps são detectáveis e instaláveis no Snap Store. Para obter mais informações sobre o Snap, consulte Introdução.
Importante
Se você instalar .NET com o Snap, use o Snap para gerenciar todas as instalações do .NET. Evite misturar o Snap com outros métodos de instalação, como um gerenciador de pacotes ou a instalação com script, pois a combinação de métodos pode causar conflitos.
Cuidado
Instalações Snap do .NET podem ter problemas ao executar ferramentas .NET. Se você quiser usar .NET ferramentas, recomendamos instalar .NET usando o script dotnet-install ou o gerenciador de pacotes para a distribuição específica do Linux.
É um problema conhecido que o comando dotnet watch não funciona quando .NET é instalado por meio do Snap.
Se você usar .NET ferramentas ou o comando dotnet watch, recomendamos que você instale .NET usando o script dotnet-install.
Pré-requisitos
- Distribuição do Linux que dá suporte a snap.
-
snapdo daemon snap.
Sua distribuição do Linux já pode incluir snap. Tente executar snap em um terminal para ver se o comando funciona. Para obter uma lista de distribuições do Linux com suporte e instruções sobre como instalar o snap, consulte Instalar o snapd.
.NET lançamentos
A Microsoft publica .NET em duas políticas de suporte diferentes, LTS (Suporte de Longo Prazo) e STS (Suporte a Termos 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 três anos. As versões STS ganham suporte gratuito e patches por dois anos. Para obter mais informações, consulte .NET Support Policy.
As versões de .NET que têm suporte atualmente 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 criam e liberam .NET podem introduzir políticas de suporte diferentes. Certifique-se de verificar com eles para entender como há suporte para .NET.
1. Instalar o SDK
Para instalar o SDK do .NET, use identificadores de pacote snap específicos à versão, pois essa abordagem permite que você instale e gerencie várias versões do SDK lado a lado. Por exemplo, use dotnet-sdk-80 para .NET 8 e dotnet-sdk-100 para .NET 10. O SDK inclui tanto o ASP.NET Core quanto o .NET runtime, ambos versionados de acordo com o SDK. Este artigo usa o pacote snap do SDK .NET 10; se você estiver usando um pacote diferente, substitua-o.
Dica
A página do pacote do Snapcraft .NET SDK (.NET 8, .NET 9, .NET 10) inclui instruções específicas de distribuição sobre como instalar o Snapcraft e .NET.
Abra um terminal.
Use
snap installpara instalar o pacote snap do SDK .NET.O comando a seguir instala .NET SDK 10:
sudo snap install dotnet-sdk-100
A tabela a seguir lista os pacotes snap do SDK .NET que você pode instalar:
| .NET versão | Pacote do Snap |
|---|---|
| 10 (LTS) | dotnet-sdk-100 |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk-80 |
2. Mapear o comando dotnet
Como o Snap não cria um comando sem versão dotnet, crie um link simbólico para tornar dotnet disponível em todo o sistema. Crie este link somente se você quiser mapear o dotnet comando para esta instalação específica do Snap. Se você já tiver .NET instalado por meio de outro método e criar esse link, ele substituirá esse mapeamento.
Se /usr/local/bin/dotnet já existir, remova-o antes de criar o link.
sudo ln -s /snap/dotnet-sdk-100/current/usr/bin/dotnet /usr/local/bin/dotnet
3. Exportar o local de instalação
Configure a DOTNET_ROOT variável de ambiente em seu perfil de shell porque as ferramentas a usam para determinar onde .NET está instalado. As instalações do Snap não definem essa variável automaticamente. O caminho usa o seguinte formato: /snap/{package}/current/usr/lib/dotnet.
export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet
Substitua 100 pela versão do SDK que você instalou, como 80 para .NET 8 ou 90 para .NET 9.
Exportar a variável de ambiente permanentemente
O comando export anterior define apenas a variável de ambiente da sessão de terminal em que foi executada.
Você pode editar seu perfil de shell para adicionar permanentemente os comandos. Há vários shells diferentes disponíveis para Linux, cada qual com um perfil distinto. Por exemplo:
- Shell bash: ~/.bash_profile, ~/.bashrc
- Korn Shell: ~/.kshrc ou .profile
- Z Shell: _~/.zshrc* ou .zprofile
Edite o arquivo de origem apropriado para o shell, adicione o comando de exportação para a versão .NET instalada e salve as alterações.
Por exemplo: export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.
4. Usar a Interface de Linha de Comando (.NET CLI)
Abra um terminal e execute o dotnet comando.
dotnet
É exibida a saída a seguir:
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 saber como usar a CLI .NET, consulte .NET visão geral da CLI.
Solução de problemas
- Não é possível instalar o Snap no WSL2
- Não é possível resolver o comando dotnet ou o SDK
- Erros de certificado TLS/SSL
Não é possível instalar o Snap no WSL2
systemd deve ser habilitado na instância do WSL2 antes que o Snap possa ser instalado.
Abra
/etc/wsl.confem um editor de texto de sua escolha.Insira na configuração a seguir:
[boot] systemd=trueSalve o arquivo e reinicie a instância do WSL2 por meio do PowerShell. Use o comando
wsl.exe --shutdown.
Não é possível resolver o comando dotnet ou o SDK
É comum que outros aplicativos, como um IDE de código ou uma extensão em Visual Studio Code, tentem resolver o local do SDK do .NET. Normalmente, a descoberta é feita verificando a variável de ambiente DOTNET_ROOT ou descobrindo onde o executável dotnet está localizado. Um SDK de .NET instalado por snap pode confundir esses aplicativos. Quando esses aplicativos não conseguem resolver o SDK do .NET, um erro semelhante a uma das seguintes mensagens é exibido:
- O SDK 'Microsoft.NET.Sdk' especificado não pôde ser encontrado.
- O SDK 'Microsoft.NET.Sdk.Web' especificado não pôde ser encontrado
- O SDK 'Microsoft.NET.Sdk.Razor' especificado não pôde ser encontrado.
Experimente as seguintes etapas para corrigir o problema:
- Conclua 2. Mapeie o comando dotnet.
- Defina permanentemente a variável de ambiente
DOTNET_ROOTseguindo as instruções em Exportar permanentemente a variável de ambiente.
Erros de certificado TLS/SSL
Quando .NET é instalado por meio do Snap, é possível que, em algumas distribuições, os certificados .NET TLS/SSL não sejam encontrados e você 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
O local do certificado varia de acordo com a distribuição. Estes estão os locais para as distribuições em que 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 |