Installare .NET in Linux usando uno script di installazione o estraendo i file binari

Questo articolo illustra come installare .NET SDK o il runtime di .NET in Linux usando lo script di installazione o estraendo i file binari. Per un elenco delle distribuzioni che supportano lo strumento di gestione pacchetti predefinito, vedere Installare .NET in Linux.

Installare l'SDK (che include il runtime) se si vogliono sviluppare app .NET. Se si vogliono solo eseguire app, è sufficiente installare il runtime. Se si installa il runtime, è consigliabile installare il runtime di ASP.NET Core, perché include sia il runtime di .NET che quello di ASP.NET Core.

Usare i comandi dotnet --list-sdks e dotnet --list-runtimes per vedere quali sono le versioni installate. Per altre informazioni, vedere Come verificare che .NET sia già installato.

Versioni di .NET

Esistono due tipi di versioni supportate: LTS (Long Term Support, supporto a lungo termine) e STS (Standard Term Support, supporto con durata standard). La qualità di tutte le versioni è identica. L'unica differenza consiste nella lunghezza del supporto. Le versioni LTS ottengono supporto gratuito e patch per 3 anni. Le versioni STS ottengono supporto gratuito e patch per 18 mesi. Per altre informazioni, vedere i criteri di supporto .NET.

La tabella seguente elenca lo stato di supporto di ciascuna versione di .NET (e .NET Core):

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

Dipendenze

È possibile che, quando si installa .NET, specifiche dipendenze non vengano installate. Questo avviene ad esempio con l'installazione manuale. Quello che segue è un elenco delle distribuzioni Linux supportate da Microsoft con dipendenze che potrebbe essere necessario installare. Per altre informazioni, vedere la pagina della distribuzione:

Per altre informazioni generali sulle dipendenze, vedere l'articolo sulle applicazioni Linux autonome.

Dipendenze di RPM

Se la distribuzione in uso non è presente nell'elenco precedente ed è basata su RPM, potrebbero essere necessarie le dipendenze seguenti:

  • krb5-libs
  • libicu
  • openssl-libs

Se la versione di OpenSSL dell'ambiente di runtime di destinazione è 1.1 o successiva, installare compat-openssl10.

Dipendenze di DEB

Se la distribuzione in uso non è presente nell'elenco precedente ed è basata su Debian, potrebbero essere necessarie le dipendenze seguenti:

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu67
  • libssl1.1
  • libstdc++6
  • zlib1g

Dipendenze comuni

Se l'app .NET usa l'assembly System.Drawing.Common, sarà necessario installare anche libgdiplus. Poiché System.Drawing.Common non è più supportato in Linux, funziona solo in .NET 6 e richiede di impostare l'opzione di configurazione del runtime System.Drawing.EnableUnixSupport.

In genere è possibile installare una versione recente di libgdiplusaggiungendo il repository Mono al sistema.

Installazione con script

Gli script dotnet-install vengono usati per l'automazione e le installazioni non amministrative dell'SDK e del runtime. È possibile scaricare lo script da https://dot.net/v1/dotnet-install.sh. Quando .NET viene installato in questo modo, è necessario installare le dipendenze richieste dalla distribuzione Linux. Usare i collegamenti disponibili nell'articolo Installare .NET in Linux per la propria specifica distribuzione Linux.

Importante

Per eseguire lo script è necessario Bash.

È possibile scaricare lo script con wget:

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

Prima di eseguirlo, assicurarsi di concedere l'autorizzazione per l'esecuzione di questo script come eseguibile:

chmod +x ./dotnet-install.sh

Per impostazione predefinita, lo script installa la versione LTS dell'SDK, ovvero .NET 8. Per installare l'ultima versione, che potrebbe non essere una versione LTS, usare il parametro --version latest.

./dotnet-install.sh --version latest

Per installare il runtime di .NET anziché l'SDK, usare il parametro --runtime.

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

È possibile installare una versione principale specifica usando il parametro --channel per indicare la versione specifica. Il comando seguente installa .NET 8.0 SDK.

./dotnet-install.sh --channel 8.0

Per altre informazioni, vedere le informazioni di riferimento sugli script dotnet-install.

Per abilitare .NET nella riga di comando, vedere Impostare le variabili di ambiente a livello di sistema.

Installazione manuale

In alternativa agli strumenti di gestione pacchetti, è possibile scaricare e installare manualmente l'SDK e il runtime. L'installazione manuale viene comunemente usata nell'ambito dei test di integrazione continua o in una distribuzione Linux non supportata. Per uno sviluppatore o un utente, è preferibile usare uno strumento di gestione pacchetti.

Scaricare una versione binaria per l'SDK o il runtime da uno dei siti seguenti. .NET SDK include il runtime corrispondente:

Estrarre il file scaricato e usare il comando export per impostare DOTNET_ROOT sul percorso della cartella estratta e quindi assicurarsi che .NET sia in PATH. L'esportazione di DOTNET_ROOT rende disponibili i comandi dell'interfaccia della riga di comando di .NET nel terminale. Per altre informazioni sulle variabili di ambiente .NET, vedere Variabili di ambiente di .NET SDK e dell'interfaccia della riga di comando.

È possibile estrarre nella stessa cartella versioni diverse di .NET, che coesistono affiancate.

Esempio

I comandi seguenti usano Bash per impostare la variabile di ambiente DOTNET_ROOT sulla directory di lavoro corrente seguita da .dotnet. Se la directory non esiste, verrà creata. La variabile di ambiente DOTNET_FILE è il nome file della versione binaria di .NET da installare. Questo file viene estratto nella directory DOTNET_ROOT. Sia la directory DOTNET_ROOT che la relativa sottodirectory tools vengono aggiunte alla variabile di ambiente PATH.

Importante

Se si eseguono questi comandi, ricordarsi di modificare il valore DOTNET_FILE nel nome del file binario .NET scaricato.

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

È possibile installare più versioni di .NET nella stessa cartella.

È anche possibile installare .NET nella home directory identificata dalla variabile HOME o dal percorso ~:

export DOTNET_ROOT=$HOME/.dotnet

Verificare i file binari scaricati

Dopo aver scaricato un programma di installazione, verificare che il file non sia stato modificato o danneggiato. È possibile verificare il checksum nel computer e quindi confrontarlo con ciò che è stato segnalato nel sito Web di download.

Quando si scarica un programma di installazione o un file binario da una pagina di download ufficiale, viene visualizzato il checksum per il file. Selezionare il pulsante Copia per copiare il valore del checksum negli Appunti.

The .NET download page with checksum

Usare il comando sha512sum per stampare il checksum del file scaricato. Ad esempio, il comando seguente restituisce il checksum del file dotnet-sdk-8.0.100-linux-x64.tar.gz:

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

Confrontare il checksum con il valore fornito dal sito di download.

Importante

Anche se in questi esempi viene mostrato un file Linux, le stesse informazioni si applicano a macOS.

Usare un file di checksum per la convalida

Le note sulla versione di .NET contengono un collegamento a un file di checksum che è possibile usare per convalidare il file scaricato. I passaggi seguenti descrivono come scaricare il file di checksum e convalidare un file binario di installazione di .NET:

  1. La pagina delle note sulla versione per .NET 8 su GitHub all'indirizzo https://github.com/dotnet/core/tree/main/release-notes/8.0 contiene una sezione denominata Releases. La tabella in questa sezione contiene collegamenti ai download e ai file di checksum per ogni versione di .NET 8:

    The github release notes version table for .NET

  2. Selezionare il collegamento per la versione di .NET scaricata. La sezione precedente usa .NET SDK 8.0.100, che si trova nella versione .NET 8.0.0.

  3. Nella pagina della versione sono visibili la versione del runtime di .NET e di .NET SDK e un collegamento al file di checksum:

    The download table with checksums for .NET

  4. Copiare il collegamento al file di checksum.

  5. Usare lo script seguente, ma sostituire il collegamento per scaricare il file di checksum appropriato:

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. Con il file di checksum e il file della versione di .NET scaricati nella stessa directory, usare il comando sha512sum -c {file} --ignore-missing per convalidare il file scaricato.

    Quando la convalida viene superata, viene visualizzato il file stampato con lo stato OK:

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

    Se il file viene contrassegnato come FAILED, il file scaricato non è valido e non deve essere usato.

    $ 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
    

Impostare le variabili di ambiente a livello di sistema

Se è stato usato lo script di installazione precedente, le variabili impostate si applicano solo alla sessione del terminale corrente. Aggiungerle al profilo della shell. Sono disponibili molte shell diverse per Linux e ognuna ha un profilo diverso. Ad esempio:

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

Impostare le due variabili di ambiente seguenti nel profilo della shell:

  • DOTNET_ROOT

    Questa variabile è impostata sulla cartella in cui è stato installato .NET, ad esempio $HOME/.dotnet:

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    Questa variabile deve includere sia la cartella DOTNET_ROOT sia la cartella DOTNET_ROOT/tools:

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

Passaggi successivi