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) | 7 |
6 (LTS) | 5 |
3.1 | |
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
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
- libicu70
- libssl3
- 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 libgdiplus aggiungendo 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.
Per informazioni su come usare l'interfaccia della riga di comando di .NET, vedere Panoramica dell'interfaccia della riga di comando di .NET.
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
Per informazioni su come usare l'interfaccia della riga di comando di .NET, vedere Panoramica dell'interfaccia della riga di comando di .NET.
Verificare i file binari scaricati
Dopo aver scaricato un programma di installazione o la versione binaria, 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 il file da una pagina di download ufficiale, viene visualizzato il checksum per il file in una casella di testo. Selezionare il pulsante Copia per copiare il valore del checksum negli Appunti.
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:
La pagina delle note sulla versione per .NET 8 su GitHub all'indirizzo https://github.com/dotnet/core/tree/main/release-notes/8.0#releases 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:
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.
Nella pagina della versione sono visibili la versione del runtime di .NET e di .NET SDK e un collegamento al file di checksum:
Fare clic con il pulsante destro del mouse sul collegamento Checksum e copiare il collegamento negli Appunti.
Aprire un terminale.
Usare
curl -O {link}
per scaricare il file di checksum.Sostituire il collegamento nel seguente comando con il collegamento copiato.
curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
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 cartellaDOTNET_ROOT/tools
:export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools