Dela via


Översikt över .NET på Ubuntu

I den här artikeln beskrivs hur du installerar .NET på Ubuntu. Från och med Ubuntu 22.04 är de flesta versioner av .NET som stöds tillgängliga i den inbyggda Ubuntu-feeden. Paketlagringsplatsen Ubuntu .NET-backports innehåller de återstående .NET-versioner som stöds. Mer information om tillgängliga versioner finns i avsnittet Distributioner som stöds.

Canonical har tagit över publiceringen av .NET på Ubuntu. Från och med Ubuntu 22.04 distribuerar Microsoft inte längre .NET for Ubuntu till Microsoft-paketlagringsplatsen.

Varning

Vi rekommenderar att du väljer mellan Ubuntu- eller Microsoft-feeds till .NET-källpaket. Blanda inte .NET-paket från flera paketlagringsplatser eftersom det leder till problem när appar försöker lösa en viss version av .NET.

Metod Fördelar Nackdelar
Pakethanterare
(inbyggd
Ubuntu-feed)
  • Vanligtvis är den senaste versionen tillgänglig.
  • Korrigeringar är tillgängliga på rätt sätt.
  • Beroenden ingår.
  • Enkel borttagning.
  • Tillgängliga .NET-versioner stöds under supportperioden för den specifika Ubuntu-versionen.
  • Stöd för IBM System Z-plattformen för .NET 8 på Ubuntu 24.04.
  • Inte tillgängligt för Ubuntu 16.04, 18.04, 20.04.
  • Tillgängliga .NET-versioner varierar beroende på Ubuntu-version.
  • Förhandsversioner är inte tillgängliga.
Pakethanterare
(.NET-backportar
Ubuntu-feed)
  • Innehåller alla versioner som stöds, som inte finns i den inbyggda Ubuntu-feeden.
  • Korrigeringar är tillgängliga på rätt sätt.
  • Beroenden ingår.
  • Enkel borttagning.
  • Kompatibel med inbyggd Ubuntu-feed.
  • Inte tillgängligt för Ubuntu 16.04, 18.04, 20.04.
  • Kräver registrering av Ubuntu .NET-lagringsplatsen för backports-paket.
  • Förhandsversioner är inte tillgängliga.
Pakethanterare
(Microsoft-feed)
  • Versioner som stöds är alltid tillgängliga.
  • Korrigeringar är tillgängliga på rätt sätt.
  • Beroenden ingår.
  • Enkel borttagning.
  • Inte tillgängligt för Ubuntu 24.04+.
  • Kräver registrering av Microsoft-paketlagringsplatsen.
  • Förhandsversioner är inte tillgängliga.
  • Stöder endast x64 Ubuntu.
Skript \ Manuell extrahering
  • Kontrollera var .NET är installerat.
  • Förhandsversioner är tillgängliga.
  • Installera uppdateringar manuellt.
  • Installera beroenden manuellt.
  • Manuell borttagning.

Överväganden vid uppgradering av Ubuntu

Vill du uppgradera Ubuntu till 22.04 eller senare? Överväg att avinstallera .NET först.

Om du använde en pakethanterare för att installera .NET från Microsoft-paketlagringsplatsen får du problem med paketblandningen efter uppgraderingen av Ubuntu. Nu när Canonical publicerar .NET till paketfeeds för Ubuntu 22.04 (och senare versioner) känner pakethanteraren inte till den tidigare installerade .NET-versionen. Paketen kan inte uppgraderas till den senaste .NET. Avinstallera dem först och installera sedan om dem från [Ubuntu-paketlagringsplatsen].

Bestäm hur du ska installera .NET

När din version av Ubuntu stöder .NET via den inbyggda eller .NET-backports Ubuntu-feeden tillhandahålls stödet för dessa versioner av .NET av Canonical och versionerna kan vara optimerade för olika arbetsbelastningar. Microsoft tillhandahåller stöd för paket i Microsoft-paketlagringsplatsens feed.

Använd följande avsnitt för att avgöra hur du ska installera .NET:

Jag använder Ubuntu 22.04 eller senare, och jag behöver bara .NET

Installera .NET via Ubuntu-feeden. Mer information finns på följande sidor:

Viktigt!

Om du använder .NET 8 SDK och Ubuntu 22.04 förstår du att SDK-versioner som erbjuds av Canonical alltid finns i .1xx-funktionsbandet. Om du vill använda en nyare funktionsbandsversion använder du Microsoft-feeden för att installera SDK:n. Se till att du läser informationen i .NET-paketblandningarna i Linux-artikeln för att förstå konsekvenserna av att växla mellan lagringsplatsfeeds.

Om du ska installera Microsoft-lagringsplatsen för att använda andra Microsoft-paket, till exempel powershell, mdatpeller mssql, måste du deprioritera .NET-paketen som tillhandahålls av Microsoft-lagringsplatsen. Anvisningar om hur du avprioriterar paketen finns i Min Linux-distribution tillhandahåller .NET-paket och jag vill använda dem.

Jag använder en version av Ubuntu före 22.04

Använd anvisningarna på den versionsspecifika Ubuntu-sidan.

Läs avsnittet Distributioner som stöds för mer information om vilka versioner av .NET som stöds för din version av Ubuntu. Om du installerar en version som inte stöds kan du läsa Registrera Microsoft-paketlagringsplatsen.

Jag använder andra Microsoft-paket, till exempel powershell, mdatpeller mssql

Om din Ubuntu-version stöder .NET via en Ubuntu-feeds måste du bestämma vilken feed som ska installera .NET. Avsnittet Distributioner som stöds innehåller en tabell som visar vilka versioner av .NET som är tillgängliga i paketfeeds.

Om du vill hämta .NET-paketen från en Ubuntu-feed måste du deprioritera .NET-paketen som tillhandahålls av Microsoft-lagringsplatsen. Anvisningar om hur du avprioriterar paketen finns i Min Linux-distribution tillhandahåller .NET-paket och jag vill använda dem.

Jag vill skapa en .NET-app

Använd samma paketkällor för SDK:t som du använder för körningen. Vi rekommenderar att du installerar .NET via en Ubuntu-feed. Men om du vill installera .NET från en annan källa (t.ex. Microsoft-paketlagringsplatsen för att få åtkomst till högre SDK-funktionsband) bör du avinstallera .NET, konfigurera pakethanteraren för att ignorera .NET-paket från Ubuntu-flödet och installera om det från den andra källan.

Granska de andra förslagen i avsnittet Bestäm hur du installerar .NET .

Jag vill köra en .NET-app i en container, ett moln eller ett scenario för kontinuerlig integrering

Om Ubuntu-versionen innehåller den .NET-version som du behöver installerar du den från en Ubuntu-feed. Annars registrerar du Microsoft-paketlagringsplatsen och installerar .NET från den lagringsplatsen. Granska informationen i avsnittet Distributioner som stöds.

Om den version av .NET som du vill använda inte är tillgänglig kan du prova att använda dotnet-install-skriptet.

Min Ubuntu-distribution innehåller inte den .NET-version jag vill ha, eller så behöver jag en .NET-version som inte stöds

Vi rekommenderar att du använder APT och Microsoft-paketlagringsplatsen. Mer information finns i avsnittet Registrera och installera med Microsoft-paketlagringsplatsen .

Jag vill installera en förhandsversion

Använd något av följande sätt att installera .NET:

Jag vill inte använda APT

Om du vill ha en automatiserad installation använder du Linux-installationsskriptet.

Om du vill ha fullständig kontroll över .NET-installationen laddar du ned en tarball och installerar .NET manuellt. Mer information finns i Manuell installation.

Jag använder en armbaserad PROCESSOR

Om Ubuntu-versionen innehåller den .NET-version som du behöver installerar du den från den inbyggda feeden. Granska informationen i avsnittet Distributioner som stöds.

Om den version av .NET som du vill använda inte är tillgänglig kan du prova att använda något av följande sätt att installera .NET:

Jag använder IBM System Z-plattformen

Från och med .NET 8 på Ubuntu 24.04 stöder Canonical .NET för IBM System Z-plattformen. Canonical arbetar med att utöka stödet till andra .NET- och Ubuntu-versioner.

Installera .NET via den inbyggda Ubuntu-feeden. Mer information finns på följande sida:

Distributioner som stöds

Följande tabell är en lista över .NET-versioner som stöds för närvarande och vilka versioner av Ubuntu de stöds på. Varje länk går till den specifika Ubuntu-versionssidan med specifika instruktioner för hur du installerar .NET för den versionen av Ubuntu.

Ubuntu .NET-versioner som stöds Tillgängligt i
inbyggd Ubuntu-feed
Tillgänglig i
.NET-backportar
Ubuntu-feed
Tillgänglig i
Microsoft-feed
24.10 9.0, 8.0 9.0, 8.0 Ingen Ingen
24.04 (LTS) 9.0, 8.0 8.0 9.0, 7.0, 6.0 Ingen
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 Ingen Ingen 8.0, 7.0. 6.0, 5.0, 3.1, 2.1

När en Ubuntu-version når slutet av supportperioden stöds inte längre .NET med den specifika Ubuntu-versionen.

Canonical har stöd för .NET-versioner i det inbyggda Ubuntu-flödet under livslängden för Ubuntu-versionen, även utöver microsofts supportlivslängd och ger bästa möjliga stöd för .NET-versioner i .NET-lagringsplatsen för backports-paket, vilket inte sträcker sig längre än microsofts supportlivslängd.

Följande versioner av .NET stöds ❌ inte längre:

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

Ubuntu .NET-lagringsplats för backports-paket

Paketlagringsplatsen Ubuntu .NET-backports innehåller versioner av .NET, som inte är tillgängliga i den inbyggda Ubuntu-feeden. Avsnittet Distributioner som stöds innehåller en tabell som visar vilka versioner av .NET som är tillgängliga i paketflödet. Canonical underhåller paketen som finns i den här paketlagringsplatsen och ger bästa möjliga stöd, vilket inte sträcker sig längre än microsofts supportlivslängd eller supportperioden för den specifika Ubuntu-versionen.

Mer information finns i webbvyn för Ubuntu .NET-lagringsplatsen för backports-paket.

Registrera Ubuntu .NET-lagringsplatsen för backports-paket

Öppna en terminal och kör följande kommando:

sudo add-apt-repository ppa:dotnet/backports

Dricks

Du behöver inte anropa apt update. Kommandot add-apt-repository gör detta som standard.

Kommentar

Ubuntu .NET-lagringsplatsen för backports-paket är kompatibel med den inbyggda Ubuntu-feeden. Därför behöver du inte konfigurera pakethanteraren för att ignorera .NET-paket i den inbyggda Ubuntu-feeden.

Avregistrera Ubuntu .NET-lagringsplatsen för backports-paket

Om du inte längre vill använda paket från Ubuntu .NET-lagringsplatsen för .NET-serverportar kan du avregistrera den. Öppna en terminal och kör följande kommando:

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

Viktigt!

Om du avregistrerar Ubuntu .NET-lagringsplatsen för backports-paket avinstalleras inga paket.

kommandot add-apt-repository hittades inte

Verktyget add-apt-repository(1) är förinstallerat på de flesta Ubuntu-installationer.

Om du får ett felmeddelande om att add-apt-repository kommandot inte hittades måste du installera software-properties-common paketet, som innehåller det här kommandot. Öppna en terminal och kör följande kommandon:

sudo apt update
sudo apt install software-properties-common

Registrera Microsoft-paketlagringsplatsen

Viktigt!

Detta gäller endast Ubuntu-versioner före 24.04. Från och med Ubuntu 24.04 publicerar Microsoft inte längre paket till Microsoft-paketlagringsplatsen. Använd tabellen med distributioner som stöds för att fastställa det bästa sättet att installera .NET.

Microsoft-paketlagringsplatsen innehåller alla versioner av .NET som tidigare, eller för närvarande stöds med din version av Ubuntu. Om din version av Ubuntu tillhandahåller .NET-paket måste du deprioritera Ubuntu-paketen och använda Microsoft-lagringsplatsen. Anvisningar om hur du avprioriterar paketen finns i Jag behöver en version av .NET som inte tillhandahålls av min Linux-distribution.

Viktigt!

Microsoft-paketlagringsplatsen stöder endast .NET-paket som är avsedda för x64-arkitekturen. Andra arkitekturer, till exempel Arm, måste installera .NET på något annat sätt, till exempel med installationsskriptet eller genom manuell installation.

Förhandsversioner är inte tillgängliga på Microsoft-paketlagringsplatsen. Mer information finns i Installera förhandsversioner.

Varning

Vi rekommenderar att du bara använder en lagringsplats för att hantera alla dina .NET-installationer. Om du tidigare har installerat .NET med Ubuntu-lagringsplatsen måste du rensa systemet med .NET-paket och konfigurera APT för att ignorera Ubuntu-feeds. Mer information om hur du gör detta finns i Jag behöver en version av .NET som inte tillhandahålls av min Linux-distribution.

Du kan installera med APT med några få kommandon. Innan du installerar .NET kör du följande kommandon för att lägga till Microsoft-paketsigneringsnyckeln i listan över betrodda nycklar och lägga till paketlagringsplatsen.

Öppna en terminal och kör följande kommandon:

# 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

Dricks

Det tidigare skriptet skrevs för Ubuntu och kanske inte fungerar om du använder en härledd distribution, till exempel Linux Mint. Det är troligt att variablerna $ID och $VERSION_ID inte tilldelas rätt värden, vilket gör URI:n för wget kommandot ogiltig. Motsvarar $ID fördelningen (t.ex. ubuntu), medan $VERSION_ID mappas till den specifika versionen av Ubuntu som du vill hämta paket för, till exempel 22.04 eller 23.10.

Till exempel på Ubuntu 22.04 $ID skulle vara ubuntu och $VERSION_ID skulle vara 22.04. URL:en skulle se ut så här: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb.

Du kan använda en webbläsare och navigera till för att https://packages.microsoft.com/config/ubuntu/ se vilka versioner av Ubuntu som är tillgängliga att använda som $repo_version värde.

Installera .NET

Viktigt!

.NET 9 släpptes den 12 november 2024. Det kan ta tid för paketen att visas i pakethanterarens feeds eller för att din specifika Linux-distribution ska inkludera den.

Installera .NET via pakethanteraren med sudo apt install <package-name> kommandot . Ersätt <package-name> med namnet på det .NET-paket som du vill installera. Om du till exempel vill installera .NET SDK 9.0 använder du kommandot sudo apt install dotnet-sdk-9.0. I följande tabell visas de .NET-paket som stöds (som kan variera beroende på din Ubuntu-version):

Produkt Type Paket
9.0 ASP.NET Core Körmiljö aspnetcore-runtime-9.0
9.0 .NET Körmiljö dotnet-runtime-9.0
9.0 .NET SDK dotnet-sdk-9.0
8.0 ASP.NET Core Körmiljö aspnetcore-runtime-8.0
8.0 .NET Körmiljö dotnet-runtime-8.0
8.0 .NET SDK dotnet-sdk-8.0

Dricks

Om du inte skapar .NET-appar installerar du ASP.NET Core-körningen eftersom den innehåller .NET-körningen och även stöder ASP.NET Core-appar.

Vissa miljövariabler påverkar hur .NET körs när det har installerats. Mer information finns i miljövariabler för .NET SDK och CLI.

Avinstallera .NET

Om du har installerat .NET via en pakethanterare avinstallerar du på samma sätt med apt-get remove kommandot:

sudo apt-get remove dotnet-sdk-6.0

Mer information finns i Avinstallera .NET.

Installera förhandsversioner

Förhandsversioner och versioner av .NET är inte tillgängliga i paketlagringsplatser. Du kan installera förhandsversioner och versionskandidater för .NET på något av följande sätt:

Ta bort förhandsversioner

När du använder en pakethanterare för att hantera installationen av .NET kan det uppstå en konflikt om du tidigare har installerat en förhandsversion. Pakethanteraren kan tolka den icke-förhandsversion som en tidigare version av .NET. Om du vill installera versionen som inte är förhandsversion avinstallerar du först förhandsversionerna. Mer information om hur du avinstallerar .NET finns i Ta bort .NET Runtime och SDK.

Använda APT för att uppdatera .NET

Om du har installerat .NET via en pakethanterare kan du uppgradera paketet med apt upgrade kommandot . Följande kommandon uppgraderar dotnet-sdk-9.0 till exempel paketet med den senaste versionen:

sudo apt update
sudo apt upgrade dotnet-sdk-9.0

Dricks

Om du har uppgraderat Linux-distributionen sedan du installerade .NET kan du behöva konfigurera om Microsoft-paketlagringsplatsen. Kör installationsanvisningarna för den aktuella distributionsversionen för att uppgradera till lämplig paketlagringsplats för .NET-uppdateringar.

Felsökning

Från och med Ubuntu 22.04 kan du stöta på en situation där det bara verkar som om en bit av .NET är tillgänglig. Du har till exempel installerat körningen och SDK:t, men när du bara kör dotnet --info körs visas körningen. Den här situationen kan vara relaterad till att använda två olika paketkällor. De inbyggda Ubuntu 22.04- och Ubuntu 22.10-paketflödena innehåller vissa versioner av .NET, men inte alla, och du kanske också har installerat .NET från Microsoft-feeds. Mer information om hur du åtgärdar det här problemet finns i Felsöka .NET-fel relaterade till filer som saknas i Linux.

APT-problem

Det här avsnittet innehåller information om vanliga fel som du kan få när du använder APT för att installera .NET.

Det går inte att hitta paketet

Viktigt!

Om du använder en pakethanterare för att installera .NET från Microsoft-paketflödet stöds endast x64-arkitekturen. Andra arkitekturer, till exempel Arm, stöds inte av Microsoft-paketflödet.

Mer information om hur du installerar .NET utan en pakethanterare finns i någon av följande artiklar:

Det gick inte att hitta \ Vissa paket kunde inte installeras

Kommentar

Den här informationen gäller endast när .NET installeras från Microsoft-paketflödet.

Om du får ett felmeddelande som liknar Det går inte att hitta paketet {dotnet-package} eller om det inte gick att installera vissa paket kör du följande kommandon.

Det finns två platshållare i följande uppsättning kommandon.

  • {dotnet-package}
    Detta representerar det .NET-paket som du installerar, till exempel aspnetcore-runtime-8.0. Detta används i följande sudo apt-get install kommando.

Prova först att rensa paketlistan:

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

Försök sedan att installera .NET igen. Om det inte fungerar kan du köra en manuell installation med följande kommandon:

Om du använder Ubuntu 23.10 eller senare kan du prova följande kommandon:

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

Om du använder en Ubuntu-version före 23.10 kan du prova följande kommandon:

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

Det gick inte att hämta

När du installerar .NET-paketet kan ett fel som liknar Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Det här felet kan innebära att paketflödet för .NET uppgraderas med nyare paketversioner och att du bör försöka igen senare. Under en uppgradering bör paketflödet inte vara otillgängligt på mer än 30 minuter. Om du kontinuerligt får det här felet i mer än 30 minuter kan du ange ett problem på https://github.com/dotnet/core/issues.

Beroenden

När du installerar med en pakethanterare installeras dessa bibliotek åt dig. Men om du installerar .NET manuellt eller publicerar en fristående app måste du installera dessa beroenden för att köra appen:

  • ca-certifikat
  • libc6
  • libgcc1 (för 16.x och 18.x)
  • libgcc-s1 (för 20.x eller senare)
  • libgssapi-krb5-2
  • libicu55 (för 16.x)
  • libicu60 (för 18.x)
  • libicu66 (för 20.x)
  • libicu70 (för 22,04)
  • libicu72 (för 23,10)
  • libicu74 (för 24,04 eller senare)
  • liblttng-ust1 (för 22.x eller senare)
  • libssl1.0.0 (för 16.x)
  • libssl1.1 (för 18.x, 20.x)
  • libssl3 (för 22.x eller senare)
  • libstdc++6
  • libunwind8 (för 22.x eller senare)
  • zlib1g

Beroenden kan installeras med apt install kommandot . Följande kodfragment visar hur zlib1g du installerar biblioteket:

sudo apt install zlib1g

Om .NET-appen använder sammansättningen System.Drawing.Common måste libgdiplus installeras. Mer information finns i System.Drawing.Common som endast stöds i Windows.

Du kan installera en ny version av libgdiplus genom att lägga till Mono-lagringsplatsen i systemet.

Nästa steg