.NET installeren in Linux met behulp van een installatiescript of door binaire bestanden te extraheren

In dit artikel wordt gedemonstreerd hoe u de .NET SDK of .NET Runtime op Linux installeert met behulp van het installatiescript of door de binaire bestanden te extraheren. Zie .NET installeren in Linux voor een lijst met distributies die ondersteuning bieden voor het ingebouwde pakketbeheer.

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.

.NET-releases

Er zijn twee soorten ondersteunde releases, LTS-releases (Long Term Support) of Standard Term Support (STS). De kwaliteit van alle releases is hetzelfde. Het enige verschil is de lengte van de ondersteuning. LTS-releases krijgen drie jaar gratis ondersteuning en patches. STS-releases krijgen gedurende 18 maanden gratis ondersteuning en patches. Zie .NET-ondersteuningsbeleid voor meer informatie.

De volgende tabel bevat de ondersteuningsstatus van elke versie van .NET (en .NET Core):

✔️ Ondersteund ❌ Unsupported
8 (LTS) 5
7 (STS) 3.1
6 (LTS) 3,0
2.2
2.1
2.0
1.1
1.0

Afhankelijkheden

Het is mogelijk dat wanneer u .NET installeert, specifieke afhankelijkheden mogelijk niet worden geïnstalleerd, bijvoorbeeld wanneer u deze handmatig installeert. De volgende lijst bevat informatie over Linux-distributies die worden ondersteund door Microsoft en afhankelijkheden hebben die u mogelijk moet installeren. Controleer de distributiepagina voor meer informatie:

Zie Zelfstandige Linux-apps voor algemene informatie over de afhankelijkheden.

RPM-afhankelijkheden

Als uw distributie niet eerder werd vermeld en RPM is gebaseerd, hebt u mogelijk de volgende afhankelijkheden nodig:

  • krb5-bibliotheken
  • Libicu
  • openssl-bibliotheken

Als de OpenSSL-versie van de doelruntimeomgeving 1.1 of hoger is, installeert u compat-openssl10.

DEB-afhankelijkheden

Als uw distributie niet eerder werd vermeld en debian is gebaseerd, hebt u mogelijk de volgende afhankelijkheden nodig:

  • libc6
  • op te 10000
  • meansssapi-krb5-2
  • libicu67
  • bibliothekensl1.1
  • bibliothekentdc++6
  • zlib1g

Algemene afhankelijkheden

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 meestal een recente versie van microsoft MicrosoftPlus installeren door de Mono-opslagplaats aan uw systeem toe te voegen.

Scriptinstallatie

De dotnet-install-scripts worden gebruikt voor automatisering en niet-beheerdersinstallatie van de SDK en Runtime. U kunt het script downloaden van https://dot.net/v1/dotnet-install.sh. Wanneer .NET op deze manier is geïnstalleerd, moet u de afhankelijkheden installeren die vereist zijn voor uw Linux-distributie. Gebruik de koppelingen in het artikel .NET installeren in Linux voor uw specifieke Linux-distributie.

Belangrijk

Bash is vereist om het script uit te voeren.

U kunt het script downloaden met wget:

wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh

Voordat u dit script uitvoert, moet u ervoor zorgen dat u toestemming verleent om dit script uit te voeren als uitvoerbaar bestand:

chmod +x ./dotnet-install.sh

Het script is standaard ingesteld op het installeren van de nieuwste SDK-versie voor langetermijnondersteuning (LTS), namelijk .NET 8. Als u de nieuwste versie wilt installeren, die mogelijk geen (LTS)-versie is, gebruikt u de --version latest parameter.

./dotnet-install.sh --version latest

Als u .NET Runtime wilt installeren in plaats van de SDK, gebruikt u de --runtime parameter.

./dotnet-install.sh --version latest --runtime aspnetcore

U kunt een specifieke primaire versie installeren met de --channel parameter om de specifieke versie aan te geven. Met de volgende opdracht wordt .NET 8.0 SDK geïnstalleerd.

./dotnet-install.sh --channel 8.0

Zie de naslaginformatie over dotnet-install scripts voor meer informatie.

Zie Omgevingsvariabelen voor het hele systeem instellen om .NET in te schakelen op de opdrachtregel.

Handmatige installatie

Als alternatief voor pakketbeheerders kunt u de SDK en runtime downloaden en handmatig installeren. Handmatige installatie wordt vaak gebruikt als onderdeel van continue integratietests of op een niet-ondersteunde Linux-distributie. Voor een ontwikkelaar of gebruiker is het beter om een pakketbeheerder te gebruiken.

Download een binaire release voor de SDK of de runtime van een van de volgende sites. De .NET SDK bevat de bijbehorende runtime:

Pak het gedownloade bestand uit en gebruik de export opdracht om in te stellen DOTNET_ROOT op de locatie van de uitgepakte map en zorg ervoor dat .NET zich in PATH bevindt. Exporteren DOTNET_ROOT maakt de .NET CLI-opdrachten beschikbaar in de terminal. Zie .NET SDK en CLI-omgevingsvariabelen voor meer informatie over .NET-omgevingsvariabelen.

Verschillende versies van .NET kunnen worden geëxtraheerd naar dezelfde map, die naast elkaar bestaan.

Opmerking

De volgende opdrachten gebruiken Bash om de omgevingsvariabele DOTNET_ROOT in te stellen op de huidige werkmap, gevolgd door .dotnet. Deze map wordt gemaakt als deze niet bestaat. De DOTNET_FILE omgevingsvariabele is de bestandsnaam van de binaire versie van .NET die u wilt installeren. Dit bestand wordt uitgepakt naar de DOTNET_ROOT map. Zowel de DOTNET_ROOT map als tools de bijbehorende submap worden toegevoegd aan de PATH omgevingsvariabele.

Belangrijk

Als u deze opdrachten uitvoert, moet u de DOTNET_FILE waarde wijzigen in de naam van het binaire .NET-bestand dat u hebt gedownload.

DOTNET_FILE=dotnet-sdk-8.0.100-linux-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet

mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"

export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools

U kunt meer dan één versie van .NET installeren in dezelfde map.

U kunt .NET ook installeren in de basismap die is geïdentificeerd door de variabele of ~ het HOME pad:

export DOTNET_ROOT=$HOME/.dotnet

Gedownloade binaire bestanden controleren

Nadat u een installatieprogramma hebt gedownload, controleert u of het bestand niet is gewijzigd of beschadigd. U kunt de controlesom op uw computer controleren en deze vergelijken met wat er is gerapporteerd op de downloadwebsite.

Wanneer u een installatieprogramma of binair bestand downloadt vanaf een officiële downloadpagina, wordt de controlesom voor het bestand weergegeven. Selecteer de knop Kopiëren om de waarde van de controlesom naar het Klembord te kopiëren.

The .NET download page with checksum

Gebruik de sha512sum opdracht om de controlesom af te drukken van het bestand dat u hebt gedownload. Met de volgende opdracht wordt bijvoorbeeld de controlesom van het dotnet-sdk-8.0.100-linux-x64.tar.gz-bestand gerapporteerd:

$ sha512sum dotnet-sdk-8.0.100-linux-x64.tar.gz
13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5  dotnet-sdk-8.0.100-linux-x64.tar.gz

Vergelijk de controlesom met de waarde van de downloadsite.

Belangrijk

Hoewel in deze voorbeelden een Linux-bestand wordt weergegeven, is deze informatie ook van toepassing op macOS.

Een controlesombestand gebruiken om te valideren

De .NET-releaseopmerkingen bevatten een koppeling naar een controlesombestand dat u kunt gebruiken om het gedownloade bestand te valideren. In de volgende stappen wordt beschreven hoe u het controlesombestand downloadt en een binaire .NET-installatie valideert:

  1. De releaseopmerkingenpagina voor .NET 8 op GitHub bevat https://github.com/dotnet/core/tree/main/release-notes/8.0 een sectie met de naam Releases. De tabel in die sectie is gekoppeld aan de downloads en controlesombestanden voor elke .NET 8-release:

    The github release notes version table for .NET

  2. Selecteer de koppeling voor de versie van .NET die u hebt gedownload. In de vorige sectie is .NET SDK 8.0.100 gebruikt. Deze bevindt zich in de .NET 8.0.0-release.

  3. Op de releasepagina ziet u de .NET Runtime- en .NET SDK-versie en een koppeling naar het controlesombestand:

    The download table with checksums for .NET

  4. Kopieer de koppeling naar het controlesombestand.

  5. Gebruik het volgende script, maar vervang de koppeling om het juiste controlesombestand te downloaden:

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. Wanneer zowel het checksum-bestand als het .NET-releasebestand naar dezelfde map zijn gedownload, gebruikt u de sha512sum -c {file} --ignore-missing opdracht om het gedownloade bestand te valideren.

    Wanneer de validatie is geslaagd, ziet u dat het bestand wordt afgedrukt met de status OK :

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: OK
    

    Als u het bestand ziet dat is gemarkeerd als MISLUKT, is het bestand dat u hebt gedownload, niet geldig en mag het niet worden gebruikt.

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: FAILED
    sha512sum: WARNING: 1 computed checksum did NOT match
    sha512sum: 8.0.0-sha.txt: no file was verified
    

Omgevingsvariabelen instellen voor het hele systeem

Als u het vorige installatiescript hebt gebruikt, zijn de variabelen die zijn ingesteld alleen van toepassing op uw huidige terminalsessie. Voeg ze toe aan uw shell-profiel. Er zijn veel verschillende shells beschikbaar voor Linux en elk heeft een ander profiel. Voorbeeld:

  • Bash Shell: ~/.bash_profile of ~/.bashrc
  • Korn Shell: ~/.kshrc of .profile
  • Z Shell: ~/.zshrc of .zprofile

Stel de volgende twee omgevingsvariabelen in uw shell-profiel in:

  • DOTNET_ROOT

    Deze variabele is ingesteld op de map .NET is geïnstalleerd op, zoals $HOME/.dotnet:

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    Deze variabele moet zowel de DOTNET_ROOT map als de DOTNET_ROOT/tools map bevatten:

    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

Volgende stappen