Přehled .NET v Ubuntu

Tento článek popisuje, jak nainstalovat .NET na Ubuntu. Úložiště balíčků Microsoftu obsahuje všechny verze .NET, které jsou aktuálně nebo dříve podporovány v Ubuntu. Počínaje Ubuntu 22.04 jsou některé verze .NET k dispozici v kanálu balíčků Ubuntu. Další informace o dostupných verzích najdete v části Podporované distribuce .

Upozorňující

Doporučujeme zvolit jedno úložiště pro zdrojové balíčky .NET. Nekombinujte balíčky .NET z více úložišť balíčků, protože to vede k problémům, když se aplikace pokusí vyřešit konkrétní verzi .NET.

metoda Výhody Nevýhody
Správce balíčků
(informační kanál Microsoftu)
  • Podporované verze jsou vždy dostupné.
  • Opravy jsou k dispozici správným způsobem.
  • Jsou zahrnuty závislosti.
  • Snadné vyjmutí.
  • Vyžaduje registraci úložiště balíčků Microsoftu.
  • Verze Preview nejsou k dispozici.
  • Podporuje pouze x64 Ubuntu.
Správce balíčků
(informační kanál Ubuntu)
  • K dispozici je obvykle nejnovější verze.
  • Opravy jsou k dispozici správným způsobem.
  • Jsou zahrnuty závislosti.
  • Snadné vyjmutí.
  • Dostupné verze .NET se liší podle verze Ubuntu.
  • Verze Preview nejsou k dispozici.
  • Podporuje pouze x64 Ubuntu. (s výjimkou Ubuntu 23.04+, který podporuje také Arm64)
Skript \ Ruční extrakce
  • Určuje, kde je .NET nainstalovaný.
  • K dispozici jsou verze Preview.
  • Ručně nainstalujte aktualizace.
  • Ručně nainstalujte závislosti.
  • Ruční vyjmutí.

Rozhodnutí o tom, jak nainstalovat .NET

Pokud vaše verze Ubuntu podporuje .NET prostřednictvím integrovaného kanálu Ubuntu, poskytuje podpora těchto buildů .NET Canonical a buildy můžou být optimalizované pro různé úlohy. Microsoft poskytuje podporu balíčků v informačním kanálu úložiště balíčků Microsoftu.

Pomocí následujících částí určete, jak nainstalovat .NET:

Používám Ubuntu 22.04 nebo novější a potřebuji jenom .NET

Nainstalujte .NET prostřednictvím kanálu Ubuntu. Další informace najdete na následujících stránkách:

Důležité

Verze sady .NET SDK, které nabízí Canonical, jsou vždy v pásmu funkcí .1xx. Pokud chcete použít novější verzi pásma funkcí, nainstalujte sadu SDK pomocí informačního kanálu Microsoftu. Nezapomeňte si projít informace v balíčku .NET mix ups v linuxovém článku, abyste porozuměli důsledkům přepínání mezi kanály úložiště.

Pokud budete instalovat úložiště Microsoftu, abyste mohli používat jiné balíčky Microsoftu, například powershell, mdatpnebo mssql, musíte převést balíčky .NET poskytované úložištěm Microsoftu. Pokyny k vyřazení balíčků najdete v tématu Moje linuxová distribuce obsahuje balíčky .NET a chci je použít.

Používám verzi Ubuntu starší než 22.04

Postupujte podle pokynů na stránce Ubuntu specifické pro konkrétní verzi.

Další informace o podporovaných verzích .NET pro vaši verzi Ubuntu najdete v části Podporované distribuce. Pokud instalujete verzi, která není podporovaná, přečtěte si téma Registrace úložiště balíčků Microsoftu.

Používám jiné balíčky Microsoftu, například powershell, mdatpnebo mssql

Pokud vaše verze Ubuntu podporuje .NET prostřednictvím integrovaného kanálu Ubuntu, musíte se rozhodnout, který kanál má nainstalovat .NET. Oddíl Podporované distribuce obsahuje tabulku, která uvádí, které verze .NET jsou k dispozici v informačních kanálech balíčků.

Pokud chcete zdrojové balíčky .NET z informačního kanálu Ubuntu, musíte převést balíčky .NET poskytované úložištěm Microsoftu. Pokyny k vyřazení balíčků najdete v tématu Moje linuxová distribuce obsahuje balíčky .NET a chci je použít.

Chci vytvořit aplikaci .NET

Pro sadu SDK použijte stejné zdroje balíčků jako pro modul runtime. Pokud například používáte Ubuntu 22.04 a .NET 6, ale ne .NET 7, doporučujeme nainstalovat .NET prostřednictvím integrovaného kanálu Ubuntu. Pokud ale přejdete na .NET 7, který není k dispozici v Canonical pro Ubuntu 22.04, měli byste odinstalovat .NET a přeinstalovat ho s úložištěm balíčků Microsoftu. Další informace naleznete v tématu Registrace a instalace v úložišti balíčků Společnosti Microsoft. Projděte si také další návrhy v části Rozhodnutí, jak nainstalovat .NET .

Chci spustit aplikaci .NET v kontejneru, cloudu nebo scénáři kontinuální integrace

Pokud vaše verze Ubuntu poskytuje požadovanou verzi .NET, nainstalujte ji z integrovaného informačního kanálu. Jinak zaregistrujte úložiště balíčků Microsoftu a nainstalujte z tohoto úložiště .NET. Projděte si informace v části Podporované distribuce .

Pokud požadovaná verze rozhraní .NET není dostupná, zkuste použít skript dotnet-install.

Distribuce Ubuntu neobsahuje požadovanou verzi .NET nebo potřebuji verzi .NET, která není podporována.

Doporučujeme používat APT a úložiště balíčků Microsoftu. Další informace najdete v části Registrace a instalace v úložišti balíčků Microsoftu.

Chci nainstalovat verzi Preview

K instalaci .NET použijte jeden z následujících způsobů:

Nechci používat APT

Pokud chcete automatizovanou instalaci, použijte instalační skript pro Linux.

Pokud chcete mít úplnou kontrolu nad instalačním prostředím .NET, stáhněte si tarball a ručně nainstalujte .NET. Další informace naleznete v tématu Ruční instalace.

Používám procesor založený na armech

K instalaci .NET použijte jeden z následujících způsobů:

Podporované distribuce

Následující tabulka obsahuje seznam aktuálně podporovaných verzí .NET a verzí Ubuntu, na kterých jsou podporované. Každý odkaz přejde na konkrétní stránku verze Ubuntu s konkrétními pokyny k instalaci .NET pro danou verzi Ubuntu.

Ubuntu Podporované verze .NET K dispozici v informačním kanálu Ubuntu K dispozici v informačním kanálu Microsoftu
24.04 8.0 8.0 Nic
23.10 8.0, 7.0, 6.0 8.0, 7.0, 6.0 8.0, 7.0, 6.0
23.04 8.0, 7.0, 6.0 7.0, 6.0 8.0, 7.0, 6.0
22.04 (LTS) 8.0, 7.0, 6.0 7.0, 6.0 8.0, 7.0, 6.0, 3.1
20.04 (LTS) 8.0, 7.0, 6.0 Nic 8.0, 7.0. 6.0, 5.0, 3.1, 2.1
18.04 (LTS) 7.0, 6.0 Nic 7.0. 6.0, 5.0, 3.1, 2.2, 2.1
16.04 (LTS) 6.0 Nic 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0

Když verze Ubuntu přestane být podporována, rozhraní .NET se už s danou verzí nepodporuje.

Následující verze rozhraní .NET se ❌ už nepodporují:

  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

Registrace úložiště balíčků Microsoftu

Úložiště balíčků Společnosti Microsoft obsahuje všechny verze rozhraní .NET, které byly dříve nebo jsou aktuálně podporovány ve vaší verzi Ubuntu. Pokud vaše verze Ubuntu poskytuje balíčky .NET, budete muset převést balíčky Ubuntu a použít úložiště Microsoft. Pokyny k vyřazení balíčků najdete v tématu Potřebuji verzi .NET, která není součástí distribuce Linuxu.

Důležité

Úložiště balíčků Microsoftu podporuje pouze balíčky .NET, které cílí na architekturu x64 . Jiné architektury, jako je Arm, musí rozhraní .NET nainstalovat jiným způsobem, například pomocí skriptu instalačního programu nebo ruční instalací.

Verze Preview nejsou k dispozici v úložišti balíčků Microsoftu. Další informace najdete v tématu Instalace verzí Preview.

Upozornění

Ke správě všech instalací .NET doporučujeme použít pouze jedno úložiště. Pokud jste dříve nainstalovali .NET s úložištěm Ubuntu, musíte vyčistit systém balíčků .NET a nakonfigurovat APT tak, aby ignoroval kanál Ubuntu. Další informace o tom, jak to udělat, najdete v tématu Potřebuji verzi .NET, která není poskytována v distribuci Linuxu.

Instalace pomocí APT se dá provést několika příkazy. Před instalací rozhraní .NET spusťte následující příkazy, které přidá podpisový klíč balíčku Microsoftu do seznamu důvěryhodných klíčů a přidá úložiště balíčků.

Otevřete terminál a spusťte následující příkazy:

# Get OS version info
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

Tip

Předchozí skript byl napsán pro Ubuntu a nemusí fungovat, pokud používáte odvozenou distribuci, například Linux Mint. Je pravděpodobné, že $repo_version proměnná nebude mít přiřazenou správnou hodnotu, což zneplatní identifikátor URI příkazu wget . Tato proměnná se mapuje na konkrétní verzi Ubuntu, pro kterou chcete získat balíčky, například 22.10 nebo 23.04.

Můžete použít webový prohlížeč a přejít k https://packages.microsoft.com/config/ubuntu/ zobrazení, které verze Ubuntu jsou k dispozici jako $repo_version hodnota.

Instalace rozhraní .NET

Po registraci úložiště balíčků Microsoftu nebo pokud vaše verze výchozího informačního kanálu Ubuntu podporuje balíček .NET, můžete pomocí příkazu nainstalovat .NET prostřednictvím správce sudo apt install <package-name> balíčků. Nahraďte <package-name> názvem balíčku .NET, který chcete nainstalovat. Pokud například chcete nainstalovat sadu .NET SDK 8.0, použijte příkaz sudo apt install dotnet-sdk-8.0. Následující tabulka uvádí aktuálně podporované balíčky .NET:

Produkt Typ Balíček
8.0 ASP.NET Core Šablona běhového prostředí aspnetcore-runtime-8.0
8.0 .NET Šablona běhového prostředí dotnet-runtime-8.0
8.0 .NET Sada SDK dotnet-sdk-8.0
7.0 ASP.NET Core Šablona běhového prostředí aspnetcore-runtime-7.0
7.0 .NET Šablona běhového prostředí dotnet-runtime-7.0
7.0 .NET Sada SDK dotnet-sdk-7.0
6.0 ASP.NET Core Šablona běhového prostředí aspnetcore-runtime-6.0
6.0 .NET Šablona běhového prostředí dotnet-runtime-6.0
6.0 .NET Sada SDK dotnet-sdk-6.0

Pokud chcete nainstalovat nepodporovanou verzi .NET, zkontrolujte část Podporovaná distribuce a zjistěte, jestli je tato verze .NET dostupná. Potom nahraďte verzi rozhraní .NET, kterou chcete nainstalovat. Pokud chcete například nainstalovat ASP.NET Core 2.1, použijte název aspnetcore-runtime-2.1balíčku .

Tip

Pokud nevytvořete aplikace .NET, nainstalujte modul runtime ASP.NET Core, protože zahrnuje modul runtime .NET a také podporuje aplikace ASP.NET Core.

Některé proměnné prostředí ovlivňují způsob spuštění rozhraní .NET po instalaci. Další informace najdete v tématu .NET SDK a proměnné prostředí rozhraní příkazového řádku.

Odinstalace .NET

Pokud jste .NET nainstalovali prostřednictvím správce balíčků, odinstalujte ho stejným způsobem pomocí apt-get remove příkazu:

sudo apt-get remove dotnet-sdk-6.0

Další informace naleznete v tématu Odinstalace rozhraní .NET.

Instalace verzí Preview

Verze Preview a verze Candidate pro .NET nejsou dostupné v úložištích balíčků. Kandidáty na verze Preview a verze .NET můžete nainstalovat jedním z následujících způsobů:

Odebrání verzí Preview

Pokud ke správě instalace rozhraní .NET používáte správce balíčků, může dojít ke konfliktu, pokud jste dříve nainstalovali verzi Preview. Správce balíčků může interpretovat verzi, která není ve verzi Preview, jako starší verzi .NET. Pokud chcete nainstalovat verzi, která není ve verzi Preview, odinstalujte nejprve verze Preview. Další informace o odinstalaci rozhraní .NET naleznete v tématu Odebrání modulu runtime .NET a sady SDK.

Použití APT k aktualizaci .NET

Pokud jste .NET nainstalovali prostřednictvím správce balíčků, můžete balíček upgradovat pomocí apt upgrade příkazu. Například následující příkazy upgraduje dotnet-sdk-7.0 balíček s nejnovější verzí:

sudo apt update
sudo apt upgrade dotnet-sdk-7.0

Tip

Pokud jste od instalace .NET upgradovali distribuci Linuxu, možná budete muset překonfigurovat úložiště balíčků Microsoftu. Spuštěním pokynů k instalaci aktuální distribuční verze upgradujte na příslušné úložiště balíčků pro aktualizace .NET.

Řešení problému

Od Ubuntu 22.04 můžete narazit na situaci, kdy se zdá, že je k dispozici pouze část .NET. Například jste nainstalovali modul runtime a sadu SDK, ale když spustíte dotnet --info jenom modul runtime, zobrazí se seznam. Tato situace může souviset s používáním dvou různých zdrojů balíčků. Integrované informační kanály balíčků Ubuntu 22.04 a Ubuntu 22.10 zahrnují některé verze .NET, ale ne všechny a možná jste také nainstalovali .NET z informačních kanálů Microsoftu. Další informace o řešení tohoto problému naleznete v tématu Řešení chyb .NET souvisejících s chybějícími soubory v Linuxu.

Problémy s APT

Tato část obsahuje informace o běžných chybách, které se můžou zobrazit při instalaci .NET pomocí APT.

Nepodařilo se najít balíček

Důležité

Použití správce balíčků k instalaci .NET z kanálu balíčků Microsoft podporuje pouze architekturu x64 . Kanál balíčků Microsoftu nepodporuje jiné architektury, jako je Arm.

Další informace o instalaci .NET bez správce balíčků najdete v jednom z následujících článků:

Nelze najít \ Některé balíčky nelze nainstalovat.

Poznámka:

Tyto informace platí jenom v případě, že je rozhraní .NET nainstalováno z informačního kanálu balíčku Společnosti Microsoft.

Pokud se zobrazí chybová zpráva podobná tomu, že nelze najít balíček {dotnet-package} nebo některé balíčky nelze nainstalovat, spusťte následující příkazy.

Následující sada příkazů obsahuje dva zástupné symboly.

  • {dotnet-package}
    Představuje balíček .NET, který instalujete, například aspnetcore-runtime-8.0. Používá se v následujícím sudo apt-get install příkazu.

Nejprve zkuste seznam balíčků vyprázdnit:

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

Pak zkuste .NET nainstalovat znovu. Pokud to nepomůže, můžete ruční instalaci spustit pomocí následujících příkazů:

Pokud používáte Ubuntu 23.10 nebo novější, vyzkoušejte následující příkazy:

# 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

# 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}

Pokud používáte verzi Ubuntu starší než 23.10, vyzkoušejte následující příkazy:

# 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}

Načtení se nezdařilo.

Při instalaci balíčku .NET se může zobrazit chyba podobná Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Tato chyba může znamenat, že se informační kanál balíčku pro .NET upgraduje s novějšími verzemi balíčků a že byste to měli zkusit později. Během upgradu by informační kanál balíčku neměl být po dobu delší než 30 minut nedostupný. Pokud se tato chyba nepřetržitě zobrazuje déle než 30 minut, zapište problém na adrese https://github.com/dotnet/core/issues.

Závislosti

Při instalaci pomocí správce balíčků se tyto knihovny nainstalují za vás. Pokud ale ručně nainstalujete .NET nebo publikujete samostatnou aplikaci, musíte pro spuštění aplikace nainstalovat tyto závislosti:

  • libc6
  • libgcc1 (pro 16.x a 18.x)
  • libgcc-s1 (pro 20.x nebo novější)
  • libgssapi-krb5-2
  • libicu55 (pro 16.x)
  • libicu60 (pro 18.x)
  • libicu66 (pro 20.x)
  • libicu70 (pro 22.04)
  • libicu71 (pro 22.10)
  • libicu72 (pro 23.04 nebo novější)
  • liblttng-ust1 (pro 22.x nebo novější)
  • libssl1.0.0 (pro 16.x)
  • libssl1.1 (pro 18.x, 20.x)
  • libssl3 (pro 22.x nebo novější)
  • libstdc++6
  • libunwind8 (pro 22.x nebo novější)
  • zlib1g

Pomocí příkazu je možné nainstalovat apt install závislosti. Následující fragment kódu ukazuje instalaci zlib1g knihovny:

sudo apt install zlib1g

Pokud aplikace .NET používá sestavení System.Drawing.Common , bude potřeba nainstalovat také knihovnu libgdiplus. Vzhledem k tomu, že System.Drawing.Common se už v Linuxu nepodporuje, funguje to jenom v .NET 6 a vyžaduje nastavení System.Drawing.EnableUnixSupport přepínače konfigurace modulu runtime.

Nejnovější verzi knihovny libgdiplus můžete nainstalovat tak , že do systému přidáte úložiště Mono.

Další kroky