Condividi tramite


Installare .NET nella guida decisionale di Ubuntu

Questo articolo illustra come installare .NET in Ubuntu. A partire da Ubuntu 22.04, la maggior parte delle versioni supportate di .NET è disponibile nel feed Ubuntu predefinito. Il repository di pacchetti backports di Ubuntu .NET contiene le versioni .NET supportate rimanenti.

Canonical ha assunto il controllo della pubblicazione .NET in Ubuntu. A partire da Ubuntu 22.04, Microsoft non distribuisce più .NET per Ubuntu al repository dei pacchetti Microsoft.

Distribuzioni supportate

La tabella seguente è un elenco delle versioni attualmente supportate .NET e delle versioni di Ubuntu in cui sono supportate. Ogni collegamento passa alla pagina specifica della versione di Ubuntu con istruzioni su come installare .NET per tale versione di Ubuntu.

Ubuntu Versioni di .NET supportate Disponibile in
Feed integrato di Ubuntu
Disponibile in
backport .NET
Ubuntu Feed
Disponibile in
Feed Microsoft
25.10 10.0, 9.0, 8.0 10.0, 9.0, 8.0 Nessuno Nessuno
25.04 10.0, 9.0, 8.0 10.0, 9.0, 8.0 Nessuno Nessuno
24.04 (LTS) 10.0, 9.0, 8.0 10.0, 8.0 9.0, 7.0, 6.0 Nessuno
22.04 (LTS) 10.0, 9.0, 8.0 8.0, 7.0, 6.0 10,0, 9,0 8.0, 7.0, 6.0, 3.1

Quando una versione Ubuntu raggiunge la fine del periodo di supporto, .NET non è più supportata con tale versione specifica di Ubuntu.

Canonical supporta le versioni di .NET nel feed predefinito di Ubuntu per l'intero ciclo di vita di quella versione di Ubuntu, anche oltre la durata del supporto fornita da Microsoft, e offre supporto al meglio delle proprie capacità per le versioni di .NET nel repository dei pacchetti di backport .NET, che non si estende oltre la durata del supporto fornita da Microsoft.

Le versioni seguenti di .NET sono ❌ non più supportate:

  • .NET 7
  • .NET 6
  • .NET 5
  • .NET Core 3.1
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0

Considerazioni sull'aggiornamento di Ubuntu

Aggiornamento di Ubuntu alla versione 22.04 o successiva? Provare prima a disinstallare .NET.

Se è stato usato uno strumento di gestione pacchetti per installare .NET dal repository dei pacchetti Microsoft, si otterrà un problema di combinazione di pacchetti dopo l'aggiornamento di Ubuntu. Ora che Canonical pubblica .NET nei feed di pacchetti per Ubuntu 22.04 (e versioni successive), la gestione pacchetti non conoscerà la versione di .NET installata in precedenza. Non è possibile aggiornare i pacchetti alla .NET più recente. Prima di tutto, disinstallarli, quindi reinstallarli dal repository del pacchetto Ubuntu.

Decidere come installare .NET

Quando la versione di Ubuntu supporta .NET tramite il feed Ubuntu predefinito o .NET backport, il supporto per tali build di .NET viene fornito da Canonical e le compilazioni potrebbero essere ottimizzate per carichi di lavoro diversi. Microsoft fornisce supporto per i pacchetti nel feed del repository di pacchetti Microsoft.

Avvertimento

È consigliabile scegliere tra i feed di Ubuntu e Microsoft per la provenienza dei pacchetti .NET. Non combinare pacchetti .NET da più repository di pacchetti, perché ciò comporta problemi quando le app tentano di risolvere una versione specifica di .NET.

Metodo Vantaggi Svantaggi
Gestore di pacchetti
(integrato
Ubuntu predefinito)
  • In genere è disponibile l'ultima versione.
  • Le patch sono disponibili immediatamente.
  • Le dipendenze sono incluse.
  • La rimozione è facile.
  • Le versioni disponibili .NET sono supportate per il periodo di supporto della versione specifica di Ubuntu.
  • Supporto per le piattaforme IBM System Z e Power per .NET 8 e versioni successive.
  • Non disponibile per Ubuntu 16.04, 18.04, 20.04.
  • Le versioni di .NET disponibili variano in base alla versione di Ubuntu.
  • Le versioni di anteprima non sono disponibili.
Gestore di pacchetti
(.NET backporti
Ubuntu predefinito)
  • Contiene qualsiasi versione supportata, che non è contenuta nel feed Ubuntu predefinito.
  • Le patch sono disponibili immediatamente.
  • Le dipendenze sono incluse.
  • La rimozione è facile.
  • Compatibile con il feed Ubuntu predefinito.
  • Non disponibile per Ubuntu 16.04, 18.04, 20.04.
  • Richiede la registrazione del repository di pacchetti di backport di Ubuntu .NET.
  • Le versioni di anteprima non sono disponibili.
Gestore di pacchetti
Feed di Microsoft
  • Le versioni supportate sono sempre disponibili.
  • Le patch sono disponibili immediatamente.
  • Le dipendenze sono incluse.
  • La rimozione è facile.
  • Non disponibile per Ubuntu 24.04+.
  • Richiede la registrazione del repository di pacchetti Microsoft.
  • Le versioni di anteprima non sono disponibili.
  • Supporta solo Ubuntu x64.
Script\Estrazione manuale
  • Controllare dove è installato .NET.
  • Sono disponibili versioni di anteprima.
  • Installare manualmente gli aggiornamenti.
  • Installare manualmente le dipendenze.
  • Rimozione manuale.

Usare le sezioni seguenti per determinare come installare .NET:

Uso Ubuntu 22.04 o versione successiva e ho solo bisogno di .NET

Se non sono necessari altri pacchetti Microsoft, ad esempio powershell, mdatp o mssql, installare .NET tramite il feed Ubuntu. Per ulteriori informazioni, consultare le seguenti pagine:

Importante

Se si usa .NET 8 SDK e Ubuntu 22.04, tenere presente che le versioni dell'SDK offerte da Canonical sono sempre nella banda delle funzionalità .1xx. Se si vuole usare una versione più recente della banda di funzionalità, usare il feed Microsoft per installare l'SDK. Assicurarsi di esaminare le informazioni contenute nell'articolo .NET pacchetti in Linux per comprendere le implicazioni del passaggio tra feed di repository.

Se si intende installare il repository Microsoft per usare altri pacchetti Microsoft, ad esempio powershell, mdatp o mssql, è necessario deprioritizzare i pacchetti di .NET forniti dal repository Microsoft. Per istruzioni su come deprioritizzare i pacchetti, vedere La distribuzione di Linux fornisce pacchetti .NET e si vuole usarli.

Sto usando una versione di Ubuntu precedente alla 22.04

Usare le istruzioni nella sezione specifica della versione di installare .NET SDK o .NET Runtime su Ubuntu.

Vedere la sezione Distribuzioni supportate per altre informazioni sulle versioni di .NET supportate per la versione di Ubuntu. Se si sta installando una versione non supportata, vedere Registrare il repository di pacchetti Microsoft.

Si usano altri pacchetti Microsoft, ad esempio powershell, mdatp o mssql

Se la versione di Ubuntu supporta .NET tramite feed Ubuntu, è necessario decidere quale feed deve installare .NET. La sezione Distribuzioni supportate fornisce una tabella che elenca le versioni di .NET disponibili nei feed del pacchetto.

Se si desidera ottenere i pacchetti .NET da un feed Ubuntu, è necessario depriorizzare i pacchetti .NET forniti dal repository Microsoft. Per istruzioni su come deprioritizzare i pacchetti, vedere La distribuzione di Linux fornisce pacchetti .NET e si vuole usarli.

Si vuole creare un'app .NET

Usare le stesse origini dei pacchetti per l'SDK e per il runtime. È consigliabile installare .NET tramite un feed Ubuntu. Se tuttavia si vuole installare .NET da un'altra origine(ad esempio, il repository di pacchetti Microsoft per accedere a bande di funzionalità SDK più elevate, è necessario disinstallare .NET, configurare gestione pacchetti per ignorare .NET pacchetti dal feed Ubuntu e reinstallarlo dall'altra origine.

Esaminare gli altri suggerimenti nella sezione Decide come installare .NET.

Si vuole eseguire un'app .NET in uno scenario di integrazione continua, cloud o contenitore

Se la versione di Ubuntu fornisce la versione .NET necessaria, installarla da un feed Ubuntu. In caso contrario, registrare il repository di pacchetti Microsoft e installare .NET da tale repository. Esaminare le informazioni nella sezione Distribuzioni supportate.

Se la versione di .NET desiderata non è disponibile, provare a usare lo script dotnet-install.

La distribuzione di Ubuntu non include la versione .NET desiderata oppure è necessaria una versione .NET non supportata

È consigliabile usare APT e il repository di pacchetti Microsoft. Per altre informazioni, vedere la sezione Registrare e installare con il repository di pacchetti Microsoft.

Si vuole installare una versione di anteprima

Usare uno dei modi seguenti per installare .NET:

Non si vuole usare APT

Se si preferisce un'installazione automatica, usare lo script di installazione di Linux.

Se si vuole il controllo completo sull'esperienza di installazione .NET, scaricare un tarball e installare manualmente .NET. Per altre informazioni, vedere Installazione manuale.

Sto usando una CPU basata su ARM

Se la versione di Ubuntu fornisce la versione .NET necessaria, installarla dal feed predefinito. Esaminare le informazioni nella sezione Distribuzioni supportate.

Se la versione di .NET desiderata non è disponibile, provare a usare uno dei modi seguenti per installare .NET:

Uso la piattaforma IBM System Z o Power

A partire da .NET 8 in Ubuntu 22.04, Canonical supporta .NET per le piattaforme IBM System Z e Power. Questo supporto continuerà per ogni rilascio .NET futuro.

Installare .NET tramite il feed Ubuntu predefinito. Per altre informazioni, vedere la pagina seguente:

Registrare un repository di pacchetti

A seconda della versione di Ubuntu, potrebbe essere necessario registrare i backport Ubuntu o il repository di pacchetti Microsoft.

Importante

Assicurarsi di prendere in considerazione le informazioni nella sezione Decide come installare .NET sezione.

Repository di pacchetti backports di Ubuntu .NET

Il repository dei pacchetti backport di Ubuntu .NET fornisce versioni di .NET che non sono disponibili nel feed interno predefinito di Ubuntu. Canonical gestisce i pacchetti contenuti in questo repository di pacchetti e offre la migliore assistenza possibile, che non si estende oltre la durata del supporto fornito da Microsoft o il periodo di supporto della versione di Ubuntu interessata.

Questo repository di pacchetti è supportato in Ubuntu 24.04 LTS (Noble Numbat) e Ubuntu 22.04 LTS (Jammy Jellyfish). La sezione Distribuzioni supportate fornisce una tabella che elenca le versioni di .NET disponibili nel feed del pacchetto. Per altre informazioni, vedere Ubuntu .NET repository di pacchetti backport.

Per aggiungere questo repository di pacchetti, eseguire i comandi seguenti:

sudo add-apt-repository ppa:dotnet/backports
sudo apt update

Registrare il repository dei pacchetti di backport di Ubuntu .NET

Aprire un terminale ed eseguire il comando seguente:

sudo add-apt-repository ppa:dotnet/backports

Annotazioni

Il repository di pacchetti backports di Ubuntu .NET è compatibile con il feed predefinito di Ubuntu. Non è quindi necessario configurare la gestione pacchetti per ignorare i pacchetti .NET nel feed Ubuntu predefinito.

Rimuovere la registrazione del repository di pacchetti di backport Ubuntu .NET

Se non si vogliono più utilizzare pacchetti dal repository di pacchetti di backport Ubuntu .NET è possibile annullarne la registrazione. Aprire un terminale ed eseguire il comando seguente:

sudo add-apt-repository --remove ppa:dotnet/backports

Importante

La cancellazione della registrazione del repository dei pacchetti di backport di .NET su Ubuntu non disinstalla alcun pacchetto.

Comando add-apt-repository non trovato

L'utilità add-apt-repository(1) è preinstallata nella maggior parte delle installazioni di Ubuntu.

Se si riceve un messaggio di errore in cui viene segnalato che il comando add-apt-repository non è stato trovato, è necessario installare il pacchetto software-properties-common, che fornisce questo comando. Aprire un terminale ed eseguire i comandi seguenti:

sudo apt update
sudo apt install software-properties-common

Registrare il repository di pacchetti Microsoft

Importante

Questo vale solo per le versioni di Ubuntu precedenti alla 24.04. A partire da Ubuntu 24.04, Microsoft non pubblica più i pacchetti nel repository dei pacchetti Microsoft. Usare la tabella supported distributions per determinare il modo migliore per installare .NET.

Il repository di pacchetti Microsoft contiene tutte le versioni di .NET che in precedenza erano o sono attualmente supportate con la versione di Ubuntu. Se la versione di Ubuntu fornisce pacchetti .NET, sarà necessario deprioritizzare i pacchetti Ubuntu e usare il repository Microsoft. Per istruzioni su come deprioritizzare i pacchetti, vedere Ho bisogno di una versione di .NET che non è fornita dalla mia distribuzione Linux.

Importante

Il repository di pacchetti Microsoft supporta solo pacchetti .NET destinati all'architettura x64. Altre architetture, ad esempio Arm, devono installare .NET con altri mezzi, ad esempio con lo script installer o tramite installazione manuale.

Le versioni di anteprima non sono disponibili nel repository di pacchetti Microsoft. Per altre informazioni, vedere Installare le versioni di anteprima.

Attenzione

È consigliabile usare un solo repository per gestire tutte le installazioni di .NET. Se in precedenza è stato installato .NET con il repository Ubuntu, è necessario pulire il sistema dei pacchetti .NET e configurare APT per ignorare i feed Ubuntu. Per altre informazioni su come eseguire questa operazione, vedere I necessita di una versione di .NET non fornita dalla distribuzione Linux.

L'installazione con APT può essere eseguita con pochi comandi. Prima di installare .NET, eseguire i comandi seguenti per aggiungere la chiave di firma del pacchetto Microsoft all'elenco di chiavi attendibili e aggiungere il repository dei pacchetti.

Aprire un terminale ed eseguire i comandi seguenti:

# Get OS version info which adds the $ID and $VERSION_ID variables
source /etc/os-release

# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/$ID/$VERSION_ID/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

Suggerimento

Lo script precedente è stato scritto per Ubuntu e potrebbe non funzionare se si usa una distribuzione derivata, ad esempio Linux Mint. È probabile che alle $ID variabili e $VERSION_ID non vengano assegnati i valori corretti, rendendo non valido l'URI per il wget comando. $ID Corrisponde alla distribuzione ( ad esempio , ubuntu), mentre $VERSION_ID esegue il mapping alla versione specifica di Ubuntu per cui si vogliono ottenere pacchetti, ad esempio 22.04 o 23.10.

Ad esempio, in Ubuntu 22.04 $ID sarebbe ubuntu e $VERSION_ID sarebbe 22.04. L'URL sarà simile al seguente: https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb.

È possibile usare un Web browser e passare a https://packages.microsoft.com/config/ubuntu/ per vedere quali sono le versioni di Ubuntu disponibili da usare come valore $repo_version.

Installare, disinstallare o aggiornare .NET

Le sezioni seguenti descrivono come gestire .NET tramite gestione pacchetti.

Installare .NET

Installare .NET tramite la gestione pacchetti con il comando sudo apt install <package-name>. Sostituire <package-name> con il nome del pacchetto .NET da installare. Ad esempio, per installare .NET SDK 10.0, usare il comando sudo apt install dotnet-sdk-10.0. La tabella seguente elenca i pacchetti di .NET attualmente supportati (che might variano in base alla versione di Ubuntu:

Prodotto TIPO Pacchetto
10.0 ASP.NET Core Tempo di esecuzione aspnetcore-runtime-10.0
10.0 .NET Tempo di esecuzione dotnet-runtime-10.0
10.0 .NET SDK dotnet-sdk-10.0
9.0 ASP.NET Core Tempo di esecuzione aspnetcore-runtime-9.0
9.0 .NET Tempo di esecuzione dotnet-runtime-9.0
9.0 .NET SDK dotnet-sdk-9.0
8.0 ASP.NET Core Tempo di esecuzione aspnetcore-runtime-8.0
8.0 .NET Tempo di esecuzione dotnet-runtime-8.0
8.0 .NET SDK dotnet-sdk-8.0

Suggerimento

Se non si creano app .NET, installare il runtime di ASP.NET Core perché include il runtime di .NET e supporta anche le app ASP.NET Core.

Alcune variabili di ambiente influiscono sulla modalità di esecuzione .NET dopo l'installazione. Per altre informazioni, vedere .NET SDK e variabili di ambiente dell'interfaccia della riga di comando.

Disinstallare .NET

Se è stato installato .NET tramite una gestione pacchetti, disinstallare nello stesso modo con il comando apt-get remove:

sudo apt-get remove dotnet-sdk-6.0

Per altre informazioni, vedere Uninstall .NET.

Aggiornare .NET

Se è stato installato .NET tramite una gestione pacchetti, è possibile aggiornare il pacchetto con il comando apt upgrade. Ad esempio, i comandi seguenti aggiornano il pacchetto dotnet-sdk-10.0 con la versione più recente:

sudo apt update
sudo apt upgrade dotnet-sdk-10.0

Suggerimento

Se è stata aggiornata la distribuzione di Linux dall'installazione di .NET, potrebbe essere necessario riconfigurare il repository dei pacchetti Microsoft. Eseguire le istruzioni di installazione per la versione di distribuzione corrente per eseguire l'aggiornamento al repository di pacchetti appropriato per gli aggiornamenti .NET.

Gestire le versioni di anteprima

Le sezioni seguenti descrivono come installare e disinstallare le versioni di anteprima di .NET.

Installare le versioni di anteprima

Le versioni candidate di anteprima e rilascio di .NET non sono disponibili nei repository di pacchetti. È possibile installare anteprime e rilasciare candidati di .NET in uno dei modi seguenti:

Rimuovere le versioni di anteprima

Quando si usa una gestione pacchetti per gestire l'installazione di .NET, è possibile che si verifichi un conflitto se in precedenza è stata installata una versione di anteprima. La gestione pacchetti può interpretare la versione non di anteprima come una versione precedente di .NET. Per installare la versione non di anteprima, disinstallare prima di tutto le versioni di anteprima. Per altre informazioni sulla disinstallazione di .NET, vedere Come rimuovere .NET Runtime e SDK.

Risoluzione dei problemi

A partire da Ubuntu 22.04, si potrebbe riscontrare una situazione in cui sembra che sia disponibile solo una parte di .NET. Ad esempio, sono stati installato il runtime e l'SDK, ma quando si esegue dotnet --info viene elencato solo il runtime. Questa situazione può essere correlata all'uso di due origini dei pacchetti diverse. I feed di pacchetti Ubuntu 22.04 e Ubuntu 22.10 predefiniti includono alcune versioni di .NET, ma non tutte, e potrebbe essere stato installato anche .NET dai feed Microsoft. Per altre informazioni su come risolvere questo problema, vedere Risoluzione degli errori .NET relativi ai file mancanti in Linux.

Problemi relativi ad APT

Questa sezione fornisce informazioni sugli errori comuni che possono verificarsi durante l'uso di APT per installare .NET.

Non è possibile trovare il pacchetto

Importante

L'uso di una gestione pacchetti per installare .NET dal feed del pacchetto Microsoft supporta solo l'architettura x64. Altre architetture, ad esempio Arm64, non sono supportate dal feed di pacchetti Microsoft. Usare i feed Ubuntu o installare manualmente .NET. Prestare attenzione ai problemi di confusione dei pacchetti quando si usano più feed. Per ulteriori informazioni, vedere .NET problemi di gestione dei pacchetti su Linux.

Per altre informazioni sull'installazione di .NET senza gestione pacchetti, vedere uno degli articoli seguenti:

Non è possibile trovare il pacchetto\Non è stato possibile installare alcuni pacchetti

Annotazioni

Queste informazioni si applicano solo quando .NET viene installato dal feed di pacchetti Microsoft.

Se viene visualizzato un messaggio di errore simile a Non è possibile trovare il pacchetto {dotnet-package} o Non è stato possibile installare alcuni pacchetti, eseguire i comandi seguenti.

Nel seguente set di comandi sono presenti due segnaposto.

  • {dotnet-package}
    Rappresenta il pacchetto .NET che si sta installando, ad esempio aspnetcore-runtime-8.0. Viene usato nel comando sudo apt-get install seguente.

Prima di tutto, provare a ripulire l'elenco di pacchetti:

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Provare quindi a installare di nuovo .NET. Se la soluzione non funziona, è possibile eseguire un'installazione manuale con i comandi seguenti:

Se si usa Ubuntu 23.10 o versione successiva, provare i comandi seguenti:

# Get OS version info which adds the $ID and $VERSION_ID variables
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}

Se si usa una versione di Ubuntu precedente alla 23.10, provare i comandi seguenti:

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

Impossibile recuperare

Durante l'installazione del pacchetto .NET, è possibile che venga visualizzato un errore simile a Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Questo errore potrebbe significare che il feed di pacchetti per .NET viene aggiornato con le versioni più recenti del pacchetto e che è necessario riprovare più tardi. Durante un aggiornamento, il feed di pacchetti non dovrebbe essere non disponibile per più di 30 minuti. Se si riceve questo errore per più di 30 minuti, segnalare il problema all'indirizzo https://github.com/dotnet/core/issues.

Dipendenze

Quando si installa mediante uno strumento di gestione pacchetti, queste librerie vengono installate automaticamente. Tuttavia, se si installa manualmente .NET o si pubblica un'app autonoma, è necessario installare queste dipendenze per eseguire l'app:

  • certificati CA
  • libc6
  • libgcc1 (per 16.x e 18.x)
  • libgcc-s1 (per 20.x o versione successiva)
  • libgssapi-krb5-2
  • libicu55 (per 16.X)
  • libicu60 (per 18.x)
  • libicu66 (per 20.x)
  • libicu70 (per 22.04)
  • libicu72 (per la versione 23.10)
  • libicu74 (per la versione 24.04)
  • libicu76 (per la versione 25.04 o successiva)
  • libssl1.0.0 (per 16.x)
  • libssl1.1 (per 18.x, 20.x)
  • libssl3 (per la versione 22.x o successiva)
  • libstdc++6
  • tzdata
  • zlib1g

È possibile installare le dipendenze con il comando apt install. Il frammento di codice seguente dimostra l'installazione della libreria zlib1g:

sudo apt install zlib1g

Passaggi successivi