Vue d’ensemble de .NET sur Ubuntu

Cet article explique comment installer .NET sur Ubuntu. À partir d’Ubuntu 22.04, la plupart des versions de .NET prises en charge sont disponibles dans le flux Ubuntu intégré. Le dépôt des packages de rétroports .NET d’Ubuntu contient les autres versions de .NET prises en charge, qui ne sont pas disponibles dans le flux de packages Ubuntu intégré pour ces versions d’Ubuntu. Pour plus d’informations sur les versions disponibles, consultez la section Distributions prises en charge. De plus, pour Ubuntu 23.10 et les versions précédentes, le dépôt des packages Microsoft contient toutes les versions de .NET qui sont actuellement, ou qui ont été précédemment, prises en charge.

Avertissement

Nous vous recommandons de choisir entre Ubuntu et les flux Microsoft pour trouver les packages .NET. Ne mélangez pas des packages .NET à partir de plusieurs référentiels de package. Cela entraîne en effet des problèmes lorsque des applications tentent de résoudre une version spécifique de .NET.

Méthode Avantages Inconvénients
Gestionnaire de package
(flux
Ubuntu intégré)
  • Généralement, la dernière version est disponible.
  • Les correctifs sont disponibles immédiatement.
  • Les dépendances sont incluses.
  • Suppression facile.
  • Les versions .NET disponibles sont prises en charge pendant la période de support de la version Ubuntu concernée.
  • Prise en charge de la plateforme IBM System Z pour .NET 8 sur Ubuntu 24.04.
  • Non disponible pour Ubuntu 16.04, 18.04 et 20.04.
  • Les versions .NET disponibles varient selon la version d’Ubuntu.
  • Les préversions ne sont pas disponibles.
Gestionnaire de package
(flux
Ubuntu intégré)
  • Contient toute les versions prises en charge, qui ne sont pas contenues dans le flux Ubuntu intégré.
  • Les correctifs sont disponibles immédiatement.
  • Les dépendances sont incluses.
  • Suppression facile.
  • Compatible avec le flux Ubuntu intégré.
  • Non disponible pour Ubuntu 16.04, 18.04 et 20.04.
  • Nécessite l’inscription du dépôt des packages de rétroports .NET d’Ubuntu.
  • Les préversions ne sont pas disponibles.
Gestionnaire de package
(Flux Microsoft)
  • Les versions prises en charge sont toujours disponibles.
  • Les correctifs sont disponibles immédiatement.
  • Les dépendances sont incluses.
  • Suppression facile.
  • Non disponible pour Ubuntu 24.04 et les versions ultérieures.
  • Nécessite l’inscription du dépôt de packages Microsoft.
  • Les préversions ne sont pas disponibles.
  • Prend uniquement en charge Ubuntu x64.
Script/extraction manuelle
  • Contrôlez l’emplacement où .NET est installé.
  • Les préversions sont disponibles.
  • Installez manuellement les mises à jour.
  • Installez manuellement les dépendances.
  • Suppression manuelle.

Décider comment installer .NET

Lorsque votre version d’Ubuntu prend en charge .NET par le biais du flux Ubuntu intégré ou des rétroports .NET, la prise en charge de ces versions de .NET est assurée par Canonical et les versions peuvent être optimisées pour des charges de travail différentes. Microsoft fournit la prise en charge des packages dans le flux du dépôt de packages Microsoft.

Utilisez les sections suivantes pour déterminer comment installer .NET :

J’utilise Ubuntu 22.04 ou version ultérieure et j’ai uniquement besoin de .NET

Installez .NET par le biais du flux Ubuntu. Pour plus d'informations, consultez les pages suivantes :

Important

Les versions du SDK .NET proposées par Canonical sont toujours dans la bande de fonctionnalités .1xx. Si vous souhaitez utiliser une version plus récente de la bande de fonctionnalités, utilisez le flux Microsoft pour installer le SDK. Veillez à consulter les informations de l’article Mélanges de packages .NET sur Linux pour comprendre les implications du basculement entre les flux de dépôt.

Si vous prévoyez d’installer le référentiel Microsoft pour utiliser d’autres packages Microsoft, comme powershell, mdatp ou mssql, vous devez déprioriser les packages .NET fournis par le référentiel Microsoft. Pour obtenir des instructions sur la façon de déprioriser les packages, consultez Ma distribution Linux fournit des packages .NET et je souhaite les utiliser.

J’utilise une version d’Ubuntu antérieure à 22.04

Utilisez les instructions de la page Ubuntu spécifique à la version.

Consultez la section Distributions prises en charge pour plus d’informations sur les versions de .NET prises en charge pour votre version d’Ubuntu. Si vous installez une version qui n’est pas prise en charge, consultez Inscrire le dépôt de packages Microsoft.

J’utilise d’autres packages Microsoft, tels que powershell, mdatp ou mssql

Si votre version d’Ubuntu prend en charge .NET par le biais d’un flux Ubuntu, vous devez décider quel flux doit installer .NET. La section Distributions prises en charge fournit un tableau qui répertorie les versions de .NET disponibles dans les flux de packages.

Si vous souhaitez approvisionner les packages .NET à partir d’un flux Ubuntu, vous devez donner la priorité aux packages .NET fournis par le dépôt Microsoft. Pour obtenir des instructions sur la façon de déprioriser les packages, consultez Ma distribution Linux fournit des packages .NET et je souhaite les utiliser.

Je souhaite créer une application .NET

Utilisez les mêmes sources de package pour le SDK que pour le runtime. Nous vous recommandons d’installer .NET via un flux Ubuntu. Si, toutefois, vous souhaitez installer .NET à partir d’une autre source (par exemple, le Dépôt de packages Microsoft pour accéder à des bandes de fonctionnalités SDK plus élevées), vous devez désinstaller .NET, configurer votre gestionnaire de packages pour qu’il ignore les packages .NET provenant du flux Ubuntu et le réinstaller à partir de l’autre source.

Passez en revue les autres suggestions de la section Décider comment installer .NET.

Je souhaite exécuter une application .NET dans un scénario de conteneur, de cloud ou d’intégration continue

Si votre version d’Ubuntu fournit la version de .NET dont vous avez besoin, installez-la à partir d’un flux Ubuntu. Sinon, inscrivez le dépôt de packages Microsoft et installez .NET à partir de ce dépôt. Passez en revue les informations de la section Distributions prises en charge.

Si la version de .NET souhaitée n’est pas disponible, essayez d’utiliser le script dotnet-install.

Ma distribution Ubuntu n’inclut pas la version .NET souhaitée, ou j’ai besoin d’une version .NET sans prise en charge

Nous vous recommandons d’utiliser APT et le dépôt de packages Microsoft. Pour plus d’informations, consultez la section Inscrire le dépôt de packages Microsoft et effectuer l’installation avec ce dernier.

Je souhaite installer une préversion

Utilisez l’une des méthodes suivantes pour installer .NET :

Je ne veux pas utiliser APT

Si vous souhaitez une installation automatisée, utilisez le script d’installation Linux.

Si vous souhaitez un contrôle total sur l’expérience d’installation de .NET, téléchargez un tarball et installez .NET manuellement. Pour plus d’informations, consultez Installation manuelle.

J’utilise un processeur ARM

Si votre version Ubuntu fournit la version .NET dont vous avez besoin, installez-la à partir du flux intégré. Passez en revue les informations de la section Distributions prises en charge.

Si la version de .NET que vous souhaitez n’est pas disponible, essayez d’utiliser l’une des méthodes suivantes pour installer .NET :

J’utilise la plate-forme IBM System Z

À partir de .NET 8 sur Ubuntu 24.04, Canonical prend en charge .NET pour la plateforme IBM System Z. Canonical prépare actuellement l’extension de la prise en charge à d’autres versions de .NET et d’Ubuntu.

Installez .NET par le biais du flux Ubuntu intégré. Pour plus d’informations, rendez-vous sur la page suivante :

Distributions prises en charge

Le tableau suivant répertorie les versions .NET actuellement prises en charge et les versions d’Ubuntu sur lesquelles elles sont prises en charge. Cliquez sur le lien correspondant à une version d’Ubuntu afin de savoir comment installer .NET pour cette version.

Ubuntu Versions .NET prises en charge Disponible dans
flux Ubuntu intégré
Disponible dans
le flux de rétroports
.Net d’Ubuntu
Disponible dans
le flux Microsoft
24.04 (LTS) 8.0, 7.0, 6.0 8.0 7.0, 6.0 Aucun
23.10 8.0, 7.0, 6.0 8.0, 7.0, 6.0 Aucun 8.0, 7.0, 6.0
22.04 (LTS) 8.0, 7.0, 6.0 8.0, 7.0, 6.0 Aucun 8.0, 7.0, 6.0, 3.1
20.04 (LTS) 8.0, 7.0, 6.0 None None 8.0, 7.0. 6.0, 5.0, 3.1, 2.1
18.04 (LTS) 7.0, 6.0 None None 7.0, 6.0, 5.0, 3.1, 2.2, 2.1
16.04 (LTS) 6.0 None None 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0

Lorsqu’une version d’Ubuntu atteint la fin de sa période de prise en charge, .NET n’est plus pris en charge avec cette version d’Ubuntu.

Canonical prend en charge les versions .NET dans le flux Ubuntu intégré pendant toute la durée de vie de cette version d’Ubuntu, et ce même au-delà de la durée de vie du support fourni par Microsoft. Canonical fournit un support de meilleure qualité pour les versions .NET dans le dépôt des packages de rétroports .NET, qui ne s’étend pas au-delà de la durée de vie du support fourni par Microsoft.

Les versions suivantes de .NET ne sont ❌ plus prises en charge :

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

Dépôt des packages de rétroports .NET d’Ubuntu

Le dépôt des packages de rétroports .NET d’Ubuntu fournit des versions de .NET, qui ne sont pas disponibles dans le flux Ubuntu intégré. La section Distributions prises en charge fournit un tableau qui répertorie les versions de .NET disponibles dans les flux de packages. Canonical assure la maintenance des packages contenus dans ce dépôt de packages et fournit un support de meilleure qualité, qui ne dépasse pas la durée de vie du support fourni par Microsoft ou la période de support de la version particulière d’Ubuntu.

Pour obtenir plus de détails, consultez la vue web du référentiel des packages de rétroports .NET d’Ubuntu.

Inscrire le dépôt des packages de rétroports .NET d’Ubuntu

Ouvrez un terminal et exécutez la commande suivante :

sudo add-apt-repository ppa:dotnet/backports

Conseil

Il n’est pas nécessaire d’appeler apt update. La commande add-apt-repository effectue cette opération par défaut.

Remarque

Le dépôt des packages de rétroports .NET d’Ubuntu est compatible avec le flux Ubuntu intégré. Vous n’avez donc pas besoin de configurer votre gestionnaire de packages pour ignorer les packages .NET dans le flux Ubuntu intégré.

Annuler l’inscription du dépôt des packages de rétroports .NET d’Ubuntu

Si vous ne souhaitez plus consommer de packages à partir du dépôt des packages de rétroports .NET d’Ubuntu, vous pouvez l’annuler. Ouvrez un terminal et exécutez la commande suivante :

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

Important

L’annulation de l’inscription du dépôt des packages de rétroports .NET d’Ubuntu ne désinstalle aucun package.

La commande add-apt-repository n’a pas été trouvée

L’utilitaire add-apt-repository(1) est préinstallé sur la plupart des installations Ubuntu.

Si vous recevez un message d’erreur indiquant que la commande add-apt-repository n’a pas été trouvée, vous devez installer le package software-properties-common, qui fournit cette commande. Ouvrez un terminal et exécutez les commandes suivantes :

sudo apt update
sudo apt install software-properties-common

Inscrire le dépôt de packages Microsoft

Le référentiel de packages Microsoft contient toutes les versions de .NET qui sont, ou ont été, prises en charge avec votre version d’Ubuntu. Si votre version d’Ubuntu fournit des packages .NET, vous devez déprioriser les packages Ubuntu et utiliser le référentiel Microsoft. Pour obtenir des instructions sur la façon de déprioriser les packages, consultez J’ai besoin d’une version de .NET qui n’est pas fournie par ma distribution Linux.

Important

Le référentiel de packages Microsoft prend en charge seulement les packages .NET qui ciblent l’architecture x64. D’autres architectures, telles que Arm, doivent installer .NET par d’autres moyens, tels que le script d’installation ou par le biais d’une installation manuelle.

Les préversions ne sont pas disponibles dans le dépôt de packages Microsoft. Pour plus d’informations, consultez Installer les préversions.

Attention

Nous vous recommandons d’utiliser un seul dépôt pour gérer toutes vos installations de .NET. Si vous avez déjà installé .NET avec le dépôt Ubuntu, vous devez nettoyer le système des packages .NET et configurer APT pour qu’il ignore les flux Ubuntu. Pour plus d’informations sur la procédure à suivre, consultez J’ai besoin d’une version de .NET qui n’est pas fournie par ma distribution Linux.

L’installation avec APT peut se faire à l’aide de quelques commandes. Avant d’installer .NET, exécutez les commandes suivantes pour ajouter la clé de signature du package Microsoft à votre liste de clés approuvées et ajouter le référentiel de packages.

Ouvrez un terminal et exécutez les commandes suivantes :

# Get OS version info
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

Conseil

Le script précédent a été écrit pour Ubuntu et il peut ne pas fonctionner si vous utilisez une distribution dérivée, telle que Linux Mint. Il est probable que la variable $repo_version ne se verra pas attribuer la valeur correcte, ce qui rend l’URI de la commande wget non valide. Cette variable correspond à la version spécifique d’Ubuntu pour laquelle vous souhaitez obtenir des packages, par exemple 22.04 ou 23.10.

Vous pouvez utiliser un navigateur web et accéder à https://packages.microsoft.com/config/ubuntu/ pour voir quelles versions d’Ubuntu peuvent être utilisées comme valeur $repo_version.

Installer .NET

Une fois que vous avez inscrit le dépôt de packages Microsoft, ou si le flux Ubuntu prend en charge le package .NET pour votre version d’Ubuntu, vous pouvez installer .NET par le biais du gestionnaire de packages avec la commande sudo apt install <package-name>. Remplacez <package-name> par le nom du package .NET que vous souhaitez installer. Par exemple, pour installer le SDK .NET 8.0, utilisez la commande sudo apt install dotnet-sdk-8.0. Le tableau suivant liste les packages .NET pris en charge :

Produit Type Package
8.0 ASP.NET Core Runtime aspnetcore-runtime-8.0
8.0 .NET Runtime dotnet-runtime-8.0
8.0 .NET Kit SDK dotnet-sdk-8.0
7.0 ASP.NET Core Runtime aspnetcore-runtime-7.0
7.0 .NET Runtime dotnet-runtime-7.0
7.0 .NET Kit SDK dotnet-sdk-7.0
6.0 ASP.NET Core Runtime aspnetcore-runtime-6.0
6.0 .NET Runtime dotnet-runtime-6.0
6.0 .NET Kit SDK dotnet-sdk-6.0

Si vous souhaitez installer une version non prise en charge de .NET, consultez la section Distributions prises en charge pour voir si cette version de .NET est disponible. Ensuite, substituez la version de .NET que vous souhaitez installer. Par exemple, pour installer ASP.NET Core 8.0, utilisez le nom de package aspnetcore-runtime-8.0.

Conseil

Si vous ne créez pas d’applications .NET, installez le runtime ASP.NET Core, car il inclut le runtime .NET et prend également en charge les applications ASP.NET Core.

Certaines variables d’environnement affectent la façon dont .NET est exécuté après son installation. Pour plus d’informations, consultez Variables d’environnement du Kit de développement logiciel (SDK) .NET et de l’interface CLI .NET.

Désinstallation de .NET

Si vous avez installé .NET par le biais d’un gestionnaire de package, procédez de même pour la désinstallation en utilisant la commande apt-get remove :

sudo apt-get remove dotnet-sdk-6.0

Pour plus d’informations, consultez Désinstaller .NET.

Installer des préversions

Les préversions et les versions finales de .NET ne sont pas disponibles dans les dépôts de packages. Vous pouvez installer les préversions et les versions finales de .NET de l’une des manières suivantes :

Supprimer des préversions

Lorsque vous utilisez un gestionnaire de package pour gérer votre installation de .NET, vous pouvez rencontrer un conflit si vous avez déjà installé une préversion. Le gestionnaire de package peut interpréter la version qui ne correspond pas à la préversion comme une version antérieure de .NET. Pour installer la version qui ne correspond pas à la préversion, désinstallez d’abord les préversions. Pour plus d’informations sur la désinstallation de .NET, consultez Comment supprimer le runtime et le kit de développement logiciel (SDK) .NET.

Utiliser APT pour mettre à jour .NET

Si vous avez installé .NET par le biais d’un gestionnaire de package, vous pouvez mettre à niveau le package avec la commande apt upgrade. Par exemple, les commandes suivantes mettent à niveau le package dotnet-sdk-7.0 avec la dernière version :

sudo apt update
sudo apt upgrade dotnet-sdk-7.0

Conseil

Si vous avez mis à niveau votre distribution Linux depuis l’installation de .NET, vous devrez peut-être reconfigurer le référentiel de packages Microsoft. Exécutez les instructions d’installation de votre version de distribution actuelle pour effectuer une mise à niveau vers le référentiel de packages approprié pour les mises à jour .NET.

Résolution des problèmes

À compter d’Ubuntu 22.04, vous pourriez rencontrer une situation où il semble que seul un élément de .NET soit disponible. Par exemple, vous avez installé le runtime et le SDK, mais lors de l’exécution de dotnet --info, seul le runtime est listé. Cette situation peut être liée à l’utilisation de deux sources de package différentes. Les flux de package Ubuntu 22.04 et Ubuntu 22.10 intégrés incluent certaines versions de .NET, mais pas toutes, et vous avez peut-être également installé .NET à partir des flux Microsoft. Pour plus d’informations sur la résolution de ce problème, consultez Résoudre les erreurs .NET liées à des fichiers manquants sur Linux.

Problèmes liés à APT

Cette section fournit des informations sur les erreurs courantes que vous pourriez rencontrer lorsque vous utilisez APT pour installer .NET.

Le package est introuvable

Important

L’utilisation d’un gestionnaire de package pour installer .NET à partir du flux de package Microsoft prend uniquement en charge l’architecture x64. Les autres architectures, comme Arm, ne sont pas prises en charge par le flux de package Microsoft.

Pour plus d’informations sur l’installation de .NET sans gestionnaire de package, consultez l’un des articles suivants :

Package introuvable\Certains packages n’ont pas pu être installés

Notes

Ces informations s’appliquent uniquement lorsque .NET est installé à partir du flux de package Microsoft.

Si vous recevez un message d’erreur semblable à Le package {dotnet-package} est introuvable ou Certains packages n’ont pas pu être installés, exécutez les commandes suivantes.

Il existe deux espaces réservés dans l’ensemble de commandes suivant.

  • {dotnet-package}
    Celui-ci représente le package .NET que vous installez (par exemple, aspnetcore-runtime-8.0). Il est utilisé dans la commande sudo apt-get install suivante.

Commencez par essayer de vider la liste des packages :

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

Réessayez ensuite d’installer .NET. Si cela ne fonctionne pas, vous pouvez effectuer une installation manuelle avec les commandes suivantes :

Si vous utilisez Ubuntu 23.10 ou ultérieur, essayez les commandes suivantes :

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

Si vous utilisez une version d’Ubuntu antérieure à 23.10, essayez les commandes suivantes :

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

Extraction impossible

Lors de l’installation du package .NET, vous pouvez voir une erreur semblable à Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Celle-ci peut signifier que le flux de package pour .NET est en cours de mise à niveau avec des versions plus récentes du package, et que vous devez réessayer ultérieurement. Pendant une mise à niveau, le flux de package ne doit pas être indisponible pendant plus de 30 minutes. Si vous recevez continuellement cette erreur pendant plus de 30 minutes, veuillez signaler le problème à l’adresse https://github.com/dotnet/core/issues.

Les dépendances

Lorsque vous effectuez une installation avec un gestionnaire de package, ces bibliothèques sont installées pour vous. Toutefois, si vous installez manuellement .NET ou que vous publiez une application autonome, vous devez installer ces dépendances pour exécuter votre application :

  • ca-certificates
  • libc6
  • libgcc1 (pour 16.x et 18.x)
  • libgcc-s1 (pour 20.x ou ultérieure)
  • libgssapi-krb5-2
  • libicu55 (pour 16.x)
  • libicu60 (pour 18.x)
  • libicu66 (pour 20.x)
  • libicu70 (pour 22.04)
  • libicu72 (pour la version 23.10)
  • libicu74 (pour la version 24.04 ou ultérieure)
  • liblttng-ust1 (pour 22.x ou ultérieur)
  • libssl1.0.0 (pour 16.x)
  • libssl1.1 (pour 18.x, 20.x)
  • libssl3 (pour 22.x ou ultérieur)
  • libstdc++6
  • libunwind8 (pour 22.x ou ultérieur)
  • zlib1g

Les dépendances peuvent être installées avec la commande apt install. L’extrait de code suivant illustre l’installation de la bibliothèque zlib1g :

sudo apt install zlib1g

Si l’application .NET utilise l’assembly System.Drawing.Common, libgdiplus doit également être installé. Étant donné que System.Drawing.Common n’est plus pris en charge sur Linux, cela fonctionne uniquement sur .NET 6 et nécessite de définir le commutateur de configuration du runtime System.Drawing.EnableUnixSupport.

Vous pouvez installer une version récente de libgdiplus en ajoutant le référentiel Mono à votre système.

Étapes suivantes