Este artigo descreve como instalar o .NET no Ubuntu. A partir do Ubuntu 22.04, a maioria das versões com suporte do .NET está disponível no feed interno do Ubuntu. O repositório de pacotes de backports do Ubuntu .NET contém as versões restantes do .NET suportadas. Para saber mais sobre as versões disponíveis, confira a seção Distribuições compatíveis.
A Canonical assumiu a publicação do .NET no Ubuntu. A partir do Ubuntu 22.04, a Microsoft não distribui mais o .NET para Ubuntu para o repositório de pacotes da Microsoft.
Aviso
Recomenda-se que você escolha entre os feeds do Ubuntu ou da Microsoft para obter os pacotes do .NET de origem. Não misture pacotes .NET de vários repositórios de pacotes, pois isso leva a problemas quando os aplicativos tentam resolver uma versão específica do .NET.
Atualizando o Ubuntu para 22.04 ou posterior? Considere desinstalar o .NET primeiro.
Se você usou um gerenciador de pacotes para instalar o .NET do repositório de pacotes da Microsoft, acabará com um problema de confusão de pacotes após atualizar o Ubuntu. Agora que a Canonical publica o .NET nos feeds de pacotes do Ubuntu 22.04 (e versões posteriores), o gerenciador de pacotes não saberá sobre a versão do .NET instalada anteriormente. Os pacotes não podem ser atualizados para o .NET mais recente. Primeiro, desinstale-os e, em seguida, reinstale-os do [repositório de pacotes do Ubuntu].
Decida como instalar o .NET
Quando sua versão do Ubuntu dá suporte ao .NET por meio do feed Ubuntu interno ou de backports do .NET, o suporte para essas compilações do .NET é fornecido pela Canonical e as compilações podem ser otimizadas para diferentes cargas de trabalho. A Microsoft dá suporte aos pacotes no feed do próprio repositório de pacotes.
Confira as seguintes seções para determinar como instalar o .NET:
Se você estiver usando o SDK do .NET 8 e o Ubuntu 22.04, entenda que as versões do SDK oferecidas pela Canonical estão sempre na banda de recursos .1xx. Se você quiser usar uma versão mais recente da banda de versão, use o feed da Microsoft para instalar o SDK. Verifique se você examinou as informações no artigo mix ups de pacote do .NET no Linux para entender as implicações da comutação entre feeds de repositório.
Para instalar outros pacotes do repositório da Microsoft para usar outros pacotes da Microsoft, como powershell, mdatp ou mssql, você precisará despriorizar os pacotes do .NET fornecidos por ele. Para saber como fazer isso, confira Minha distribuição do Linux fornece pacotes do .NET e desejo usá-los.
Estou usando uma versão do Ubuntu anterior à 22.04
Siga as instruções na página específica da versão do Ubuntu.
Estou usando outros pacotes da Microsoft, como powershell, mdatp ou mssql
Se a sua versão do Ubuntu dá suporte ao .NET por meio de um feed do Ubuntu, você deve decidir qual feed deve instalar o .NET. A seção Distribuições com suporte fornece uma tabela que lista quais versões do .NET estão disponíveis nos feeds de pacotes.
Use para o SDK as mesmas origens de pacote usadas para o runtime. Recomenda-se que você instale o .NET por meio de um feed do Ubuntu. Se, no entanto, você quiser instalar o .NET a partir de outra fonte (por exemplo, o repositório de pacotes da Microsoft para acessar faixas mais altas de recursos do SDK), deverá desinstalar o .NET, configurar o gerenciador de pacotes para ignorar os pacotes do .NET do feed do Ubuntu e reinstalá-lo a partir da outra fonte.
Para obter controle total sobre a experiência de instalação do .NET, baixe um tarball e instale o .NET manualmente. Para saber mais, confira Instalação manual.
Estou usando uma CPU baseada em Arm
Se sua versão do Ubuntu fornecer a versão do .NET necessária, instale-a por meio do feed interno. Confira as informações na seção Distribuições compatíveis.
Se a versão do .NET que você deseja não estiver disponível, tente usar uma das seguintes maneiras de instalar o .NET:
A partir do .NET 8 no Ubuntu 24.04, a Canonical dá suporte ao .NET para a plataforma IBM System Z. A Canonical está trabalhando para estender o suporte a outras versões do .NET e do Ubuntu.
Instale o .NET por meio do feed interno do Ubuntu. Para obter mais informações, consulte a página a seguir:
A tabela a seguir é uma lista de versões do .NET com suporte no momento e as versões do Ubuntu compatíveis com elas. Cada link leva à página específica da versão do Ubuntu com instruções específicas sobre como instalar o .NET nela.
Quando uma versão Ubuntu chega ao fim de seu período de suporte, não há mais suporte para o .NET nessa versão específica do Ubuntu.
A Canonical dá suporte às versões do .NET no feed interno do Ubuntu durante o tempo de vida dessa versão do Ubuntu, mesmo além do tempo de vida do suporte fornecido pela Microsoft, e fornece suporte de melhor esforço para versões .NET no repositório de pacotes de backports do .NET, que não se estende além do tempo de vida do suporte fornecido pela Microsoft.
Não ❌ há mais suporte para as seguintes versões do .NET:
.NET 7
.NET 6
.NET 5
.NET Core 3.1
.NET Core 3.0
.NET Core 2.2
.NET Core 2.1
.NET Core 2.0
Repositório de pacotes de backports do .NET do Ubuntu
O repositório de pacotes de backports do NET do Ubuntu fornece versões do .NET que não estão disponíveis no feed interno do Ubuntu. A seção Distribuições com suporte fornece uma tabela que lista quais versões do .NET estão disponíveis no feed de pacotes. A Canonical mantém os pacotes contidos neste repositório de pacotes e fornece suporte de melhor esforço, que não se estende além do tempo de vida útil do suporte fornecido pela Microsoft ou do período de suporte da versão específica do Ubuntu.
Registrar o repositório de pacotes de backports do NET do Ubuntu
Abra um terminal e execute o seguinte comando:
Bash
sudo add-apt-repository ppa:dotnet/backports
Dica
Não é necessário chamar apt update. O comando add-apt-repository faz isso por padrão.
Observação
O repositório de pacotes de backports do NET do Ubuntu é compatível com o feed interno do Ubuntu. Portanto, não é necessário configurar o gerenciador de pacotes para ignorar os pacotes do .NET no feed interno do Ubuntu.
Cancelar o registro do repositório de pacotes de backports do NET do Ubuntu
Se você não quiser mais consumir pacotes do repositório de pacotes de backports do NET do Ubuntu, poderá cancelar o registro. Abra um terminal e execute o seguinte comando:
O cancelamento do registro do repositório de pacotes de backports do .NET do Ubuntu não desinstala nenhum pacote.
Comando add-apt-repository não encontrado
O utilitário add-apt-repository(1) está pré-instalado na maioria das instalações do Ubuntu.
Se você receber uma mensagem de erro informando que o comando add-apt-repository não foi encontrado, será necessário instalar o pacote software-properties-common, que fornece esse comando. Abra um terminal e execute os seguintes comandos:
Isso se aplica apenas às versões do Ubuntu anteriores à 24.04. A partir do Ubuntu 24.04, a Microsoft não publica mais pacotes no repositório de pacotes da Microsoft. Use a tabela de distribuições com suporte para determinar a melhor maneira de instalar o .NET.
O repositório de pacotes da Microsoft só dá suporte a pacotes .NET direcionados à arquitetura x64. Em outras arquiteturas, como o Arm, o .NET precisa ser instalado por outros meios, como o script do instalador ou a instalação manual.
As versões prévias não estão disponíveis no repositório de pacotes da Microsoft. Para saber mais, confira Instalar versões prévias.
Cuidado
É recomendado usar somente um repositório para gerenciar todas as instalações do .NET. Se você instalou anteriormente o .NET com o repositório do Ubuntu, deverá limpar o sistema dos pacotes do .NET e configurar o APT para ignorar os feeds do Ubuntu. Para saber como fazer isso, confira Preciso de uma versão do .NET que não é fornecida pela minha distribuição do Linux.
A instalação com a APT pode ser feita com alguns comandos. Antes de instalar o .NET, execute os comandos a seguir para adicionar a chave de assinatura de pacote da Microsoft à lista de chaves confiáveis e adicionar o repositório de pacotes.
Abra um terminal e execute os seguintes comandos:
Bash
# Get OS version info which adds the $ID and $VERSION_ID variablessource /etc/os-release
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# Install Microsoft signing key and repository
sudo dpkg -i packages-microsoft-prod.deb
# Clean up
rm packages-microsoft-prod.deb
# Update packages
sudo apt update
Dica
O script anterior foi escrito para o Ubuntu e pode não funcionar se você estiver usando uma distribuição derivada, como o Linux Mint. É provável que as $ID variáveis and $VERSION_ID não recebam os valores corretos, tornando o URI do wget comando inválido. O corresponde $ID à distribuição (por exemplo, ubuntu), enquanto $VERSION_ID mapeia para a versão específica do Ubuntu para a qual você deseja obter pacotes, como 22.04 ou 23.10.
Por exemplo, no Ubuntu 22.04 $ID seria ubuntu e $VERSION_ID seria 22.04. O URL ficaria assim: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb.
Você pode usar um navegador da Web e navegar para https://packages.microsoft.com/config/ubuntu/ para ver quais versões do Ubuntu estão disponíveis para uso como o valor $repo_version.
Instalar o .NET
Instale o .NET por meio do gerenciador de pacotes com o sudo apt install <package-name> comando. Substitua <package-name> pelo nome do pacote do .NET que você deseja instalar. Por exemplo, para instalar o SDK do .NET 9.0, use o comando sudo apt install dotnet-sdk-9.0. A tabela a seguir lista os pacotes .NET com suporte no momento (que podem variar de acordo com a versão do Ubuntu):
Product
Type
Pacote
9.0
ASP.NET Core
Runtime
aspnetcore-runtime-9.0
9.0
.NET
Runtime
dotnet-runtime-9.0
9.0
.NET
.
dotnet-sdk-9.0
8.0
ASP.NET Core
Runtime
aspnetcore-runtime-8.0
8.0
.NET
Runtime
dotnet-runtime-8.0
8.0
.NET
.
dotnet-sdk-8.0
Dica
Se você não estiver criando aplicativos .NET, instale o runtime do ASP.NET Core porque ele inclui o runtime do .NET e também dá suporte a aplicativos ASP.NET Core.
As versões prévias e Release Candidate do .NET não estão disponíveis em repositórios de pacotes. É possível instalar versões prévias e Release Candidate do .NET das seguintes maneiras:
Ao usar um gerenciador de pacotes para gerenciar a instalação do .NET, pode ocorrer um conflito quando já existe uma versão prévia instalada. O gerenciador de pacotes pode interpretar a versão que não é prévia como uma versão anterior do .NET. Para instalar a versão que não é prévia, desinstale as versões prévias. Para obter mais informações de como desinstalar o .NET, confira Como remover o SDK e o runtime do .NET.
Usar o APT para atualizar o .NET
Se você tiver instalado o .NET por meio de um gerenciador de pacotes, atualize o pacote com o comando apt upgrade. Por exemplo, os seguintes comandos atualizam o pacote dotnet-sdk-9.0 com a versão mais recente:
Bash
sudo apt update
sudo apt upgrade dotnet-sdk-9.0
Dica
Se você já atualizou a distribuição do Linux desde a instalação do .NET, talvez seja necessário reconfigurar o repositório de pacotes da Microsoft. Execute as instruções de instalação da versão de distribuição atual para atualizar para o repositório de pacote apropriado para atualizações do .NET.
Solução de problemas
A partir do Ubuntu 22.04, você pode encontrar uma situação em que parece que apenas uma parte do .NET está disponível. Por exemplo, se você tiver instalado o runtime e o SDK, mas, ao executar dotnet --info, somente o runtime está listado. Essa situação pode estar relacionada ao uso de duas fontes de pacote diferentes. Os feeds de pacotes internos do Ubuntu 22.04 e do Ubuntu 22.10 incluem algumas versões do .NET, mas não todas, e também é possível que você tenha instalado o .NET por meio dos feeds da Microsoft. Para saber como corrigir esse problema, confira Solucionar erros do .NET relacionados a arquivos ausentes no Linux.
Problemas de APT
Esta seção fornece informações sobre erros comuns que podem ocorrer quando o APT é usado para instalar o .NET.
Não é possível localizar o pacote
Importante
O uso de um gerenciador de pacotes para instalar o .NET por meio do feed de pacote da Microsoft só dá suporte à arquitetura x64. Outras arquiteturas, como o Arm, não são compatíveis com o feed do pacote da Microsoft.
Para obter mais informações de como instalar o .NET sem um gerenciador de pacotes, confira um dos seguintes artigos:
Não foi possível localizar\Alguns pacotes não puderam ser instalados
Observação
Essas informações só se aplicam quando o .NET é instalado no feed de pacotes da Microsoft.
Se você receber uma mensagem de erro semelhante a Não foi possível localizar o pacote {dotnet-package} ou Alguns pacotes não puderam ser instalados, execute os comandos a seguir.
Há dois espaços reservados no conjunto de comandos a seguir.
{dotnet-package}
Isso representa o pacote do .NET que você está instalando, como aspnetcore-runtime-8.0. Isso é usado no comando sudo apt-get install a seguir.
Depois, tente instalar o .NET novamente. Se isso não funcionar, você poderá executar uma instalação manual com os seguintes comandos:
Se você estiver usando o Debian 23.10 ou posterior, tente os seguintes comandos:
Bash
# Get OS version info which adds the $ID and $VERSION_ID variablessource /etc/os-release
# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
# Move the key to the appropriate place
sudo mv microsoft.asc.gpg $(cat /etc/apt/sources.list.d/microsoft-prod.list | grep -oP "(?<=signed-by=).*(?=\])")
# Update packages and install .NET
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
Se você estiver usando uma versão Debian anterior à 23.10, tente os seguintes comandos:
Bash
# Define the OS version, name, and codenamesource /etc/os-release
# Download the Microsoft keys
sudo apt-get install -y gpg wget
wget https://packages.microsoft.com/keys/microsoft.asc
cat microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
# Add the Microsoft repository to the system's sources list
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
# Set ownership
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
# Update packages and install .NET
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
Falha na busca
Ao instalar o pacote do .NET, pode ocorrer um erro semelhante a Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Esse erro pode significar que o feed de pacotes do .NET está sendo atualizado com versões mais recentes do pacote e que você deve tentar novamente mais tarde. Durante uma atualização, o feed de pacotes não deve ficar disponível por até 30 minutos. Se você continuar recebendo esse erro por mais de 30 minutos, registre um problema em https://github.com/dotnet/core/issues.
Dependências
Quando você faz a instalação com um gerenciador de pacotes, essas bibliotecas são instaladas automaticamente. No entanto, se você instalar o .NET manualmente ou publicar um aplicativo autossuficiente, instale as seguintes dependências para executar o aplicativo:
ca-certificates
libc6
libgcc1 (para 16.x e 18.x)
libgcc-s1 (para 20.x ou posterior)
libgssapi-krb5-2
libicu55 (para 16.x)
libicu60 (para 18.x)
libicu66 (para 20.x)
libicu70 (para 22.04)
libicu72 (para 23.10)
libicu74 (para 24.04 ou posterior)
liblttng-ust1 (para 22.x ou posterior)
libssl1.0.0 (para 16.x)
libssl1.1 (para 18.x, 20.x)
libssl3 (para 22.x ou posterior)
libstdc++6
libunwind8 (para 22.x ou posterior)
zlib1g
As dependências podem ser instaladas por meio do comando apt install. O snippet a seguir demonstra a instalação da biblioteca zlib1g:
A fonte deste conteúdo pode ser encontrada no GitHub, onde você também pode criar e revisar problemas e solicitações de pull. Para obter mais informações, confira o nosso guia para colaboradores.
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários:
Crie um projeto do .NET e aprenda a adicionar pacotes e a gerenciar as dependências de pacote no projeto. Use a CLI do .NET Core e o registro do NuGet para adicionar bibliotecas e ferramentas aos aplicativos C# usando o Visual Studio Code.