Installer le SDK .NET avec Snap
Cet article décrit l’installation du package Snap du SDK .NET. Les packages Snap du Kit de développement logiciel (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, voir Visite guidée de démarrage rapide.
Attention
Les installations Snap de .NET peuvent rencontrer des problèmes lors de l’exécution des outils .NET. Si vous souhaitez utiliser des outils .NET, nous vous recommandons d’installer .NET à l’aide du dotnet-install
script ou du gestionnaire de package pour la distribution Linux particulière.
Le dysfonctionnement de la commande dotnet watch
lorsque .NET est installé via Snap est un problème connu.
Si vous allez utiliser des outils .NET ou la commandedotnet watch
, nous vous recommandons d’installer .NET à l’aide du dotnet-install
script.
Prérequis
- Distribution Linux qui prend en charge snap.
snapd
le démon de 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 à terme standard (STS). La qualité de toutes les versions est la même. La seule différence est la longueur de la prise en charge. 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 et de correctifs gratuits pendant 18 mois. Pour plus d’informations, consultez la stratégie de support .NET.
Versions de .NET actuellement prises en charge par Microsoft :
- 9.0 (STS) : le support prend fin mai 2026.
- 8.0 (LTS) : le support se terminera le 10 novembre 2026.
D’autres entités qui créent et publient .NET peuvent introduire différentes stratégies de prise en charge. Veillez à les consulter pour comprendre comment .NET est pris en charge.
1. Installez le SDK
Important
.NET 9 a été publié le 12 novembre 2024. Il peut prendre du temps pour que les packages apparaissent dans les flux du gestionnaire de packages ou que votre distribution Linux spécifique l’inclue.
Les packages Snap pour le SDK .NET sont tous publiés sous le même identificateur : dotnet-sdk
. Une version spécifique du SDK peut être installée en spécifiant le canal. Le SDK inclut à la fois ASP.NET Core et .NET Runtime, associés à une version du SDK.
Conseil
La page du package du SDK .NET Snapcraft inclut des instructions propres à la distribution sur l’installation de Snapcraft et de .NET.
Ouvrez un terminal.
Utilisez
snap install
pour installer le package Snap du SDK .NET. Par exemple, la commande suivante permet d’installer le canallatest/stable
, qui est le canal par défaut.sudo snap install dotnet-sdk --classic
- Le paramètre
--classic
est obligatoire. - Utilisez le paramètre
--channel
pour indiquer la version à installer. Si ce paramètre est omis,latest/stable
est utilisé. Par exemple,--channel 8.0/stable
installe le SDK .NET 8.0.
- Le paramètre
L’alias Snap dotnet
est automatiquement créé et mappé à la commande dotnet
du package Snap.
Le tableau suivant répertorie les canaux de packages que vous pouvez installer :
Version de .NET | Canal de package Snap |
---|---|
9 (STS) | *Non encore disponible |
8 (LTS) | 8.0/stable lts/stable |
7 (STS) | 7.0/stable (sans prise en charge) |
6 (LTS) | 6.0/stable (sans prise en charge) |
5 | 5.0/stable (sans prise en charge) |
3.1 | 3.1/stable (sans prise en charge) |
2.1 | 2.1/stable (sans prise en charge) |
2. Exporter l’emplacement d’installation
La variable d’environnement DOTNET_ROOT
est souvent utilisée par les outils pour déterminer où .NET est installé. Quand .NET est installé via Snap, cette variable d’environnement n’est pas configurée. Vous devez configurer la variable d’environnement DOTNET_ROOT dans votre profil. Le chemin d’accès au Snap utilise le format suivant : /snap/{package}/current
.
export DOTNET_ROOT=/snap/dotnet-sdk/current
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* or .zprofile
Modifiez le fichier source approprié pour votre interpréteur de commandes et ajoutez export DOTNET_ROOT=/snap/dotnet-sdk/current
.
3. Utiliser l’interface CLI .NET
Ouvrez un terminal et tapez dotnet
.
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 apprendre à utiliser l’interface CLI .NET, consultez Vue d’ensemble de l’interface CLI .NET.
Dépannage
- La commande de terminal dotnet ne fonctionne pas
- Impossible d’installer Snap sur WSL2
- Impossible de résoudre la commande dotnet ou le SDK
- Erreurs de certificat TLS/SSL
La commande de terminal dotnet ne fonctionne pas
Les packages Snap peuvent mapper un alias à une commande fournie par le package. Par défaut, les packages Snap du SDK .NET créent un alias pour la commande dotnet
. Si l’alias n’a pas été créé ou a été précédemment supprimé, la commande suivante montre comment mapper l’alias :
sudo snap alias dotnet-sdk.dotnet dotnet
Impossible d’installer Snap sur WSL2
Vous devez activer systemd
sur l’instance WSL2 avant d’installer Snap.
Ouvrez
/etc/wsl.conf
dans l’éditeur de texte de votre choix.Collez-le dans la configuration suivante :
[boot] systemd=true
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é par Snap peut confondre ces applications. Lorsque ces applications ne peuvent pas résoudre le SDK .NET, une erreur semblable à l’un des messages suivants s’affiche :
- Le SDK « Microsoft.NET.Sdk » spécifié est introuvable
- Le SDK « Microsoft.NET.Sdk.Web » spécifié est introuvable
- Le SDK « Microsoft.NET.Sdk.Razor » spécifié est introuvable
Effectuez les étapes suivantes pour tenter de corriger le problème :
Veillez à exporter la variable d’environnement
DOTNET_ROOT
définitivement.Essayez de créer un lien symbolique de l’exécutable
dotnet
Snap vers l’emplacement recherché par le programme.Deux chemins d’accès courants recherchés par la commande
dotnet
sont :/usr/local/bin/dotnet
/usr/share/dotnet
Utilisez la commande suivante pour créer un lien symbolique vers le package Snap :
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
Erreurs de certificat TLS/SSL
Lorsque .NET est installé via Snap, il est possible que, sur certaines distributions, les certificats .NET TLS/SSL soient introuvables et que vous receviez 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 |