De .NET SDK of de .NET Runtime installeren in Ubuntu
In dit artikel wordt beschreven hoe u .NET installeert op Ubuntu. De Microsoft-pakketopslagplaats bevat elke versie van .NET die momenteel of eerder werd ondersteund op Ubuntu. Vanaf Ubuntu 22.04 zijn sommige versies van .NET beschikbaar in de Ubuntu-pakketfeed. Zie de sectie Ondersteunde distributies voor meer informatie over beschikbare versies.
Waarschuwing
Het is raadzaam om één opslagplaats te kiezen voor .NET-pakketten. Meng .NET-pakketten niet uit meerdere pakketopslagplaatsen, omdat dit leidt tot problemen wanneer apps proberen een specifieke versie van .NET op te lossen.
Wijze | Voordelen | Nadelen |
---|---|---|
Pakketbeheer (Microsoft-feed) |
|
|
Pakketbeheer (Ubuntu-feed) |
|
|
Script \ Handmatige extractie |
|
|
Bepalen hoe u .NET installeert
Wanneer uw versie van Ubuntu .NET ondersteunt via de ingebouwde Ubuntu-feed, wordt ondersteuning voor die builds van .NET geleverd door Canonical en zijn de builds mogelijk geoptimaliseerd voor verschillende workloads. Microsoft biedt ondersteuning voor pakketten in de Microsoft-pakketopslagplaatsfeed.
Gebruik de volgende secties om te bepalen hoe u .NET moet installeren:
- Ik gebruik Ubuntu 22.04 of hoger en ik heb alleen .NET nodig
- Ik gebruik een versie van Ubuntu vóór 22.04
- Ik gebruik andere Microsoft-pakketten, zoals
powershell
,mdatp
ofmssql
- Ik wil een .NET-app maken
- Ik wil een .NET-app uitvoeren in een container-, cloud- of continue integratiescenario
- Mijn Ubuntu-distributie bevat niet de .NET-versie die ik wil, of ik heb een verouderde .NET-versie nodig
- Ik wil een preview-versie installeren
- Ik wil APT niet gebruiken
- Ik gebruik een ARM-CPU
Ik gebruik Ubuntu 22.04 of hoger en ik heb alleen .NET nodig
Installeer .NET via de Ubuntu-feed. Zie de volgende pagina's voor meer informatie:
- Installeer .NET op Ubuntu 22.04.
- Installeer .NET op Ubuntu 22.10.
- Installeer .NET op Ubuntu 23.04.
- Installeer .NET op Ubuntu 23.10.
Belangrijk
.NET SDK-versies die door Canonical worden aangeboden, bevinden zich altijd in de .1xx-functieband. Als u een nieuwere functiebandrelease wilt gebruiken, gebruikt u de Microsoft-feed om de SDK te installeren. Zorg ervoor dat u de informatie in het .NET-pakketmixen in Linux bekijkt om inzicht te krijgen in de gevolgen van het schakelen tussen opslagplaatsfeeds.
Als u de Microsoft-opslagplaats gaat installeren om andere Microsoft-pakketten te gebruiken, zoals powershell
, mdatp
of mssql
, moet u de .NET-pakketten die door de Microsoft-opslagplaats worden geleverd, deprioritiseren. Zie Mijn Linux-distributie biedt .NET-pakketten en ik wil ze gebruiken voor instructies voor het deprioriteren van de pakketten.
Ik gebruik een versie van Ubuntu vóór 22.04
Gebruik de instructies op de versiespecifieke Ubuntu-pagina.
Raadpleeg de sectie Ondersteunde distributies voor meer informatie over welke versies van .NET worden ondersteund voor uw versie van Ubuntu. Zie De microsoft-pakketopslagplaats registreren als u een versie installeert die niet wordt ondersteund.
Ik gebruik andere Microsoft-pakketten, zoals powershell
, mdatp
of mssql
Als uw Ubuntu-versie .NET ondersteunt via de ingebouwde Ubuntu-feed, moet u beslissen welke feed .NET moet installeren. De sectie Ondersteunde distributies bevat een tabel waarin wordt vermeld welke versies van .NET beschikbaar zijn voor de pakketfeeds .
Als u de .NET-pakketten wilt ophalen uit de Ubuntu-feed, moet u de .NET-pakketten die door de Microsoft-opslagplaats worden geleverd, deprioritiseren. Zie Mijn Linux-distributie biedt .NET-pakketten en ik wil ze gebruiken voor instructies voor het deprioriteren van de pakketten.
Ik wil een .NET-app maken
Gebruik dezelfde pakketbronnen voor de SDK als voor de runtime. Als u bijvoorbeeld Ubuntu 22.04 en .NET 6 gebruikt, maar niet .NET 7, is het raadzaam om .NET te installeren via de ingebouwde Ubuntu-feed. Als u echter overstapt op .NET 7, dat niet wordt geleverd door Canonical voor Ubuntu 22.04, moet u .NET verwijderen en opnieuw installeren met de Microsoft-pakketopslagplaats. Zie Registreren en installeren met de Microsoft-pakketopslagplaats voor meer informatie. Bekijk ook de andere suggesties in de sectie Bepalen hoe u .NET installeert.
Ik wil een .NET-app uitvoeren in een container-, cloud- of continue integratiescenario
Als uw Ubuntu-versie de .NET-versie biedt die u nodig hebt, installeert u deze vanuit de ingebouwde feed. Anders registreert u de Microsoft-pakketopslagplaats en installeert u .NET vanuit die opslagplaats. Bekijk de informatie in de sectie Ondersteunde distributies .
Als de gewenste versie van .NET niet beschikbaar is, gebruikt u het dotnet-install-script.
Mijn Ubuntu-distributie bevat niet de .NET-versie die ik wil, of ik heb een verouderde .NET-versie nodig
U wordt aangeraden APT en de Microsoft-pakketopslagplaats te gebruiken. Zie de sectie Registreren en installeren met de microsoft-pakketopslagplaats voor meer informatie.
Ik wil een preview-versie installeren
Gebruik een van de volgende manieren om .NET te installeren:
Ik wil APT niet gebruiken
Als u een geautomatiseerde installatie wilt, gebruikt u het Linux-installatiescript.
Als u volledige controle wilt over de .NET-installatie, downloadt u een tarball en installeert u .NET handmatig. Zie Handmatig installeren voor meer informatie.
Ik gebruik een ARM-CPU
Gebruik een van de volgende manieren om .NET te installeren:
Ondersteunde distributies
De volgende tabel is een lijst met momenteel ondersteunde .NET-releases en de versies van Ubuntu waarop ze worden ondersteund. Elke koppeling gaat naar de specifieke Ubuntu-versiepagina met specifieke instructies voor het installeren van .NET voor die versie van Ubuntu.
Ubuntu | Ondersteunde .NET-versies | Beschikbaar in Ubuntu-feed | Beschikbaar in Microsoft-feed |
---|---|---|---|
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.10 | 7.0, 6.0 | 7.0, 6.0 | 7.0, 6.0, 3.1 |
22.04 (LTS) | 8.0, 7.0, 6.0 | 6,0 | 8.0, 7.0, 6.0, 3.1 |
20.04 (LTS) | 8.0, 7.0, 6.0 | Geen | 8.0, 7.0. 6.0, 5.0, 3.1, 2.1 |
18.04 (LTS) | 7.0, 6.0 | Geen | 7.0. 6.0, 5.0, 3.1, 2.2, 2.1 |
16.04 (LTS) | 6,0 | Geen | 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0 |
Wanneer een Ubuntu-versie niet meer wordt ondersteund, wordt .NET niet meer ondersteund met die versie.
De volgende versies van .NET worden ❌ niet meer ondersteund:
- .NET 5
- .NET Core 3.1
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0
De Microsoft-pakketopslagplaats registreren
De Microsoft-pakketopslagplaats bevat alle versies van .NET die eerder waren, of die momenteel worden ondersteund met uw versie van Ubuntu. Als uw versie van Ubuntu .NET-pakketten biedt, moet u de Ubuntu-pakketten deprioritiseren en de Microsoft-opslagplaats gebruiken. Zie voor instructies over het deprioriteren van de pakketten een versie van .NET die niet wordt geleverd door mijn Linux-distributie.
Belangrijk
Package Manager-installaties worden alleen ondersteund in de x64-architectuur . Andere architecturen, zoals Arm, moeten .NET op een andere wijze installeren, zoals met het installatiescript of door handmatige installatie.
Preview-versies zijn niet beschikbaar in de Microsoft-pakketopslagplaats. Zie Preview-versies installeren voor meer informatie.
Let op
U wordt aangeraden slechts één opslagplaats te gebruiken om al uw .NET-installaties te beheren. Als u .NET eerder hebt geïnstalleerd met de Ubuntu-opslagplaats, moet u het systeem van .NET-pakketten opschonen en de APT configureren om de Ubuntu-feed te negeren. Zie voor meer informatie over hoe ik dit moet doen, ik heb een versie van .NET nodig die niet wordt geleverd door mijn Linux-distributie.
Installeren met APT kan worden uitgevoerd met een paar opdrachten. Voordat u .NET installeert, voert u de volgende opdrachten uit om de ondertekeningssleutel van het Microsoft-pakket toe te voegen aan uw lijst met vertrouwde sleutels en de pakketopslagplaats toe te voegen.
Open een terminal en voer de volgende opdrachten uit:
# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/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
Het vorige script is geschreven voor Ubuntu en werkt mogelijk niet als u een afgeleide distributie gebruikt, zoals Linux Mint. Waarschijnlijk krijgt de $repo_version
variabele niet de juiste waarde toegewezen, waardoor de URI voor de wget
opdracht ongeldig is. Deze variabele wordt toegewezen aan de specifieke Ubuntu-versie waarvoor u pakketten wilt ophalen, zoals 22.10 of 23.04.
U kunt een webbrowser gebruiken en navigeren om te https://packages.microsoft.com/config/ubuntu/ zien welke versies van Ubuntu beschikbaar zijn om als waarde $repo_version
te gebruiken.
.NET installeren
Nadat u de Microsoft-pakketopslagplaats hebt geregistreerd of als uw versie van de standaardfeed van Ubuntu het .NET-pakket ondersteunt, kunt u .NET installeren via pakketbeheer met de apt install <package-name>
opdracht. Vervang <package-name>
door de naam van het .NET-pakket dat u wilt installeren. Als u bijvoorbeeld .NET SDK 8.0 wilt installeren, gebruikt u de opdracht apt install dotnet-sdk-8.0
. De volgende tabel bevat de momenteel ondersteunde .NET-pakketten:
Product | Type | Pakket | |
---|---|---|---|
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 |
7.0 | ASP.NET Core | Runtime | aspnetcore-runtime-7.0 |
7.0 | .NET | Runtime | dotnet-runtime-7.0 |
7.0 | .NET | SDK | dotnet-sdk-7.0 |
6.0 | ASP.NET Core | Runtime | aspnetcore-runtime-6.0 |
6.0 | .NET | Runtime | dotnet-runtime-6.0 |
6.0 | .NET | SDK | dotnet-sdk-6.0 |
Als u een niet-ondersteunde versie van .NET wilt installeren, controleert u de sectie Ondersteunde distributies om te zien of die versie van .NET beschikbaar is. Vervang vervolgens de versie van .NET die u wilt installeren. Als u bijvoorbeeld ASP.NET Core 2.1 wilt installeren, gebruikt u de pakketnaam aspnetcore-runtime-2.1
.
Tip
Als u geen .NET-apps maakt, installeert u de ASP.NET Core-runtime, omdat deze de .NET-runtime bevat en ook ondersteuning biedt voor ASP.NET Core-apps.
Sommige omgevingsvariabelen zijn van invloed op hoe .NET wordt uitgevoerd nadat deze is geïnstalleerd. Zie .NET SDK- en CLI-omgevingsvariabelen voor meer informatie.
.NET verwijderen
Als u .NET hebt geïnstalleerd via een pakketbeheer, verwijdert u deze op dezelfde manier met de apt-get remove
opdracht:
sudo apt-get remove dotnet-sdk-6.0
Zie .NET verwijderen voor meer informatie.
Preview-versies installeren
Preview- en release-kandidaatversies van .NET zijn niet beschikbaar in pakketopslagplaatsen. U kunt op een van de volgende manieren previews en releasekandidaten van .NET installeren:
Preview-versies verwijderen
Wanneer u een pakketbeheerder gebruikt om uw installatie van .NET te beheren, kan er een conflict optreden als u eerder een preview-versie hebt geïnstalleerd. De pakketbeheerder kan de niet-preview-versie interpreteren als een eerdere versie van .NET. Als u de niet-preview-versie wilt installeren, moet u eerst de preview-versies verwijderen. Zie .NET Runtime en SDK verwijderen voor meer informatie over het verwijderen van .NET.
APT gebruiken om .NET bij te werken
Als u .NET hebt geïnstalleerd via pakketbeheer, kunt u het pakket upgraden met de apt upgrade
opdracht. Met de volgende opdrachten wordt het dotnet-sdk-7.0
pakket bijvoorbeeld bijgewerkt met de nieuwste versie:
sudo apt update
sudo apt upgrade dotnet-sdk-7.0
Tip
Als u uw Linux-distributie hebt bijgewerkt sinds u .NET installeert, moet u mogelijk de Microsoft-pakketopslagplaats opnieuw configureren. Voer de installatie-instructies voor uw huidige distributieversie uit om een upgrade uit te voeren naar de juiste pakketopslagplaats voor .NET-updates.
Problemen oplossen
Vanaf Ubuntu 22.04 kunt u een situatie tegenkomen waarin het lijkt alsof er slechts een deel van .NET beschikbaar is. U hebt bijvoorbeeld de runtime en de SDK geïnstalleerd, maar wanneer u alleen de runtime uitvoert dotnet --info
, wordt vermeld. Deze situatie kan betrekking hebben op het gebruik van twee verschillende pakketbronnen. De ingebouwde Ubuntu 22.04- en Ubuntu 22.10-pakketfeeds bevatten enkele versies van .NET, maar niet alle, en u hebt mogelijk ook .NET geïnstalleerd vanuit de Microsoft-feeds. Zie .NET-fouten met betrekking tot ontbrekende bestanden in Linux oplossen voor meer informatie over het oplossen van dit probleem.
APT-problemen
Deze sectie bevat informatie over veelvoorkomende fouten die kunnen optreden tijdens het gebruik van APT om .NET te installeren.
Kan pakket niet vinden
Belangrijk
Package Manager-installaties worden alleen ondersteund in de x64-architectuur . Andere architecturen, zoals Arm, moeten .NET op een andere wijze installeren, zoals met Snap, een installatiescript of via een handmatige binaire installatie.
Zie een van de volgende artikelen voor meer informatie over het installeren van .NET zonder pakketbeheer:
Kan bepaalde pakketten niet vinden
Notitie
Deze informatie is alleen van toepassing wanneer .NET wordt geïnstalleerd vanuit de Microsoft-pakketfeed.
Als u een foutbericht krijgt dat lijkt op Kan pakket {dotnet-package} niet vinden of sommige pakketten niet kunnen worden geïnstalleerd, voert u de volgende opdrachten uit.
Er zijn twee tijdelijke aanduidingen in de volgende set opdrachten.
{dotnet-package}
Dit vertegenwoordigt het .NET-pakket dat u installeert, zoalsaspnetcore-runtime-8.0
. Dit wordt gebruikt in de volgendesudo apt-get install
opdracht.{os-version}
Dit vertegenwoordigt de distributieversie die u gebruikt. Dit wordt gebruikt in dewget
onderstaande opdracht. De distributieversie is de numerieke waarde, zoals20.04
op Ubuntu of10
op Debian.
Verwijder eerst de pakketlijst:
sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update
Probeer vervolgens .NET opnieuw te installeren. Als dat niet werkt, kunt u een handmatige installatie uitvoeren met de volgende opdrachten:
sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && \
sudo apt-get install -y {dotnet-package}
Ophalen is mislukt
Tijdens het installeren van het .NET-pakket ziet u mogelijk een fout die vergelijkbaar is met Failed to fetch ... File has unexpected size ... Mirror sync in progress?
. Deze fout kan betekenen dat de pakketfeed voor .NET wordt bijgewerkt met nieuwere pakketversies en dat u het later opnieuw moet proberen. Tijdens een upgrade mag de pakketfeed langer dan 30 minuten niet beschikbaar zijn. Als u deze fout gedurende meer dan 30 minuten voortdurend ontvangt, kunt u een probleem indienen bij https://github.com/dotnet/core/issues.
Afhankelijkheden
Wanneer u installeert met pakketbeheer, worden deze bibliotheken voor u geïnstalleerd. Maar als u .NET handmatig installeert of als u een zelfstandige app publiceert, moet u deze afhankelijkheden installeren om uw app uit te voeren:
- libc6
- op te 10000
- toetsencc-s1 (voor 22.x)
- meansssapi-krb5-2
- libicu55 (voor 16.x)
- libicu60 (voor 18.x)
- libicu66 (voor 20.x)
- libicu70 (voor 22.04)
- libicu71 (voor 22.10)
- libicu72 (voor 23.04)
- liblttng-ust1 (voor 22.x)
- bibliothekensl1.0.0 (voor 16.x)
- bibliothekensl1.1 (voor 18.x, 20.x)
- bibliothekensl3 (voor 22.x)
- bibliothekentdc++6
- libunwind8 (voor 22.x)
- zlib1g
Afhankelijkheden kunnen worden geïnstalleerd met de apt install
opdracht. In het volgende fragment ziet u hoe u de zlib1g
bibliotheek installeert:
sudo apt install zlib1g
Als de .NET-app gebruikmaakt van de Assembly System.Drawing.Common , moet ook de installatie van de .NET-app worden uitgevoerd. Omdat System.Drawing.Common niet meer wordt ondersteund in Linux, werkt dit alleen op .NET 6 en vereist het instellen van de System.Drawing.EnableUnixSupport
runtimeconfiguratieswitch.
U kunt een recente versievan installeren door de Mono-opslagplaats aan uw systeem toe te voegen.
Volgende stappen
Feedback
Feedback verzenden en weergeven voor