- Установка пакета SDK для .NET или среды выполнения .NET с использованием пакета Snap
- Выпуски .NET
- Пакет SDK или среда выполнения
- Установка пакета SDK
- Установка среды выполнения
- Экспорт расположения установки
- Ошибки сертификатов TLS/SSL
- Решение проблем с dotnet
- Псевдоним dotnet
- Установка пакета SDK для .NET или среды выполнения .NET вручную
- Выпуски .NET
- Зависимости
- Зависимости RPM
- Зависимости DEB
- Общие зависимости
- Установка с помощью скрипта
- Установка вручную
- Установка .NET в Linux
- Неподдерживаемые выпуски
- Установка вручную
- Установка предварительных версий
- Alpine
- CentOS
- Debian
- Fedora
- openSUSE
- Red Hat
- Ubuntu
Установка пакета SDK для .NET или среды выполнения .NET с использованием пакета Snap
Для установки пакета SDK для .NET или среды выполнения .NET можно использовать пакет Snap. Пакеты Snap — это отличная альтернатива диспетчеру пакетов, встроенному в дистрибутив Linux. В этой статье описано, как установить .NET с использованием пакета Snap.
Snap-пакет — это пакет приложения и его зависимостей, которые работают без изменений во многих разных дистрибутивах Linux. Snap-пакеты можно найти и установить с помощью Snap Store. Дополнительные сведения о Snap см. в этой статье.
Пакеты Snap не поддерживаются в WSL2 в Windows 10. В качестве альтернативы можно использовать скрипт dotnet-install или диспетчер пакетов для соответствующего дистрибутива WSL2. Такой способ не рекомендуется, но вы можете попытаться включить пакет Snap с помощью неподдерживаемого возможного решения, описываемого на форумах snapcraft.
Выпуски .NET
В пакете Snap доступны только поддерживаемые (✔️) версии пакета SDK для .NET. Все версии среды выполнения .NET доступны в пакете Snap, начиная с версии 2.1. В следующей таблице перечислены выпуски .NET (и .NET Core):
✔️ Поддерживается | ❌ Не поддерживается |
---|---|
5,0 | 3.0 |
3.1 (LTS) | 2.2 |
2.1 (LTS) | 2,0 |
1,1 | |
1.0 |
Дополнительные сведения о жизненном цикле выпусков .NET см. в разделе Политика поддержки .NET Core и .NET 5.
Пакет SDK или среда выполнения
Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.
Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet —list-sdks и dotnet —list-runtimes узнайте, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.
Установка пакета SDK
Пакеты Snap для пакета SDK для .NET публикуются с одним и тем же идентификатором: dotnet-sdk . Конкретную версию пакета SDK можно установить, указав канал. Пакет SDK содержит соответствующую среду выполнения. В следующей таблице перечислены каналы.
Версия .NET | Пакет Snap или канал |
---|---|
5,0 | 5.0 или latest/stable |
3.1 (LTS) | 3.1 или lts/stable |
2.1 (LTS) | 2.1 |
Выполните команду snap install , чтобы установить Snap-пакет пакета SDK для .NET. Используйте параметр —channel , чтобы указать, какую версию следует установить. Если этот параметр отсутствует, используйте latest/stable . В этом примере указан 5.0 :
Затем зарегистрируйте команду dotnet для системы, выполнив команду snap alias :
Эта команда имеет следующий формат: sudo snap alias
Установка среды выполнения
Пакеты Snap для среды выполнения .NET публикуются с собственными идентификаторами пакета. В следующей таблице перечислены идентификаторы пакетов:
Версия .NET | Snap-пакет |
---|---|
5,0 | dotnet-runtime-50 |
3.1 (LTS) | dotnet-runtime-31 |
3.0 | dotnet-runtime-30 |
2.2 | dotnet-runtime-22 |
2.1 (LTS) | dotnet-runtime-21 |
Выполните команду snap install , чтобы установить Snap-пакет среды выполнения .NET. В этом примере устанавливается .NET 5.0:
Затем зарегистрируйте команду dotnet для системы, выполнив команду snap alias :
Эта команда имеет следующий формат: sudo snap alias
Экспорт расположения установки
Переменная среды DOTNET_ROOT часто используется различными средствами для определения места установки .NET. При установке .NET с помощью snap-пакета эта переменная среды не настраивается. Вам нужно настроить переменную среды DOTNET_ROOT в своем профиле. Путь к snap-пакету использует следующий формат: /snap/
Предыдущая команда export задает переменную среды только для сеанса терминала, в котором она была запущена.
Вы можете изменить профиль оболочки, чтобы добавить команды окончательно. Существует несколько различных оболочек, доступных для Linux, и каждая из них имеет свой профиль. Пример:
- Оболочка Bash:
/.bashrc
Оболочка Korn:
/.kshrc или .profile
Оболочка Z:
Измените соответствующий исходный файл для своей оболочки и добавьте export DOTNET_ROOT=/snap/dotnet-sdk/current .
Ошибки сертификатов TLS/SSL
При установке .NET с помощью пакета Snap возможно, что на некоторых дистрибутивах нельзя найти сертификаты TLS/SSL .NET, а во время выполнения restore может отобразиться сообщение об ошибке:
Чтобы устранить эту проблему, задайте несколько переменных среды:
Расположение сертификата зависит от дистрибутива. Ниже приведены расположения для дистрибутивов, в которых возникла проблема.
Distribution | Расположение |
---|---|
Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
OpenSUSE | /etc/ssl/ca-bundle.pem |
Solus | /etc/ssl/certs/ca-certificates.crt |
Решение проблем с dotnet
Другие приложения, такие как расширение OmniSharp для Visual Studio Code, обычно попытаются определить расположение пакета SDK для .NET. Как правило, это делается путем выяснения места расположения исполняемого файла dotnet . Установленный с помощью Snap, пакет SDK для .NET может запутать эти приложения. Если эти приложения не смогут обнаружить пакет SDK для .NET, появиться сообщение об ошибке, аналогичное одному из следующих сообщений:
- Не удалось найти указанный пакет SDK «Microsoft.NET.Sdk»
- Не удалось найти указанный пакет SDK «Microsoft.NET.Sdk.Web»
- Не удалось найти указанный пакет SDK «‘Microsoft.NET.Sdk.Razor»
Чтобы решить эту проблему, создайте символическую ссылку на исполняемый файл snap dotnet в том месте, которое ищет программа. Два общих пути, которые ищет команда dotnet , — /usr/local/bin/dotnet и /usr/share/dotnet . Например, чтобы связать текущий прикрепленный пакет SDK для .NET, используйте следующую команду:
Также можно просмотреть эти проблемы GitHub для получения сведений об этих трудностях:
Псевдоним dotnet
Если вы создали псевдоним dotnet для привязки .NET, существует вероятность, что у вас возникнет конфликт. Удалите его с помощью команды snap unalias dotnet , а затем при необходимости добавьте другой псевдоним.
Источник
Установка пакета SDK для .NET или среды выполнения .NET вручную
Платформа .NET поддерживается в Linux. В этой статье описывается установка .NET в Linux с помощью скрипта установки или посредством извлечения двоичных файлов. Список дистрибутивов, поддерживающих встроенный диспетчер пакетов, см. в разделе Установка .NET в Linux.
Также можно установить .NET с помощью пакета Snap. Дополнительные сведения см. в разделе Установка пакета SDK для .NET или среды выполнения .NET с использованием пакета Snap.
Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.
Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet —list-sdks и dotnet —list-runtimes узнайте, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.
Выпуски .NET
В следующей таблице перечислены выпуски .NET (и .NET Core):
✔️ Поддерживается | ❌ Не поддерживается |
---|---|
5,0 | 3.0 |
3.1 (LTS) | 2.2 |
2.1 (LTS) | 2,0 |
1,1 | |
1.0 |
Дополнительные сведения о жизненном цикле выпусков .NET см. в разделе Политика поддержки .NET Core и .NET 5.
Зависимости
В некоторых случаях, например при установке .NET вручную, некоторые зависимости могут не устанавливаться. Ниже перечислены дистрибутивы Linux, которые поддерживаются корпорацией Майкрософт и для которых может потребоваться установка зависимостей. Дополнительные сведения см. на странице, посвященной соответствующему дистрибутиву:
Общие сведения о зависимостях см. в статье об автономных приложениях Linux.
Зависимости RPM
Если ваш дистрибутив не указан в приведенном выше списке и построен на основе RPM, могут потребоваться следующие зависимости:
Если в целевой среде выполнения установлена версия OpenSSL 1.1 или более поздняя, необходимо установить compat-openssl10.
Зависимости DEB
Если ваш дистрибутив не указан в приведенном выше списке и построен на основе Debian, могут потребоваться следующие зависимости:
Общие зависимости
Для приложений .NET, использующих сборку System.Drawing.Common, необходима также следующая зависимость:
Вы можете установить последнюю версию libgdiplus, добавив в систему репозиторий Mono. Для получения дополнительной информации см. https://www.mono-project.com/download/stable/.
Установка с помощью скрипта
Сценарии dotnet-install используются для автоматизации установок пакета SDK и среды выполнения и осуществления таких установок без прав администратора. Скрипт можно скачать на странице https://dot.net/v1/dotnet-install.sh.
![ВАЖНО] Для выполнения скрипта требуется Bash.
Этот сценарий по умолчанию устанавливает последнюю версию SDK с долгосрочной поддержкой (LTS), которой сейчас является .NET Core 3.1. Чтобы установить текущий выпуск, который может не быть версией LTS, используйте параметр -c Current .
Чтобы вместо пакета SDK установить среду выполнения .NET, используйте параметр —runtime .
Вы можете установить определенную версию, указав ее в параметре -c . Следующая команда устанавливает пакет SDK для .NET 5.0.
Установка вручную
В качестве альтернативы диспетчерам пакетов можно скачать и вручную установить пакет SDK и среду выполнения. Установка вручную как правило выполняется в рамках тестирования непрерывной интеграции или в неподдерживаемом дистрибутиве Linux. В большинстве случаев разработчикам и пользователям рекомендуется использовать диспетчер пакетов.
Сначала скачайте двоичный выпуск пакета SDK или среды выполнения с одного из следующих сайтов. При установке пакета SDK для .NET не нужно устанавливать соответствующую среду выполнения:
Затем извлеките скачанный файл и используйте команду export , чтобы задать для переменной DOTNET_ROOT расположение извлеченной папки, а затем проверьте включение .NET в переменную PATH. После этого команды .NET CLI станут доступны в терминале.
Кроме того, после скачивания двоичного файла .NET можно выполнить следующие команды из каталога, в котором сохранен файл, для извлечения среды выполнения. После этого команды .NET CLI также станут доступны в терминале, и будут заданы нужные переменные среды. Обязательно измените значение DOTNET_FILE на имя скачанного двоичного файла:
Приведенные выше команды export сделают команды .NET CLI доступными только для сеанса терминала, в котором производился запуск.
Вы можете изменить профиль оболочки, чтобы добавить команды окончательно. Существует несколько различных оболочек, доступных для Linux, и каждая из них имеет свой профиль. Пример:
- Оболочка Bash:
/.bashrc
Оболочка Korn:
/.kshrc или .profile
Оболочка Z:
Измените соответствующий исходный файл оболочки и добавьте :$HOME/dotnet в конец существующего оператора PATH . Если оператор PATH не указан, добавьте новую строку с export PATH=$PATH:$HOME/dotnet .
Кроме того, добавьте export DOTNET_ROOT=$HOME/dotnet в конец файла.
Такой подход позволяет устанавливать разные версии в отдельные расположения и выбирать, какие из них следует использовать для каждого приложения.
Источник
Установка .NET в Linux
Платформа .NET доступна в различных дистрибутивах Linux. Для большинства платформ и дистрибутивов Linux разработчики каждый год публикуют основной выпуск. В большей части таких выпусков есть диспетчер пакетов, который используется для установки .NET. В этой статье приведены сведения о поддержке и об используемом диспетчере пакетов.
В остальной части этой статьи содержится конкретная информация по каждой из основных версий дистрибутивов Linux, которые поддерживает .NET. Все выпуски .NET поддерживаются до того же времени, что и версии .NET или дистрибутива Linux.
Для максимальной совместимости выберите версию LTS.
Неподдерживаемые выпуски
Следующие версии .NET больше не поддерживаются (❌). (но остаются доступными для скачивания):
Такие неподдерживаемые версии не описаны в приведенных ниже разделах. Поэтому, если вы попытаетесь установить их, полученные вами результаты могут отличаться от указанных.
Установка вручную
Если вы не хотите использовать диспетчер пакетов для установки .NET в Linux, можно установить .NET одним из следующих способов:
На странице, посвященной дистрибутиву, обязательно просмотрите дополнительные сведения о необходимых зависимостях, которые могут отсутствовать при установке вручную.
Установка предварительных версий
Предварительные версии и релиз-кандидаты .NET недоступны в диспетчере пакетов. Вы можете установить предварительные версии и релиз-кандидаты .NET вручную.
Alpine
В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET и версий Alpine, в которых они поддерживаются. Эти версии поддерживаются до окончания поддержки версии .NET либо до окончания жизненного цикла версии Alpine.
- Значок ✔️ означает, что версия Alpine или .NET поддерживается.
- Значок ❌ означает, что версия Alpine или версия .NET в таком выпуске Alpine не поддерживается.
- Если значок ✔️ стоит как напротив версии Alpine, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
Alpine | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 3.13 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 3.12 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 3.11 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 3.10 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
❌ 3.9 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
❌ 3.8 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
Дополнительные сведения см. в статье об установке .NET в Alpine.
CentOS
CentOS 7 использует Yum в качестве диспетчера пакетов, а CentOS 8 использует DNF.
В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET в CentOS 7 и CentOS 8. Эти версии поддерживаются до того же времени, что и версия .NET или CentOS.
CentOS | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 8 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 7 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
Дополнительные сведения см. в статье об установке .NET в CentOS.
Debian
Debian использует APT (Advanced Package Tool) в качестве диспетчера пакетов.
В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET и версий Debian, в которых они поддерживаются. Эти версии поддерживаются до того же времени, что и версия .NET или Debian.
- Значок ✔️ означает, что версия Debian или .NET поддерживается.
- Значок ❌ означает, что версия Debian или версия .NET в таком выпуске Debian не поддерживается.
- Если значок ✔️ стоит как напротив версии Debian, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
Debian | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 11 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 10 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 9 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
❌ 8 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 |
Дополнительные сведения см. в статье об установке .NET в Debian.
Fedora
Fedora использует DNF в качестве диспетчера пакетов.
В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET и версий Fedora, в которых они поддерживаются. Эти версии поддерживаются до того же времени, что и версия .NET или Fedora.
- Значок ✔️ означает, что версия Fedora или .NET поддерживается.
- Значок ❌ означает, что версия Fedora или версия .NET в таком выпуске Fedora не поддерживается.
- Если значок ✔️ стоит как напротив версии Fedora, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
Fedora | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 34 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 33 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 32 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
❌ 31 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
❌ 30 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
❌ 29 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
❌ 28 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 |
❌ 27 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 |
Дополнительные сведения см. в статье об установке .NET в Fedora.
openSUSE
openSUSE использует zypper в качестве диспетчера пакетов.
В следующей таблице приведен список выпусков .NET, которые сейчас поддерживаются в openSUSE 15. Эти версии поддерживаются до тех пор, пока для версии .NET или версии openSUSE не будет прекращена поддержка.
openSUSE | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 15 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
Дополнительные сведения см. в статье об установке .NET в openSUSE.
Red Hat
Red Hat Enterprise Linux (RHEL) использует yum (RHEL 7) и DNF (RHEL 8) в качестве диспетчера пакетов.
В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET в RHEL 7 и RHEL 8. Эти версии поддерживаются до того же времени, что и версия .NET или RHEL.
- Значок ✔️ означает, что версия RHEL или .NET поддерживается.
- Значок ❌ означает, что версия RHEL или версия .NET в таком выпуске RHEL не поддерживается.
- Если значок ✔️ стоит как напротив версии RHEL, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
RHEL | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 8 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 7 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
Дополнительные сведения см. в статье об установке .NET в RHEL.
SLES использует zypper в качестве диспетчера пакетов.
В следующей таблице приведен список выпусков .NET, которые сейчас поддерживаются в SLES 12 SP2 и SLES 15. Эти версии поддерживаются до тех пор, пока для версии .NET или версии SLES не будет прекращена поддержка.
- Значок ✔️ означает, что версия SLES или .NET поддерживается.
- Значок ❌ означает, что версия SLES или версия .NET в таком выпуске SLES не поддерживается.
- Если значок ✔️ стоит как напротив версии SLES, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
SLES | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 15 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 12 SP2 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
Дополнительные сведения см. в статье об установке .NET в SLES.
Ubuntu
Ubuntu использует APT (Advanced Package Tool) в качестве диспетчера пакетов.
В приведенной ниже таблице содержатся сведения о поддержке Ubuntu и .NET.
- Значок ✔️ означает, что версия Ubuntu или .NET поддерживается.
- Значок ❌ означает, что версия Ubuntu или версия .NET в таком выпуске Ubuntu не поддерживается.
- Если значок ✔️ стоит как напротив версии Ubuntu, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
Ubuntu | .NET Core 2.1 | .NET Core 3.1 | .NET 5.0 |
---|---|---|---|
✔️ 21.04 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
❌ 20.10 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
✔️ 20.04 (LTS) | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
❌ 19.10 | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
❌ 19.04 | ✔️ 2.1 | ✔️ 3.1 | ❌ 5.0 |
❌ 18.10 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 |
✔️ 18.04 (LTS) | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
❌ 17.10 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 |
❌ 17.04 | ✔️ 2.1 | ❌ 3.1 | ❌ 5.0 |
❌ 16.10 | ❌ 2.1 | ❌ 3.1 | ❌ 5.0 |
✔️ 16.04 (LTS) | ✔️ 2.1 | ✔️ 3.1 | ✔️ 5.0 |
Дополнительные сведения см. в статье об установке .NET в Ubuntu.
Источник