Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описывается установка пакета оснастки пакета sdk для .NET. Пакеты оснастки пакета SDK для .NET предоставляются и поддерживаются каноническим пакетом. Пакеты Snap — это отличная альтернатива диспетчеру пакетов, встроенному в дистрибутив Linux.
Привязка — это пакет приложения и его зависимости, которые работают во многих разных дистрибутивах Linux. Snap-пакеты можно найти и установить с помощью Snap Store. Дополнительные сведения о Snap см . в кратком руководстве.
Внимание
При оснастки установки .NET могут возникнуть проблемы с запуском средств .NET. Если вы хотите использовать средства .NET, рекомендуется установить .NET с помощью dotnet-install скрипта или диспетчера пакетов для конкретного дистрибутива Linux.
Известная проблема, из-за dotnet watch которой команда не работает при установке .NET через Snap.
Если вы собираетесь использовать средства .NET или dotnet watch команду, рекомендуется установить .NET с помощью скриптаdotnet-install.
Необходимые компоненты
- Дистрибутив Linux, поддерживающий привязку.
-
snapdуправляющая программа оснастки.
Дистрибутив Linux может уже включать привязку. Попробуйте запустить snap из терминала, чтобы узнать, работает ли команда. Список поддерживаемых дистрибутивов Linux и инструкции по установке оснастки см. в разделе "Установка 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 для SDK для .NET публикуются с использованием идентификаторов, привязанных к версии (например, 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 для Snapcraft .NET содержатся инструкции по установке Snapcraft и .NET для конкретного дистрибутива.
Откройте окно терминала.
Используется
snap installдля установки пакета оснастки пакета sdk для .NET.Параметр
--classicявляется обязательным.Для .NET 9 и более поздних версий
Установите пакет для конкретной версии. Например, следующая команда устанавливает пакет SDK для .NET 10:
sudo snap install dotnet-sdk-100 --classicДля .NET 8 и более ранних версий
Установите из
dotnet-sdkпакета и укажите канал. Если этот параметр отсутствует, используйтеlatest/stable. Например, следующая команда устанавливает пакет SDK для .NET 8:sudo snap install dotnet-sdk --classic --channel 8.0/stable
dotnet Псевдоним оснастки автоматически создается и сопоставляется с командой пакета привязки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 CLI см. в обзоре .NET CLI.
Устранение неполадок
- Команда терминала dotnet не работает
- Не удается установить Snap в WSL2
- Не удается разрешить команду dotnet или пакет SDK
- Ошибки СЕРТИФИКАТА TLS/SSL
Команда терминала dotnet не работает
Пакеты привязки могут сопоставить псевдоним с командой, предоставленной пакетом. По умолчанию пакеты привязки пакета 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 перед установкой Оснастки.
Откройте
/etc/wsl.confв текстовом редакторе выбранный вариант.Вставьте следующую конфигурацию:
[boot] systemd=trueСохраните файл и перезапустите экземпляр WSL2 с помощью PowerShell. Используйте команду
wsl.exe --shutdown.
Не удается разрешить команду dotnet или пакет SDK
Обычно для других приложений, таких как интегрированная среда разработки кода или расширение в Visual Studio Code, можно попытаться устранить расположение пакета SDK для .NET. Как правило, обнаружение выполняется путем проверки переменной DOTNET_ROOT среды или определения расположения исполняемого dotnet файла. Установленный пакет SDK для .NET может запутать эти приложения. Если эти приложения не могут устранить пакет SDK для .NET, отображается ошибка, аналогичная одному из следующих сообщений:
- Не удалось найти указанный пакет SDK "Microsoft.NET.Sdk"
- Не удалось найти указанный пакет SDK "Microsoft.NET.Sdk.Web"
- Не удалось найти указанный пакет SDK "'Microsoft.NET.Sdk.Razor"
Чтобы устранить проблему, выполните следующие действия.
Убедитесь, что вы постоянно экспортируете
DOTNET_ROOTпеременную среды.Попробуйте связать исполняемый файл привязки
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 с помощью Оснастки возможно, что на некоторых дистрибутивах не найдены СЕРТИФИКАТЫ TLS/SSL .NET, и во время этого может возникнуть ошибка: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
Расположение сертификата зависит от распределения. Ниже приведены расположения для дистрибутивов, в которых обнаружена проблема:
| Распределение | Расположение |
|---|---|
| Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
| OpenSUSE | /etc/ssl/ca-bundle.pem |
| Solus | /etc/ssl/certs/ca-certificates.crt |