Compartilhar via


Instalar .NET no guia de decisão do Ubuntu

Este artigo ajuda você a decidir como instalar .NET no Ubuntu. A partir do Ubuntu 22.04, a maioria das versões com suporte do .NET estão disponíveis no feed interno do Ubuntu. O repositório de pacotes de backports do .NET no Ubuntu contém as versões restantes do .NET que são suportadas.

A Canonical assumiu a publicação do .NET no Ubuntu. A partir do Ubuntu 22.04, a Microsoft não distribui mais .NET do Ubuntu para o repositório de pacotes da Microsoft.

Distribuições com suporte

A tabela a seguir é uma lista de versões .NET com suporte no momento e as versões do Ubuntu em que elas têm suporte. Cada link vai para a página de versão específica do Ubuntu com instruções sobre como instalar .NET para essa versão do Ubuntu.

Ubuntu Versões de .NET com suporte Disponível em
feed interno do Ubuntu
Disponível em
.NET retroportações
Feed do Ubuntu
Disponível em
Feed da Microsoft
25.10 10.0, 9.0, 8.0 10.0, 9.0, 8.0 Nenhum Nenhum
25.04 10.0, 9.0, 8.0 10.0, 9.0, 8.0 Nenhum Nenhum
24.04 (LTS) 10.0, 9.0, 8.0 10.0, 8.0 9.0, 7.0, 6.0 Nenhum
22.04 (LTS) 10.0, 9.0, 8.0 8.0, 7.0, 6.0 10.0, 9.0 8.0, 7.0, 6.0, 3.1

Quando uma versão do Ubuntu atinge o fim do período de suporte, .NET não tem mais suporte com essa 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 de suporte fornecido pela Microsoft, e fornece suporte em regime de melhor esforço para versões do .NET no repositório de pacotes do backport .NET, que não se estende além do tempo de vida de suporte fornecido pela Microsoft.

As seguintes versões de .NET ❌ não têm mais suporte:

  • .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

Considerações ao fazer a atualização do Ubuntu

Atualizando o Ubuntu para 22.04 ou posterior? Considere desinstalar .NET primeiro.

Se você usou um gerenciador de pacotes para instalar .NET do repositório de pacotes da Microsoft, você acabará com um problema de combinação de pacotes depois de atualizar o Ubuntu. Agora que a Canonical publica .NET nos feeds de pacotes do Ubuntu 22.04 (e versões posteriores), o gerenciador de pacotes não saberá sobre a versão .NET instalada anteriormente. Os pacotes não podem ser atualizados para o .NET mais recente. Primeiro, desinstale-os e reinstale-os do repositório de pacotes do Ubuntu.

Decidir como instalar .NET

Quando sua versão do Ubuntu suporta o .NET por meio do feed interno do Ubuntu ou dos backports do .NET, o suporte para essas versões de .NET é fornecido pela Canonical, e as versões podem ser otimizadas para diferentes cargas de trabalho. A Microsoft dá suporte aos pacotes no feed do próprio repositório de pacotes.

Aviso

É recomendável que você escolha entre os feeds do Ubuntu ou da Microsoft para a origem dos pacotes .NET. Não misture .NET pacotes de vários repositórios de pacotes, pois isso leva a problemas quando os aplicativos tentam resolver uma versão específica do .NET.

Método Vantagens Desvantagens
Gerenciador de pacotes
(Feed interno
do Ubuntu)
  • Normalmente, a versão mais recente está disponível.
  • Os patches estão disponíveis imediatamente.
  • As dependências estão incluídas.
  • Remoção fácil.
  • Há suporte para versões de .NET disponíveis para o período de suporte da versão específica do Ubuntu.
  • Suporte para as plataformas IBM System Z e Power para .NET 8 e mais recentes.
  • Não disponível para o Ubuntu 16.04, 18.04, 20.04.
  • .NET versões disponíveis variam de acordo com a versão do Ubuntu.
  • As versões prévias não estão disponíveis.
Gerenciador de pacotes
(.NET backports
do Ubuntu)
  • Contém qualquer versão com suporte que não esteja contida no feed interno do Ubuntu.
  • Os patches estão disponíveis imediatamente.
  • As dependências estão incluídas.
  • Remoção fácil.
  • Compatível com o feed interno do Ubuntu.
  • Não disponível para o Ubuntu 16.04, 18.04, 20.04.
  • Requer o cadastramento do repositório de pacotes de .NET backports do Ubuntu.
  • As versões prévias não estão disponíveis.
Gerenciador de pacotes
(Feed da Microsoft)
  • Versões compatíveis sempre disponíveis.
  • Os patches estão disponíveis imediatamente.
  • As dependências estão incluídas.
  • Remoção fácil.
  • Não disponível para o Ubuntu 24.04+.
  • Requer o registro do repositório de pacotes da Microsoft.
  • As versões prévias não estão disponíveis.
  • Dá suporte apenas ao Ubuntu x64.
Extração manual/via script
  • Controlar onde .NET está instalado.
  • As versões prévias estão disponíveis.
  • Instale manualmente as atualizações.
  • Instale manualmente as dependências.
  • Remoção manual.

Use as seções a seguir para determinar como instalar .NET:

Estou usando o Ubuntu 22.04 ou posterior e só preciso .NET

Se você não precisar de outros pacotes da Microsoft, como powershell, mdatp ou mssql, instale .NET por meio do feed do Ubuntu. Para obter mais informações, consulte as seguintes páginas:

Importante

Se você estiver usando .NET SDK 8 e Ubuntu 22.04, entenda que as versões do SDK oferecidas pela Canonical estão sempre na faixa 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. Certifique-se de revisar as informações no artigo .NET mistura de pacotes no Linux para entender as implicações de alternar entre fontes de repositório.

Se você vai instalar o repositório da Microsoft para usar outros pacotes da Microsoft, como powershell, mdatp ou mssql, será necessário despriorizar os pacotes de .NET fornecidos pelo repositório da Microsoft. Para obter instruções sobre como despriorizar os pacotes, consulte A distribuição do Microsoft Linux fornece pacotes .NET e quero usá-los.

Estou usando uma versão do Ubuntu anterior à 22.04

Use as instruções na seção específica da versão do Instalar .NET SDK ou .NET Runtime no Ubuntu.

Examine a seção Supported distributions para obter mais informações sobre quais versões de .NET têm suporte para sua versão do Ubuntu. Para instalar uma versão sem suporte, confira Registrar o repositório de pacotes da Microsoft.

Estou usando outros pacotes da Microsoft, como powershell, mdatp ou mssql

Se sua versão do Ubuntu der suporte a .NET por meio de feeds do Ubuntu, você deverá decidir qual feed deve instalar .NET. A seção Supported distributions fornece uma tabela que lista quais versões de .NET estão disponíveis nos feeds de pacote.

Se você quiser obter os pacotes de .NET de um feed do Ubuntu, precisará despriorizar os pacotes de .NET fornecidos pelo repositório da Microsoft. Para obter instruções sobre como despriorizar os pacotes, consulte A distribuição do Microsoft Linux fornece pacotes .NET e quero usá-los.

Quero criar um aplicativo .NET

Use para o SDK as mesmas origens de pacote usadas para o runtime. É recomendável que você instale .NET por meio de um feed do Ubuntu. Se, no entanto, você quiser instalar .NET de outra fonte (por exemplo, o repositório de pacotes Microsoft para acessar faixas de recursos do SDK mais altas), desinstale .NET, configure o gerenciador de pacotes para ignorar .NET pacotes do feed do Ubuntu e reinstalá-lo da outra origem.

Examine as outras sugestões na seção Decide como instalar .NET.

Quero executar um aplicativo .NET em um cenário de contêiner, nuvem ou integração contínua

Se sua versão do Ubuntu fornecer a versão .NET necessária, instale-a em um feed do Ubuntu. Caso contrário, registre o repositório de pacotes da Microsoft e instale .NET desse repositório. 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 o script dotnet-install.

Minha distribuição do Ubuntu não inclui a versão .NET que eu quero ou preciso de uma versão .NET sem suporte

É recomendado usar a APT e o repositório de pacotes da Microsoft. Para saber mais, confira a seção Realizar o registro e a instalação com o repositório de pacotes da Microsoft.

Desejo instalar uma versão prévia

Use uma das seguintes maneiras de instalar .NET:

Não desejo usar a APT

Para obter uma instalação automatizada, use o script de instalação do Linux.

Se você quiser ter controle total sobre a experiência de instalação do .NET, baixe um tarball e instale manualmente .NET. Para saber mais, confira Instalação manual.

Estou usando uma CPU baseada em Arm

Se a versão do Ubuntu fornecer a versão .NET necessária, instale-a no feed interno. Confira as informações na seção Distribuições compatíveis.

Se a versão do .NET desejada não estiver disponível, tente usar uma das seguintes maneiras de instalar .NET:

Estou usando a plataforma IBM System Z ou Power

A partir do .NET 8 no Ubuntu 22.04, a Canonical dá suporte a .NET para as plataformas IBM System Z e Power. Esse suporte continuará para cada versão .NET daqui para frente.

Instale .NET por meio do feed interno do Ubuntu. Para obter mais informações, consulte a página a seguir:

Registrar um repositório de pacotes

Dependendo da sua versão do Ubuntu, pode ser necessário registrar os backports do Ubuntu ou o repositório de pacotes da Microsoft.

Importante

Considere as informações na seção Decide como instalar .NET seção.

Repositório de pacotes de backports do Ubuntu .NET

O repositório de pacotes de backports do Ubuntu .NET fornece versões de .NET que não estão disponíveis no feed interno do Ubuntu. 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.

Este repositório de pacotes é compatível com Ubuntu 24.04 LTS (Noble Numbat) e Ubuntu 22.04 LTS (Jammy Jellyfish). A seção Supported distributions fornece uma tabela que lista quais versões de .NET estão disponíveis no feed de pacotes. Para obter mais informações, consulte o repositório de pacotes de backports do Ubuntu .NET.

Para adicionar este repositório de pacotes, execute os seguintes comandos:

sudo add-apt-repository ppa:dotnet/backports
sudo apt update

Registrar o repositório de pacotes de backports do Ubuntu .NET

Abra um terminal e execute o seguinte comando:

sudo add-apt-repository ppa:dotnet/backports

Observação

O repositório de pacotes de backports do Ubuntu .NET é compatível com o feed interno do Ubuntu. Portanto, você não precisa configurar o gerenciador de pacotes para ignorar .NET pacotes no feed interno do Ubuntu.

Cancelar o registro do repositório de pacotes de backports do Ubuntu .NET

Se você não quiser mais consumir pacotes do repositório de pacotes de backports do Ubuntu .NET, você poderá desregistrá-lo. Abra um terminal e execute o seguinte comando:

sudo add-apt-repository --remove ppa:dotnet/backports

Importante

Cancelar o registro do repositório de pacotes de backports do Ubuntu .NET 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:

sudo apt update
sudo apt install software-properties-common

Registrar o repositório de pacotes da Microsoft

Importante

Isso se aplica somente à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 suportadas para determinar a melhor maneira de instalar .NET.

O repositório de pacotes da Microsoft contém todas as versões de .NET que foram anteriormente ou estão atualmente compatíveis com sua versão do Ubuntu. Se sua versão do Ubuntu fornecer .NET pacotes, você precisará despriorizar os pacotes do Ubuntu e usar o repositório da Microsoft. Para obter instruções sobre como despriorizar os pacotes, consulte Preciso de uma versão de .NET que não seja fornecida pela minha distribuição do Linux.

Importante

O repositório de pacotes da Microsoft só dá suporte a pacotes .NET direcionados à arquitetura x64. Outras arquiteturas, como Arm, devem instalar .NET por outros meios, como com o script installer ou 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

Recomendamos que você use apenas um repositório para gerenciar todas as instalações do .NET. Se você já tiver instalado .NET com o repositório Ubuntu, deverá limpar o sistema de pacotes .NET e configurar o APT para ignorar os feeds do Ubuntu. Para obter mais informações sobre como fazer isso, consulte Preciso de uma versão de .NET que não seja fornecida pela minha distribuição do Linux.

A instalação com a APT pode ser feita com alguns comandos. Antes de instalar .NET, execute os comandos a seguir para adicionar a chave de assinatura do pacote da Microsoft à sua lista de chaves confiáveis e adicionar o repositório de pacotes.

Abra um terminal e execute os seguintes comandos:

# Get OS version info which adds the $ID and $VERSION_ID variables
source /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 variáveis $ID e $VERSION_ID não recebam os valores corretos, tornando o URI do comando wget inválido. Corresponde $ID à distribuição (por exemplo, ubuntu), enquanto $VERSION_ID refere-se à 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, desinstalar ou atualizar .NET

As seções a seguir descrevem como gerenciar .NET por meio do gerenciador de pacotes.

Instalar .NET

Instale .NET por meio do gerenciador de pacotes com o comando sudo apt install <package-name>. Substitua <package-name> pelo nome do pacote de .NET que você deseja instalar. Por exemplo, para instalar .NET SDK 10.0, use o comando sudo apt install dotnet-sdk-10.0. A tabela a seguir lista os pacotes de .NET com suporte no momento (que might variam de acordo com sua versão do Ubuntu):

Produto Tipo Pacote
10.0 ASP.NET Core Tempo de Execução aspnetcore-runtime-10.0
10.0 .NET Tempo de Execução dotnet-runtime-10.0
10.0 .NET SDK dotnet-sdk-10.0
9.0 ASP.NET Core Tempo de Execução aspnetcore-runtime-9.0
9.0 .NET Tempo de Execução dotnet-runtime-9.0
9.0 .NET SDK dotnet-sdk-9.0
8.0 ASP.NET Core Tempo de Execução aspnetcore-runtime-8.0
8.0 .NET Tempo de Execução dotnet-runtime-8.0
8.0 .NET SDK dotnet-sdk-8.0

Dica

Se você não estiver criando aplicativos .NET, instale o ASP.NET Core runtime, pois ele inclui o runtime .NET e também dá suporte a aplicativos ASP.NET Core.

Algumas variáveis de ambiente afetam a forma como o .NET é executado após a instalação. Para obter mais informações, consulte variáveis de ambiente .NET SDK e CLI.

Desinstalar .NET

Se você instalou .NET por meio de um gerenciador de pacotes, desinstale da mesma forma com o comando apt-get remove:

sudo apt-get remove dotnet-sdk-6.0

Para obter mais informações, consulte Uninstall .NET.

Atualizar .NET

Se você instalou .NET por meio de um gerenciador de pacotes, poderá atualizar o pacote com o comando apt upgrade. Por exemplo, os seguintes comandos atualizam o pacote dotnet-sdk-10.0 com a versão mais recente:

sudo apt update
sudo apt upgrade dotnet-sdk-10.0

Dica

Se você atualizou sua distribuição do Linux desde a instalação .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 pacotes apropriado para atualizações .NET.

Gerenciar versões de visualização

As seções a seguir descrevem como instalar e desinstalar versões prévias do .NET.

Instalar versões prévias

Versões de prévia e candidato a lançamento do .NET não estão disponíveis em repositórios de pacotes. Você pode instalar versões prévias e lançar candidatos de .NET de uma das seguintes maneiras:

Remover versões prévias

Ao usar um gerenciador de pacotes para gerenciar a instalação de .NET, você poderá encontrar um conflito se já tiver instalado uma versão prévia. O gerenciador de pacotes pode interpretar a versão 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 sobre como desinstalar .NET, consulte How to remove the .NET Runtime and SDK.

Resoluçã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 Ubuntu 22.10 incluem algumas versões de .NET, mas não todas, e você também pode ter instalado .NET dos feeds da Microsoft. Para obter mais informações sobre como corrigir esse problema, consulte Troubleshoot .NET erros relacionados a arquivos ausentes no Linux.

Problemas de APT

Esta seção fornece informações sobre erros comuns que você pode obter ao usar o APT para instalar .NET.

Não é possível localizar o pacote

Importante

Usar um gerenciador de pacotes para instalar .NET do feed de pacotes Microsoft dá suporte apenas à arquitetura x64. Outras arquiteturas, como o Arm64, não são compatíveis com o feed de pacotes da Microsoft. Use os feeds do Ubuntu ou instale manualmente .NET. Tenha cuidado com problemas de confusão de pacotes ao usar vários feeds. Para obter mais informações, consulte .NET combinações de pacotes no Linux.

Para obter mais informações sobre como instalar .NET sem um gerenciador de pacotes, consulte 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 .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 .NET que você está instalando, como aspnetcore-runtime-8.0. Isso é usado no comando sudo apt-get install a seguir.

Primeiro, tente limpar a lista de pacotes:

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Em seguida, tente instalar .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:

# Get OS version info which adds the $ID and $VERSION_ID variables
source /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:

# Define the OS version, name, and codename
source /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 .NET, você poderá ver um erro semelhante a Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Esse erro pode significar que o feed de pacotes para .NET está sendo atualizado com versões de pacote mais recentes 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. Porém, se você instalar manualmente o .NET ou publicar um aplicativo autossuficiente, para executar seu aplicativo, você deve instalar essas dependências.

  • certificados CA
  • 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)
  • libicu76 (para 25,04 ou posterior)
  • libssl1.0.0 (para 16.x)
  • libssl1.1 (para 18.x, 20.x)
  • libssl3 (para 22.x ou posterior)
  • libstdc++6
  • tzdata
  • zlib1g

As dependências podem ser instaladas usando o comando apt install. O snippet a seguir demonstra a instalação da biblioteca zlib1g:

sudo apt install zlib1g

Próximas etapas