Installer .NET SDK avec Snap

Cet article explique comment installer le paquet Snap du SDK .NET. Les paquets snap du SDK .NET sont fournis et gérés par Canonical. Les snaps constituent une excellente alternative au gestionnaire de package intégré à votre distribution Linux.

Un snap est un pack d’une application et de ses dépendances qui fonctionne dans de nombreuses distributions Linux différentes. Les Snaps sont détectables et installables à partir du Snap Store. Pour plus d’informations sur Snap, consultez Prise en main.

Important

Si vous installez .NET avec Snap, utilisez Snap pour gérer toutes vos installations de .NET. Évitez de combiner Snap avec d’autres méthodes d’installation, telles qu’un gestionnaire de package ou l’installation scriptée, car les méthodes de mixage peuvent entraîner des conflits.

Attention

Les installations Snap de .NET peuvent rencontrer des problèmes lors de l'exécution d’outils .NET. Si vous souhaitez utiliser des outils .NET, nous vous recommandons d’installer .NET à l’aide du script dotnet-install ou du gestionnaire de package pour la distribution Linux particulière.

Il s'agit d'un problème connu selon lequel la commande dotnet watch ne fonctionne pas lorsque .NET est installé via Snap.

Si vous utilisez des outils .NET ou la commande dotnet watch, nous vous recommandons d'installer .NET à l'aide du script dotnet-install.

Prérequis

  • Distribution Linux qui prend en charge snap.
  • snapd le démon Snap.

Votre distribution Linux inclut peut-être déjà un snap. Essayez d’exécuter snap à partir d’un terminal pour voir si la commande fonctionne. Pour obtenir la liste des distributions Linux prises en charge et des instructions sur l’installation d’un snap, consultez Installation de snapd.

versions de .NET

Microsoft publie .NET sous deux stratégies de support différentes, le support à long terme (LTS) et le support à durée déterminée (STS). La qualité de toutes les versions est la même. La seule différence est la longueur du support. Les versions LTS bénéficient d'une assistance et de correctifs gratuits pendant trois ans. Les versions STS bénéficient d’un support gratuit et de correctifs pendant deux ans. Pour plus d’informations, consultez .NET Stratégie de support.

Les versions de .NET actuellement prises en charge par Microsoft sont les suivantes :

  • 10.0 (LTS) : le support se termine le 14 novembre 2028.
  • 9.0 (STS) : le support se termine le 10 novembre 2026.
  • 8.0 (LTS) : le support se terminera le 10 novembre 2026.

D’autres entités qui créent et publient des .NET peuvent introduire différentes stratégies de support. Veillez à les consulter pour comprendre comment .NET est pris en charge.

1. Installez le SDK

Pour installer le SDK .NET, utilisez des identifiants de package Snap propres à chaque version, car cette approche vous permet d’installer et de gérer plusieurs versions du SDK côte à côte. Par exemple, utilisez dotnet-sdk-80 pour .NET 8 et dotnet-sdk-100 pour .NET 10. Le Kit de développement logiciel (SDK) inclut à la fois les ASP.NET Core et .NET runtime, versionnés vers le KIT SDK. Cet article utilise le package Snap du SDK .NET 10 ; si vous utilisez un autre package, remplacez-le par celui que vous utilisez.

Conseil

La page de package snapcraft .NET SDK (.NET 8, .NET 9, .NET 10) inclut des instructions spécifiques à la distribution sur l’installation de Snapcraft et de .NET.

  1. Ouvrez un terminal.

  2. Utilisez snap install pour installer le paquet snap SDK .NET.

    La commande suivante installe .NET SDK 10 :

    sudo snap install dotnet-sdk-100
    

Le tableau suivant répertorie les packages Snap du SDK .NET que vous pouvez installer :

version .NET paquet Snap
10 (LTS) dotnet-sdk-100
9 (STS) dotnet-sdk-90
8 (LTS) dotnet-sdk-80

2. Mapper la commande dotnet

Étant donné que Snap ne crée pas de commande dotnet non versionnée, créez un lien symbolique pour rendre dotnet disponible à l’échelle du système. Créez ce lien uniquement si vous souhaitez associer la commande dotnet à cette installation Snap spécifique. Si vous avez déjà .NET installé via une autre méthode et que vous créez ce lien, il remplace ce mappage.

S’il /usr/local/bin/dotnet existe déjà, supprimez-le avant de créer le lien.

sudo ln -s /snap/dotnet-sdk-100/current/usr/bin/dotnet /usr/local/bin/dotnet

3. Exporter l’emplacement d’installation

Configurez la DOTNET_ROOT variable d’environnement dans votre profil shell, car les outils l’utilisent pour déterminer où .NET est installée. Les installations Snap ne définissent pas automatiquement cette variable. Le chemin utilise le format suivant : /snap/{package}/current/usr/lib/dotnet.

export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet

Remplacez 100 par la version du Kit de développement logiciel (SDK) que vous avez installée, par 80 exemple pour .NET 8 ou 90 pour .NET 9.

Exporter la variable d’environnement définitivement

La commande export précédente définit uniquement la variable d’environnement pour la session de terminal dans laquelle elle a été exécutée.

Vous pouvez modifier votre profil d’interpréteur de commandes pour ajouter définitivement les commandes. De nombreux interpréteurs de commandes sont disponibles pour Linux et chacun présente un profil différent. Exemple :

  • Interpréteur de commandes Bash : ~/.bash_profile, ~/.bashrc
  • Interpréteur de commandes Korn : ~/.kshrc ou .profile
  • Z Shell : _~/.zshrc* ou .zprofile

Modifiez le fichier source approprié pour votre interpréteur de commandes, ajoutez la commande d’exportation de votre version installée .NET et enregistrez vos modifications.

Par exemple : export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.

4. Utiliser l’interface CLI .NET

Ouvrez un terminal et exécutez la dotnet commande.

dotnet

Vous obtenez la sortie suivante :

Usage: dotnet [options]
Usage: dotnet [path-to-application]

Options:
  -h|--help         Display help.
  --info            Display .NET information.
  --list-sdks       Display the installed SDKs.
  --list-runtimes   Display the installed runtimes.

path-to-application:
  The path to an application .dll file to execute.

Pour savoir comment utiliser l’interface CLI .NET, consultez .NET vue d’ensemble de l’interface CLI.

Dépannage

Impossible d’installer Snap sur WSL2

Vous devez activer systemd sur l’instance WSL2 avant d’installer Snap.

  1. Ouvrez /etc/wsl.conf dans l’éditeur de texte de votre choix.

  2. Collez-le dans la configuration suivante :

    [boot]
    systemd=true
    
  3. Enregistrez le fichier et redémarrez l’instance WSL2 via PowerShell. Utilisez la commande wsl.exe --shutdown.

Impossible de résoudre la commande dotnet ou le SDK

Il est courant pour d'autres applications, telles qu'un IDE de code ou une extension dans Visual Studio Code, de tenter de résoudre l'emplacement du sdk .NET. En règle générale, la détection est effectuée en vérifiant la variable d’environnement DOTNET_ROOT ou en recherchant où se trouve l’exécutable dotnet. Un SDK .NET installé via snap peut confondre ces applications. Lorsque ces applications ne peuvent pas résoudre le sdk .NET, une erreur similaire à l'un des messages suivants s'affiche :

  • Kit de développement logiciel (SDK) « Microsoft.NET ». Impossible de trouver le Kit de développement logiciel (SDK) spécifié
  • Kit de développement logiciel (SDK) « Microsoft.NET ». Sdk.Web' spécifié est introuvable
  • Nous n'avons pas pu trouver le SDK 'Microsoft.NET.Sdk.Razor' spécifié.

Effectuez les étapes suivantes pour tenter de corriger le problème :

  1. Terminez 2. Mappez la commande dotnet.
  2. Définissez la variable d’environnement DOTNET_ROOT de manière permanente en suivant Exporter la variable d’environnement définitivement.

Erreurs de certificat TLS/SSL

Lorsque .NET est installé via Snap, il est possible que sur certaines distributions, les certificats TLS/SSL .NET ne soient pas trouvés et que vous recevez peut-être une erreur pendant restore :

Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
  Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error :   The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]

Pour résoudre ce problème, définissez quelques variables d’environnement :

export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null

L’emplacement du certificat varie selon la distribution. Voici les emplacements des distributions où le problème a été observé :

Distribution Emplacement
Fedora /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
OpenSUSE /etc/ssl/ca-bundle.pem
Solus /etc/ssl/certs/ca-certificates.crt