Ö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) |
|
|
Pakethanterare (.NET-backportar Ubuntu-feed) |
|
|
Pakethanterare (Microsoft-feed) |
|
|
Skript \ Manuell extrahering |
|
|
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
- Jag använder en version av Ubuntu före 22.04
- Jag använder andra Microsoft-paket, till exempel
powershell
,mdatp
ellermssql
- Jag vill skapa en .NET-app
- Jag vill köra en .NET-app i en container, ett moln eller ett scenario för kontinuerlig integrering
- Min Ubuntu-distribution innehåller inte den .NET-version jag vill ha, eller så behöver jag en .NET-version som inte stöds
- Jag vill installera en förhandsversion
- Jag vill inte använda APT
- Jag använder en armbaserad PROCESSOR
- Jag använder IBM System Z-plattformen
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:
- Installera .NET på Ubuntu 24.04.
- Installera .NET på Ubuntu 23.10.
- Installera .NET på Ubuntu 23.04.
- Installera .NET på Ubuntu 22.04.
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
, mdatp
eller 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
, mdatp
eller 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 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
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 exempelaspnetcore-runtime-8.0
. Detta används i följandesudo 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 ä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.