Installeer de .NET SDK of de .NET Runtime op Debian

In dit artikel wordt beschreven hoe u .NET installeert op Debian. Wanneer een Debian-versie niet meer wordt ondersteund, wordt .NET niet meer ondersteund met die versie. Deze instructies kunnen u echter helpen om .NET uit te voeren op deze versies, ook al wordt dit niet ondersteund.

Installeer de SDK (inclusief de runtime) als u .NET-apps wilt ontwikkelen. Als u alleen apps hoeft uit te voeren, installeert u runtime. Als u runtime installeert, raden we u aan de ASP.NET Core Runtime te installeren, omdat deze zowel .NET- als ASP.NET Core-runtimes bevat.

Gebruik de dotnet --list-sdks en dotnet --list-runtimes opdrachten om te zien welke versies zijn geïnstalleerd. Zie Controleren of .NET al is geïnstalleerd voor meer informatie.

Belangrijk

Het gebruik van een pakketbeheerder om .NET te installeren vanuit de Microsoft-pakketfeed ondersteunt alleen de x64-architectuur . Andere architecturen, zoals Arm, worden niet ondersteund door de Microsoft-pakketfeed.

Zie een van de volgende artikelen voor meer informatie over het installeren van .NET zonder pakketbeheer:

Ondersteunde distributies

De volgende tabel is een lijst met momenteel ondersteunde .NET-releases en de versies van Debian waarop ze worden ondersteund. Deze versies blijven ondersteund totdat de versie van .NET het einde van de ondersteuning bereikt of de versie van Debian het einde van de levensduur bereikt.

Debian .NET
12 8, 7, 6
11 8, 7, 6
10 7, 6

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

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.

Debian 12

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:

wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Installeer de SDK

Met de .NET SDK kunt u apps ontwikkelen met .NET. Als u de .NET SDK installeert, hoeft u de bijbehorende runtime niet te installeren. Voer de volgende opdrachten uit om de .NET SDK te installeren:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

De runtime installeren

Met de ASP.NET Core Runtime kunt u apps uitvoeren die zijn gemaakt met .NET waarvoor de runtime niet is opgegeven. Met de volgende opdrachten wordt de ASP.NET Core Runtime geïnstalleerd. Dit is de meest compatibele runtime voor .NET. Voer in de terminal de volgende opdrachten uit:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

Als alternatief voor de ASP.NET Core Runtime kunt u de .NET Runtime installeren. Deze bevat geen ondersteuning voor ASP.NET Core: vervang aspnetcore-runtime-8.0 in de vorige opdracht door dotnet-runtime-8.0:

sudo apt-get install -y dotnet-runtime-8.0

Debian 11

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:

wget https://packages.microsoft.com/config/debian/11/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Installeer de SDK

Met de .NET SDK kunt u apps ontwikkelen met .NET. Als u de .NET SDK installeert, hoeft u de bijbehorende runtime niet te installeren. Voer de volgende opdrachten uit om de .NET SDK te installeren:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-8.0

De runtime installeren

Met de ASP.NET Core Runtime kunt u apps uitvoeren die zijn gemaakt met .NET waarvoor de runtime niet is opgegeven. Met de volgende opdrachten wordt de ASP.NET Core Runtime geïnstalleerd. Dit is de meest compatibele runtime voor .NET. Voer in de terminal de volgende opdrachten uit:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-8.0

Als alternatief voor de ASP.NET Core Runtime kunt u de .NET Runtime installeren. Deze bevat geen ondersteuning voor ASP.NET Core: vervang aspnetcore-runtime-8.0 in de vorige opdracht door dotnet-runtime-8.0:

sudo apt-get install -y dotnet-runtime-8.0

Debian 10

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:

wget https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

Installeer de SDK

Met de .NET SDK kunt u apps ontwikkelen met .NET. Als u de .NET SDK installeert, hoeft u de bijbehorende runtime niet te installeren. Voer de volgende opdrachten uit om de .NET SDK te installeren:

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-7.0

De runtime installeren

Met de ASP.NET Core Runtime kunt u apps uitvoeren die zijn gemaakt met .NET waarvoor de runtime niet is opgegeven. Met de volgende opdrachten wordt de ASP.NET Core Runtime geïnstalleerd. Dit is de meest compatibele runtime voor .NET. Voer in de terminal de volgende opdrachten uit:

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-7.0

Als alternatief voor de ASP.NET Core Runtime kunt u de .NET Runtime installeren. Deze bevat geen ondersteuning voor ASP.NET Core: vervang aspnetcore-runtime-7.0 in de vorige opdracht door dotnet-runtime-7.0:

sudo apt-get install -y dotnet-runtime-7.0

Andere versies installeren

Alle versies van .NET zijn beschikbaar voor download op https://dotnet.microsoft.com/download/dotnet, maar vereisen handmatige installatie. U kunt proberen om pakketbeheer te gebruiken om een andere versie van .NET te installeren. De aangevraagde versie is echter mogelijk niet beschikbaar.

De pakketten die zijn toegevoegd aan package manager-feeds, worden genoemd in een hackable-indeling, bijvoorbeeld: {product}-{type}-{version}.

  • product
    Het type .NET-product dat moet worden geïnstalleerd. Geldige opties zijn:

    • dotnet
    • aspnetcore
  • type
    Hiermee kiest u de SDK of de runtime. Geldige opties zijn:

    • sdk (alleen beschikbaar voor het dotnet-product )
    • runtime
  • version
    De versie van de SDK of runtime die moet worden geïnstalleerd. Geldige opties zijn vrijgegeven versies, zoals:

    • 8.0
    • 6.0
    • 3.1
    • 2.1

    Het is mogelijk dat de SDK/runtime die u probeert te downloaden, niet beschikbaar is voor uw Linux-distributie. Zie .NET installeren in Linux voor een lijst met ondersteunde distributies.

Voorbeelden

  • Installeer de ASP.NET Core 8.0-runtime: aspnetcore-runtime-8.0
  • Installeer de .NET Core 2.1-runtime: dotnet-runtime-2.1
  • Installeer de .NET 5 SDK: dotnet-sdk-5.0
  • Installeer de .NET Core 3.1 SDK: dotnet-sdk-3.1

Notitie

Sommige pakketten zijn mogelijk niet beschikbaar in uw Linux-distributie.

Pakket ontbreekt

Als de combinatie van pakketversie niet werkt, is deze niet beschikbaar. Er is bijvoorbeeld geen ASP.NET Core SDK. De SDK-onderdelen voor ASP.NET Core zijn opgenomen in de .NET SDK. De waarde aspnetcore-sdk-8.0 is onjuist en moet zijn dotnet-sdk-8.0. Zie .NET-afhankelijkheden en -vereisten voor een lijst met Linux-distributies die worden ondersteund door .NET.

APT gebruiken om .NET bij te werken

Wanneer er een nieuwe patchrelease beschikbaar is voor .NET, kunt u deze gewoon upgraden via APT met de volgende opdrachten:

sudo apt-get update
sudo apt-get upgrade

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.

Probleemoplossing

Deze sectie bevat informatie over veelvoorkomende fouten die u kunt krijgen tijdens het gebruik van APT om .NET te installeren.

Kan pakket niet vinden

Belangrijk

Het gebruik van een pakketbeheerder om .NET te installeren vanuit de Microsoft-pakketfeed ondersteunt alleen de x64-architectuur . Andere architecturen, zoals Arm, worden niet ondersteund door de Microsoft-pakketfeed.

Zie een van de volgende artikelen voor meer informatie over het installeren van .NET zonder pakketbeheer:

Kan bepaalde pakketten niet vinden

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, zoals aspnetcore-runtime-8.0. Dit wordt gebruikt in de volgende sudo apt-get install opdracht.

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:

Als u Debian 12 of hoger gebruikt, probeert u de volgende opdrachten:

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

Als u een Debian-versie vóór 12 gebruikt, probeert u de volgende opdrachten:

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

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 ervoor zorgen dat deze bibliotheken zijn geïnstalleerd:

  • libc6
  • aantalxcc1 (voor 10.x)
  • xcc-s1 (voor 11.x en 12.x)
  • meansssapi-krb5-2
  • libicu63 (voor 10.x)
  • libicu67 (voor 11.x)
  • libicu72 (voor 12.x)
  • bibliothekensl1.1
  • bibliothekentdc++6
  • zlib1g

Afhankelijkheden kunnen worden geïnstalleerd met de apt install opdracht. In het volgende fragment ziet u hoe u de libc6 bibliotheek installeert:

sudo apt install libc6

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