Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается, как установить snap-пакет .NET SDK. Пакеты Snap SDK .NET предоставляются и поддерживаются компанией Canonical. Пакеты Snap — это отличная альтернатива диспетчеру пакетов, встроенному в дистрибутив Linux.
Snap — это пакет, включающий приложение и его зависимости, работающий во многих разных дистрибутивах Linux. Snap-пакеты можно найти и установить с помощью Snap Store. Для получения дополнительной информации о Snap см. Начало работы.
Внимание
При установке .NET через Snap могут возникнуть проблемы с запуском средств .NET. Если вы хотите использовать средства .NET, рекомендуется установить .NET с помощью скрипта dotnet-install или диспетчера пакетов для конкретного дистрибутива Linux.
Известная проблема, из-за которой команда dotnet watch не работает при установке .NET через Snap.
Если вы собираетесь использовать средства .NET или команду dotnet watch, рекомендуется установить .NET с использованием dotnet-install script.
Предварительные условия
- Дистрибутив Linux, поддерживающий привязку.
-
snapdдемон Snap.
Ваш дистрибутив Linux уже может содержать snap. Попробуйте запустить snap из терминала, чтобы узнать, работает ли команда. Список поддерживаемых дистрибутивов Linux и инструкции по установке snap см. в разделе «Установка snapd».
выпуски .NET
Корпорация Майкрософт публикует .NET в двух разных политиках поддержки, долгосрочной поддержке (LTS) и стандартной поддержке (STS). Качество всех выпусков одинаково. Единственное различие заключается в продолжительности поддержки. Выпуски LTS получают бесплатную поддержку и исправления в течение трех лет. Выпуски STS получают бесплатную поддержку и исправления в течение двух лет. Дополнительные сведения см. в разделе .NET Политика поддержки.
Версии .NET, которые в настоящее время поддерживаются корпорацией Майкрософт:
- 10.0 (LTS)— поддержка заканчивается 14 ноября 2028 г.
- 9.0 (STS) — поддержка заканчивается 10 ноября 2026 г.
- 8.0 (LTS)— поддержка заканчивается 10 ноября 2026 г.
Другие организации, которые создают и выпускают .NET, могут вводить различные политики поддержки. Обязательно ознакомьтесь с ними, чтобы понять, как поддерживается .NET.
1. Установка пакета SDK
Внимание
.NET 10 было выпущено 11 ноября 2025 года. Может потребоваться время, чтобы пакеты отображались в репозиториях диспетчера пакетов или чтобы ваш конкретный дистрибутив Linux его включил.
Начиная с .NET 9, snap пакеты для .NET SDK публикуются под идeнтификаторами версий (например, dotnet-sdk-90 для .NET 9 и dotnet-sdk-100 для .NET 10). До .NET 9 все версии пакета SDK были опубликованы под тем же идентификатором dotnet-sdk, и вы указали версию через канал. Кроме того, snap-пакеты .NET 9 и более поздних версий поддерживают архитектуры x64 и Arm64, в то время как более ранние версии поддерживают только x64. SDK включает ASP.NET Core и среду выполнения .NET, версии которых соответствуют версии SDK.
Совет
Страница пакета SDK .NET Snapcraft включает дистрибутивно-специфические инструкции по установке Snapcraft и .NET.
Откройте окно терминала.
Используйте
snap installдля установки snap-пакета .NET SDK.Параметр
--classicявляется обязательным.Начиная с .NET 9 и более поздних версий
Установите пакет для конкретной версии. Например, следующая команда устанавливает пакет SDK 10 .NET:
sudo snap install dotnet-sdk-100 --classicДля .NET 8 и более ранних версий
Установите из
dotnet-sdkпакета и укажите канал. Если этот параметр отсутствует, используйтеlatest/stable. Например, следующая команда устанавливает пакет SDK 8 .NET:sudo snap install dotnet-sdk --classic --channel 8.0/stable
dotnet Псевдоним snap автоматически создается и сопоставляется с командой пакета snap dotnet.
В следующей таблице перечислены пакеты привязки и каналы, которые можно установить:
| версия .NET | Пакет Snap или канал |
|---|---|
| 10 (LTS) |
dotnet-sdk-100 (предварительная версия) |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk --channel 8.0/stable |
| 7 |
dotnet-sdk --channel 7.0/stable (вне поддержки) |
| 6 |
dotnet-sdk --channel 6.0/stable (вне поддержки) |
| 5 |
dotnet-sdk --channel 5.0/stable (вне поддержки) |
| 3.1 |
dotnet-sdk --channel 3.1/stable (вне поддержки) |
| 2.1 |
dotnet-sdk --channel 2.1/stable (вне поддержки) |
2. Экспорт расположения установки
Переменная среды DOTNET_ROOT часто используется средствами для определения места установки .NET. При установке .NET через Snap эта переменная среды не настроена. Вам нужно настроить переменную среды DOTNET_ROOT в своем профиле. Путь к snap-пакету использует следующий формат: /snap/{package}/current.
Для .NET 9 и более поздних версий используйте имя пакета для конкретной версии:
export DOTNET_ROOT=/snap/dotnet-sdk-100/current
Для .NET 8 и более ранних версий используйте имя общего пакета:
export DOTNET_ROOT=/snap/dotnet-sdk/current
Экспорт переменной среды на постоянной основе
Предыдущая команда export задает переменную среды только для сеанса терминала, в котором она была запущена.
Вы можете изменить настройки профиля оболочки, чтобы добавить команды на постоянной основе. Существует множество различных оболочков, доступных для Linux, и каждый из них имеет другой профиль. Например:
- Оболочка Bash: ~/.bash_profile, ~/.bashrc
- Оболочка Korn: ~/.kshrc или .profile
- Z Shell: _~/.zshrc* или .zprofile
Измените соответствующий исходный файл для оболочки и добавьте команду экспорта для установленной версии .NET. Для .NET 9+ используйте export DOTNET_ROOT=/snap/dotnet-sdk-100/current (при необходимости настройте номер версии). Для .NET 8 и более ранних версий используйте export DOTNET_ROOT=/snap/dotnet-sdk/current.
3. Использование интерфейса командной строки .NET
Откройте терминал и введите dotnet.
dotnet
Выводится следующий результат.
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.
Сведения об использовании интерфейса командной строки .NET см. в статье .NET CLI.
Устранение неполадок
- Команда терминала dotnet не работает
- Не удается установить Snap в WSL2
- Не удается разрешить команду dotnet или пакет SDK
- Ошибки СЕРТИФИКАТА TLS/SSL
Команда терминала dotnet не работает
Пакеты Snap могут сопоставить псевдоним с командой, предоставленной пакетом. По умолчанию пакеты snap SDK .NET создают псевдоним для команды dotnet. Если псевдоним не был создан или был удален ранее, используйте следующую команду, чтобы сопоставить псевдоним.
Для .NET 9 и более поздних версий:
sudo snap alias dotnet-sdk-100.dotnet dotnet
Для .NET 8 и более ранних версий:
sudo snap alias dotnet-sdk.dotnet dotnet
Не удается установить Snap в WSL2
systemd надо включить в WSL2 перед установкой Snap.
Откройте
/etc/wsl.confв текстовом редакторе на ваш выбор.Вставьте следующую конфигурацию:
[boot] systemd=trueСохраните файл и перезапустите экземпляр WSL2 с помощью PowerShell. Используйте команду
wsl.exe --shutdown.
Не удается найти команду dotnet или SDK
Обычно другие приложения, такие как интегрированная среда разработки (IDE) или расширение в Visual Studio Code, пытаются определить расположение пакета SDK .NET. Как правило, обнаружение выполняется путем проверки переменной DOTNET_ROOT среды или определения расположения исполняемого dotnet файла. .NET SDK, установленный через систему snap, может сбить с толку эти приложения. Если эти приложения не могут устранить пакет SDK для .NET, отображается ошибка, аналогичная одному из следующих сообщений:
- Указанный SDK 'Microsoft.NET.Sdk' не найден
- Не удалось найти указанный SDK 'Microsoft.NET.Sdk.Web'
- Не удалось найти указанный SDK 'Microsoft.NET.Sdk.Razor'
Чтобы устранить проблему, выполните следующие действия.
Убедитесь, что вы постоянно экспортируете
DOTNET_ROOTпеременную среды.Попробуйте создать символическую ссылку на исполняемый файл snap
dotnetв расположение, которое ищет программа.Существует два распространённых пути, которые команда
dotnetищет:/usr/local/bin/dotnet/usr/share/dotnet
Используйте следующую команду, чтобы создать символическую ссылку на пакет Snap. Для .NET 9 и более поздних версий используйте имя пакета для конкретной версии:
ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnetДля .NET 8 и более ранних версий:
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
Ошибки СЕРТИФИКАТА TLS/SSL
При установке .NET с помощью Snap возможно, что в некоторых дистрибутивах .NET TLS/SSL-сертификаты могут не быть найдены, и во время 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]
Чтобы устранить эту проблему, задайте несколько переменных среды:
export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null
Расположение сертификата зависит от распределения. Ниже приведены расположения для дистрибутивов, в которых обнаружена проблема:
| Распределение | Расположение |
|---|---|
| Федора | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
| OpenSUSE | /etc/ssl/ca-bundle.pem |
| Solus | /etc/ssl/certs/ca-certificates.crt |