Установка пакета SDK для .NET с помощью Snap
В этой статье описывается установка пакета оснастки пакета 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 получают бесплатную поддержку и исправления в течение 18 месяцев. Дополнительные сведения см. в статье о политике поддержки .NET.
В настоящее время поддерживаются версии .NET, поддерживаемые корпорацией Майкрософт:
- 8.0 (LTS)— поддержка заканчивается 10 ноября 2026 г.
- 6.0 (LTS)— поддержка заканчивается 12 ноября 2024 г.
Другие сущности, создающие и выпускающие .NET, могут вводить различные политики поддержки. Обязательно ознакомьтесь с ними, чтобы понять, как поддерживается .NET.
1. Установка пакета SDK
Пакеты Snap для пакета SDK для .NET публикуются с одним и тем же идентификатором: dotnet-sdk
. Конкретную версию пакета SDK можно установить, указав канал. Пакет SDK включает как среду выполнения ASP.NET Core, так и среду выполнения .NET, версию в пакет SDK.
Совет
На странице пакета SDK для Snapcraft .NET содержатся инструкции по установке Snapcraft и .NET для конкретного дистрибутива.
Откройте окно терминала.
Используется
snap install
для установки пакета оснастки пакета sdk для .NET. Например, следующая команда устанавливаетlatest/stable
канал, который является значением по умолчанию.sudo snap install dotnet-sdk --classic
- Параметр
--classic
является обязательным. --channel
Используйте параметр, чтобы указать, какая версия требуется установить. Если этот параметр отсутствует, используйтеlatest/stable
. Например,--channel 8.0/stable
устанавливается пакет SDK для .NET 8.0.
- Параметр
dotnet
Псевдоним оснастки автоматически создается и сопоставляется с командой пакета привязкиdotnet
.
В следующей таблице перечислены каналы пакетов, которые можно установить:
Версия .NET | Канал пакета привязки |
---|---|
8 (LTS) | 8.0/stable latest/stable lts/stable |
7 | 7.0/stable (вне поддержки) |
6 (LTS) | 6.0/stable |
5 | 5.0/stable (вне поддержки) |
3.1 | 3.1/stable (вне поддержки) |
2.1 | 2.1/stable (вне поддержки) |
2. Экспорт расположения установки
Переменная среды DOTNET_ROOT
часто используется различными средствами для определения места установки .NET. При установке .NET с помощью snap-пакета эта переменная среды не настраивается. Вам нужно настроить переменную среды DOTNET_ROOT в своем профиле. Путь к snap-пакету использует следующий формат: /snap/{package}/current
.
export DOTNET_ROOT=/snap/dotnet-sdk/current
Экспорт переменной среды безвозвратно
Предыдущая команда export
задает переменную среды только для сеанса терминала, в котором она была запущена.
Вы можете изменить профиль оболочки, чтобы добавить команды окончательно. Существует множество различных оболочков, доступных для Linux, и каждый из них имеет другой профиль. Например:
- Оболочка Bash: ~/.bash_profile, ~/.bashrc
- Оболочка Korn: ~/.kshrc или .profile
- Z Shell: _~/.zshrc* или .zprofile
Измените соответствующий исходный файл для своей оболочки и добавьте 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
команды. Если псевдоним не был создан или удален ранее, в следующей команде показано, как сопоставить псевдоним:
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
Используйте следующую команду, чтобы создать символьную ссылку на пакет привязки:
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 |