Partilhar via


Visão geral do .NET no Ubuntu

Este artigo descreve como instalar o .NET no Ubuntu. A partir do Ubuntu 22.04, a maioria das versões suportadas do .NET estão disponíveis no feed interno do Ubuntu. O repositório de pacotes de backports do Ubuntu .NET contém as versões suportadas restantes do .NET. Para obter mais informações sobre as versões disponíveis, consulte a seção Distribuições suportadas .

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

É recomendável que você escolha entre feeds do Ubuntu ou da Microsoft para pacotes .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.

Método Prós Contras
Gestor de pacotes
(incorporado
Feed do Ubuntu)
  • Normalmente, a versão mais recente está disponível.
  • Os patches estão disponíveis da maneira certa.
  • As dependências estão incluídas.
  • Fácil remoção.
  • As versões .NET disponíveis são suportadas para o período de suporte da versão específica do Ubuntu.
  • Suporte para a plataforma IBM System Z para .NET 8 no Ubuntu 24.04.
  • Não disponível para Ubuntu 16.04, 18.04, 20.04.
  • As versões do .NET disponíveis variam de acordo com a versão do Ubuntu.
  • As versões de pré-visualização não estão disponíveis.
Gestor de pacotes
(backports .NET
Feed do Ubuntu)
  • Contém qualquer versão suportada, que não está contida no feed interno do Ubuntu.
  • Os patches estão disponíveis da maneira certa.
  • As dependências estão incluídas.
  • Fácil remoção.
  • Compatível com built-in Ubuntu feed.
  • Não disponível para Ubuntu 16.04, 18.04, 20.04.
  • Requer o registro do repositório de pacotes de backports do Ubuntu .NET.
  • As versões de pré-visualização não estão disponíveis.
Gestor de pacotes
(Feed da Microsoft)
  • Versões suportadas sempre disponíveis.
  • Os patches estão disponíveis da maneira certa.
  • As dependências estão incluídas.
  • Fácil remoção.
  • Não está disponível para Ubuntu 24.04+.
  • Requer o registro do repositório de pacotes da Microsoft.
  • As versões de pré-visualização não estão disponíveis.
  • Só suporta x64 Ubuntu.
Script \ Extração manual
  • Controle onde o .NET está instalado.
  • Versões prévias estão disponíveis.
  • Instale atualizações manualmente.
  • Instale dependências manualmente.
  • Remoção manual.

Considerações ao atualizar o Ubuntu

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

Se você usou um gerenciador de pacotes para instalar o .NET a partir do repositório de pacotes da Microsoft, você acabará com um problema de mistura de pacotes depois de atualizar o Ubuntu. Agora que a Canonical publica o .NET nos feeds de pacotes para o 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 a partir do [repositório de pacotes do Ubuntu].

Decida como instalar o .NET

Quando a sua versão do Ubuntu suporta .NET através do feed interno ou backports do Ubuntu .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 fornece suporte para pacotes no feed de repositório de pacotes da Microsoft.

Use as seções a seguir para determinar como você deve instalar o .NET:

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

Instale o .NET através do feed do Ubuntu. Para obter mais informações, consulte as seguintes páginas:

Importante

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 faixa de recursos .1xx. Se você quiser usar uma versão mais recente da banda de recursos, use o feed da Microsoft para instalar o SDK. Certifique-se de revisar as informações no artigo Misturas de pacotes .NET no Linux para entender as implicações da alternância entre feeds de repositório.

Se você vai instalar o repositório da Microsoft para usar outros pacotes da Microsoft, como powershell, mdatpou mssql, você precisa despriorizar os pacotes .NET fornecidos pelo repositório da Microsoft. Para obter instruções sobre como despriorizar os pacotes, consulte Minha distribuição Linux fornece pacotes .NET e eu quero usá-los.

Estou usando uma versão do Ubuntu anterior à 22.04

Use as instruções na página do Ubuntu específica da versão.

Consulte a seção Distribuições suportadas para obter mais informações sobre quais versões do .NET são suportadas para sua versão do Ubuntu. Se estiver a instalar uma versão que não é suportada, consulte Registar o repositório de pacotes da Microsoft.

Estou usando outros pacotes da Microsoft, como powershell, mdatpou mssql

Se a sua versão do Ubuntu suporta .NET através de um Ubuntu feeds, você deve decidir qual feed deve instalar o .NET. A seção Distribuições suportadas fornece uma tabela que lista quais versões do .NET estão disponíveis nos feeds de pacote.

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

Quero criar um aplicativo .NET

Use as mesmas fontes de pacote para o SDK que você usa para o tempo de execução. É recomendável que você instale o .NET através de um feed do Ubuntu. Se, no entanto, você quiser instalar o .NET de outra fonte (por exemplo, o repositório de pacotes da Microsoft para acessar bandas de recursos SDK mais altas), você deve desinstalar o .NET, configurar seu gerenciador de pacotes para ignorar pacotes .NET do feed do Ubuntu e reinstalá-lo a partir da outra fonte.

Analise as outras sugestões na seção Decidir como instalar o .NET .

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

Se a sua versão do Ubuntu fornece a versão .NET que você precisa, instale-o a partir de um feed do Ubuntu. Caso contrário, registre o repositório de pacotes da Microsoft e instale o .NET a partir desse repositório. Analise as informações na seção Distribuições suportadas .

Se a versão do .NET desejada 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 eu preciso de uma versão .NET fora de suporte

Recomendamos que você use o APT e o repositório de pacotes da Microsoft. Para obter mais informações, consulte a seção Registrar e instalar com o repositório de pacotes da Microsoft.

Quero instalar uma versão de pré-visualização

Use uma das seguintes maneiras de instalar o .NET:

Não quero usar o APT

Se você quiser uma instalação automatizada, use o script de instalação do Linux.

Se você quiser controle total sobre a experiência de instalação do .NET, baixe um tarball e instale manualmente o .NET. Para obter mais informações, consulte Instalação manual.

Estou usando uma CPU baseada em Arm

Se a sua versão do Ubuntu fornece a versão .NET que você precisa, instale-o a partir do feed embutido. Analise as informações na seção Distribuições suportadas .

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

Estou usando a plataforma IBM System Z

Começando com o .NET 8 no Ubuntu 24.04, a Canonical suporta .NET para a plataforma IBM System Z. A Canonical trabalha na extensão do suporte para outras versões .NET e Ubuntu.

Instale o .NET através do feed interno do Ubuntu. Para obter mais informações, consulte a seguinte página:

Distribuições suportadas

A tabela a seguir é uma lista das versões do .NET atualmente suportadas e as versões do Ubuntu nas quais elas são suportadas. Cada link vai para a página específica da versão do Ubuntu com instruções específicas sobre como instalar o .NET para essa versão do Ubuntu.

Ubuntu Versões .NET suportadas Available in
built-in Ubuntu feed
Disponível em
Backports .NET
Feed do Ubuntu
Disponível em
Feed da Microsoft
24.10 9.0, 8.0 9.0, 8.0 Nenhuma Nenhuma
24,04 (LTS) 9.0, 8.0 8.0 9.0, 7.0, 6.0 Nenhuma
22,04 (LTS) 9.0, 8.0 8.0, 7.0, 6.0 9.0 8.0, 7.0, 6.0, 3.1
20,04 (LTS) 9.0, 8.0 Nenhuma Nenhuma 8.0, 7.0. 6.0, 5.0, 3.1, 2.1

Quando uma versão do Ubuntu atinge o final de seu período de suporte, o .NET não é mais suportado com essa versão específica do Ubuntu.

A Canonical suporta versões .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 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 de suporte fornecido pela Microsoft.

As seguintes versões do .NET não são ❌ mais suportadas:

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

O repositório de pacotes de backports do Ubuntu .NET fornece versões do .NET, que não estão disponíveis no feed interno do Ubuntu. A seção Distribuições suportadas 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 de suporte fornecido pela Microsoft ou do período de suporte da versão específica do Ubuntu.

Consulte a visualização na web do repositório de pacotes de backports do Ubuntu .NET para obter mais detalhes.

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

Gorjeta

Você não precisa ligar apt updatepara . O add-apt-repository comando faz isso por padrão.

Nota

O repositório de pacotes de backports do Ubuntu .NET é compatível com o feed interno do Ubuntu. Portanto, você não precisa configurar seu gerenciador de pacotes para ignorar pacotes .NET 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ê pode cancelá-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 add-apt-repository(1) utilitário é pré-instalado na maioria das instalações do Ubuntu.

Se você receber uma mensagem de erro informando que o add-apt-repository comando não foi encontrado, será necessário instalar o software-properties-common pacote, 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 só se aplica à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 o .NET.

O repositório de pacotes da Microsoft contém todas as versões do .NET que eram anteriormente ou são atualmente suportadas com a sua versão do Ubuntu. Se a sua versão do Ubuntu fornece pacotes .NET, 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 do .NET que não é fornecida pela minha distribuição Linux.

Importante

O repositório de pacotes da Microsoft suporta apenas pacotes .NET destinados à arquitetura x64 . Outras arquiteturas, como Arm, devem instalar o .NET por outros meios, como com o script de instalação ou por instalação manual.

As versões de visualização não estão disponíveis no repositório de pacotes da Microsoft. Para obter mais informações, consulte Instalar versões de visualização.

Atenção

Recomendamos que você use apenas um repositório para gerenciar todas as suas instalações do .NET. Se você já instalou o .NET com o repositório do Ubuntu, você deve 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 do .NET que não é fornecida pela minha distribuição Linux.

A instalação com APT pode ser feita com alguns comandos. Antes de instalar o .NET, execute os seguintes comandos para adicionar a chave de assinatura do pacote 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

Gorjeta

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 e $VERSION_ID não recebam os valores corretos, tornando o URI do wget comando inválido. O $ID corresponde à 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 teria a seguinte aparência: 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/ ver quais versões do Ubuntu estão disponíveis para usar como o $repo_version valor.

Instalar o .NET

Instale o .NET através do gerenciador de pacotes com o sudo apt install <package-name> comando. Substitua <package-name> pelo nome do pacote .NET que você deseja instalar. Por exemplo, para instalar o .NET SDK 9.0, use o comando sudo apt install dotnet-sdk-9.0. A tabela a seguir lista os pacotes .NET atualmente suportados (que podem variar de acordo com a sua versão do Ubuntu):

Produto Type Pacote
9.0 ASP.NET Core Runtime aspnetcore-runtime-9.0
9.0 .NET Runtime dotnet-runtime-9.0
9.0 .NET SDK 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 SDK dotnet-sdk-8.0

Gorjeta

Se você não estiver criando aplicativos .NET, instale o tempo de execução do ASP.NET Core, pois ele inclui o tempo de execução do .NET e também oferece suporte a aplicativos ASP.NET Core.

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

Desinstalar o .NET

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

sudo apt-get remove dotnet-sdk-6.0

Para obter mais informações, consulte Desinstalar o .NET.

Instalar versões de pré-visualização

As versões candidatas de visualização e lançamento do .NET não estão disponíveis nos repositórios de pacotes. Você pode instalar visualizações e liberar candidatos do .NET de uma das seguintes maneiras:

Remover versões de pré-visualização

Ao usar um gerenciador de pacotes para gerenciar sua instalação do .NET, você pode entrar em conflito se tiver instalado anteriormente uma versão de visualização. O gerenciador de pacotes pode interpretar a versão de não-visualização como uma versão anterior do .NET. Para instalar a versão não prévia, primeiro desinstale as versões de visualização. Para obter mais informações sobre como desinstalar o .NET, consulte Como remover o .NET Runtime e SDK.

Use o APT para atualizar o .NET

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

sudo apt update
sudo apt upgrade dotnet-sdk-9.0

Gorjeta

Se você atualizou sua distribuição 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 para sua versão de distribuição atual para atualizar para o repositório de pacotes apropriado para atualizações do .NET.

Resolução de Problemas

A partir do Ubuntu 22.04, você pode se deparar com uma situação em que parece que apenas um pedaço do .NET está disponível. Por exemplo, você instalou o tempo de execução e o SDK, mas quando executa dotnet --info apenas o tempo de execução é listado. Essa situação pode estar relacionada ao uso de duas fontes de pacotes diferentes. Os feeds de pacotes integrados do Ubuntu 22.04 e Ubuntu 22.10 incluem algumas versões do .NET, mas não todas, e você também pode ter instalado o .NET a partir dos feeds da Microsoft. Para obter mais informações sobre como corrigir esse problema, consulte Solucionar erros do .NET 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 o .NET.

Não é possível encontrar o pacote

Importante

Usar um gerenciador de pacotes para instalar o .NET a partir do feed de pacotes da Microsoft suporta apenas a arquitetura x64. Outras arquiteturas, como Arm, não são suportadas pelo feed de pacotes da Microsoft.

Para obter mais informações sobre como instalar o .NET sem um gerenciador de pacotes, consulte um dos seguintes artigos:

Não foi possível localizar \ Alguns pacotes não puderam ser instalados

Nota

Essas informações só se aplicam quando o .NET é instalado a partir do feed de pacotes da Microsoft.

Se você receber uma mensagem de erro semelhante a Não é possível localizar o pacote {dotnet-package} ou Alguns pacotes não puderam ser instalados, execute os seguintes comandos.

Há dois espaços reservados no seguinte conjunto de comandos.

  • {dotnet-package}
    Isso representa o pacote .NET que você está instalando, como aspnetcore-runtime-8.0. Isso é usado no comando a seguir sudo apt-get install .

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 o .NET novamente. Se isso não funcionar, você pode executar uma instalação manual com os seguintes comandos:

Se você estiver usando o Ubuntu 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 do Ubuntu 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 ao buscar

Ao instalar o pacote .NET, você pode ver um erro semelhante ao 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 do pacote não deve ficar indisponível por mais de 30 minutos. Se você receber esse erro continuamente por mais de 30 minutos, registre um problema em https://github.com/dotnet/core/issues.

Dependências

Quando você instala com um gerenciador de pacotes, essas bibliotecas são instaladas para você. Mas, se você instalar manualmente o .NET ou publicar um aplicativo independente, deverá instalar estas dependências para executar seu aplicativo:

  • 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 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 com o apt install comando. O trecho a seguir demonstra a instalação da zlib1g biblioteca:

sudo apt install zlib1g

Se o aplicativo .NET usa o assembly System.Drawing.Common , libgdiplus deve ser instalado. Para obter mais informações, consulte System.Drawing.Common suportado apenas no Windows.

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

Próximos passos