Share 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, som inte är tillgängliga i det inbyggda Ubuntu-paketflödet för dessa Ubuntu-versioner. Mer information om tillgängliga versioner finns i avsnittet Distributioner som stöds. För Ubuntu 23.10 och tidigare versioner innehåller Dessutom Microsoft-paketlagringsplatsen alla versioner av .NET som för närvarande eller tidigare stöds.

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.

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!

.NET SDK-versioner som erbjuds av Canonical finns alltid 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.04 (LTS) 8.0, 6.0 8.0 7.0, 6.0 Ingen
23.10 8.0, 6.0 8.0, 7.0, 6.0 Ingen 8.0, 7.0, 6.0
22.04 (LTS) 8.0, 6.0 8.0, 7.0, 6.0 Ingen 8.0, 7.0, 6.0, 3.1
20.04 (LTS) 8.0, 6.0 Ingen Ingen 8.0, 7.0. 6.0, 5.0, 3.1, 2.1
18.04 (LTS) 6,0 Ingen Ingen 7.0. 6.0, 5.0, 3.1, 2.2, 2.1
16.04 (LTS) 6,0 Ingen Ingen 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0

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

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
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 det kanske inte fungerar om du använder en härledd distribution, till exempel Linux Mint. Det är troligt att variabeln $repo_version inte tilldelas rätt värde, vilket gör URI:n för wget kommandot ogiltig. Den här variabeln mappar till den specifika Ubuntu-version som du vill hämta paket för, till exempel 22.04 eller 23.10.

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

När du har registrerat Microsoft-paketlagringsplatsen, eller om Ubuntu Feeds stöder .NET-paketet för din Ubuntu-version, kan du 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 8.0 använder du kommandot sudo apt install dotnet-sdk-8.0. I följande tabell visas de .NET-paket som stöds för närvarande:

Produkt Type Paket
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
6.0 ASP.NET Core Körmiljö aspnetcore-runtime-6.0
6.0 .NET Körmiljö dotnet-runtime-6.0
6.0 .NET SDK dotnet-sdk-6.0

Om du vill installera en version av .NET som inte stöds kontrollerar du avsnittet Distributioner som stöds för att se om den versionen av .NET är tillgänglig. Ersätt sedan den version av .NET som du vill installera. Om du till exempel vill installera ASP.NET Core 8.0 använder du paketnamnet aspnetcore-runtime-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-8.0 till exempel paketet med den senaste versionen:

sudo apt update
sudo apt upgrade dotnet-sdk-8.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:

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

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 även libgdiplus installeras. Eftersom System.Drawing.Common inte längre stöds i Linux fungerar detta bara på .NET 6 och kräver att du ställer in körningskonfigurationsväxeln System.Drawing.EnableUnixSupport .

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

Nästa steg