Установка пакета SDK для .NET или среды выполнения .NET в RHEL

.NET поддерживается в RHEL. В этой статье описано, как установить .NET в RHEL.

Если вы хотите разрабатывать приложения .NET, установите пакет SDK (включает среду выполнения). Если нужно просто запустить приложения, установите среду выполнения. Если вы устанавливаете среду выполнения, мы рекомендуем установить среду выполнения ASP.NET Core, так как она включает в себя среды выполнения .NET и ASP.NET Core.

Если вы уже установили пакет SDK или среду выполнения, с помощью команд dotnet --list-sdks и dotnet --list-runtimes узнайте, какие версии установлены. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.

Регистрация подписки Red Hat

Чтобы установить .NET из Red Hat в RHEL, сначала нужно зарегистрироваться с помощью диспетчера подписки Red Hat. Если это еще не сделано в вашей системе либо вы точно не уверены, ознакомьтесь с документацией по продукту Red Hat для .NET.

Поддерживаемые дистрибутивы

В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .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 больше не поддерживаются. (но остаются доступными для скачивания):

  • 3.0
  • 2.2
  • 2.0

Удалите предварительные версии

При использовании диспетчера пакетов для управления установкой .NET вы можете столкнуться с конфликтом, если ранее вы установили предварительную версию. Диспетчер пакетов может интерпретировать выпуск, не являющийся предварительной версией, в качестве более ранней версии .NET. Чтобы установить выпуск, не относящийся к предварительной версии, сначала удалите предварительные версии. Дополнительные сведения об удалении .NET см. в разделе Удаление среды выполнения .NET и пакета SDK.

RHEL 8 ✔️

Платформа .NET включена в репозитории AppStream для RHEL 8.

Установка пакета SDK

Пакет SDK для .NET позволяет разрабатывать приложения с помощью .NET. При установке пакета SDK для .NET не нужно устанавливать соответствующую среду выполнения. Чтобы установить пакет SDK для .NET, выполните приведенные ниже команды.

sudo dnf install dotnet-sdk-5.0

Установка среды выполнения

Среда выполнения ASP.NET Core позволяет запускать приложения, созданные с помощью версии .NET без поддержки среды выполнения. Приведенные ниже команды позволяют установить среду выполнения ASP.NET Core, которая больше всего совместима с .NET. В терминале выполните приведенные ниже команды.

sudo dnf install aspnetcore-runtime-5.0

В качестве альтернативы среде выполнения ASP.NET Core вы можете установить среду выполнения .NET без поддержки ASP.NET Core. Для этого в приведенной выше команде замените aspnetcore-runtime-5.0 на dotnet-runtime-5.0.

sudo dnf install dotnet-runtime-5.0

RHEL 7 ✔️ .NET 5.0

Следующая команда устанавливает пакет scl-utils:

sudo yum install scl-utils

Установка пакета SDK

Пакет SDK для .NET позволяет разрабатывать приложения с помощью .NET. При установке пакета SDK для .NET не нужно устанавливать соответствующую среду выполнения. Чтобы установить пакет SDK для .NET, выполните следующие команды.

subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet50 -y
scl enable rh-dotnet50 bash

В Red Hat не рекомендуется активировать rh-dotnet50 на постоянной основе, так как это может повлиять на другие программы. Если вы хотите активировать rh-dotnet на постоянной основе, добавьте следующую строку в файл ~/.bashrc.

source scl_source enable rh-dotnet50

Установка среды выполнения

Среда выполнения .NET позволяет запускать приложения, созданные в версии .NET, не включающей среду выполнения. Приведенные ниже команды позволяют установить среду выполнения ASP.NET Core, которая больше всего совместима с .NET Core. В терминале выполните приведенные ниже команды.

subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet50-aspnetcore-runtime-5.0 -y
scl enable rh-dotnet50 bash

В Red Hat не рекомендуется активировать rh-dotnet50 на постоянной основе, так как это может повлиять на другие программы. Если вы хотите активировать rh-dotnet50 на постоянной основе, добавьте следующую строку в файл ~/.bashrc.

source scl_source enable rh-dotnet50

В качестве альтернативы среде выполнения ASP.NET Core вы можете установить среду выполнения .NET без поддержки ASP.NET Core. Для этого в приведенных выше командах замените rh-dotnet50-aspnetcore-runtime-5.0 на rh-dotnet50-dotnet-runtime-5.0.

RHEL 7 ✔️ .NET Core 3.1

Перед установкой .NET выполните приведенные ниже команды, чтобы добавить ключ подписывания пакета Майкрософт в список доверенных ключей и добавить репозиторий пакетов Майкрософт. Откройте терминал и выполните следующие команды:

Следующая команда устанавливает пакет scl-utils:

sudo yum install scl-utils

Установка пакета SDK

Пакет SDK для .NET Core позволяет разрабатывать приложения с помощью .NET Core. При установке пакета SDK для .NET Core не нужно устанавливать соответствующую среду выполнения. Чтобы установить пакет SDK для .NET Core, выполните следующие команды:

subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet31 -y
scl enable rh-dotnet31 bash

В Red Hat не рекомендуется активировать rh-dotnet31 на постоянной основе, так как это может повлиять на другие программы. Например, rh-dotnet31 включает версию libcurl, которая отличается от базовой версии RHEL. Это может вызвать проблемы в программах, которые не ожидают другой версии libcurl. Если вы хотите активировать rh-dotnet на постоянной основе, добавьте следующую строку в файл ~/.bashrc.

source scl_source enable rh-dotnet31

Установка среды выполнения

Среда выполнения .NET Core позволяет запускать приложения, созданные с помощью версии .NET Core без поддержки среды выполнения. Приведенные ниже команды позволяют установить среду выполнения ASP.NET Core, которая больше всего совместима с .NET Core. В терминале выполните приведенные ниже команды.

subscription-manager repos --enable=rhel-7-server-dotnet-rpms
yum install rh-dotnet31-aspnetcore-runtime-3.1 -y
scl enable rh-dotnet31 bash

В Red Hat не рекомендуется активировать rh-dotnet31 на постоянной основе, так как это может повлиять на другие программы. Например, rh-dotnet31 включает версию libcurl, которая отличается от базовой версии RHEL. Это может вызвать проблемы в программах, которые не ожидают другой версии libcurl. Если вы хотите активировать rh-dotnet31 на постоянной основе, добавьте следующую строку в файл ~/.bashrc.

source scl_source enable rh-dotnet31

В качестве альтернативы среде выполнения ASP.NET Core вы можете установить среду выполнения .NET Core без поддержки ASP.NET Core. Для этого в приведенной выше команде замените rh-dotnet31-aspnetcore-runtime-3.1 на rh-dotnet31-dotnet-runtime-3.1.

Зависимости

Если для установки используется диспетчер пакетов, эти библиотеки устанавливаются автоматически. Но если вы устанавливаете .NET Core вручную или публикуете автономное приложение, вам потребуется установить эти библиотеки:

  • krb5-libs
  • libicu
  • openssl-libs
  • zlib

Если в целевой среде выполнения установлена версия OpenSSL 1.1 или более поздняя, необходимо установить compat-openssl10.

Дополнительные сведения о зависимостях см. в статье об автономных приложениях Linux.

Для приложений .NET Core, использующих сборку System.Drawing.Common, необходима также следующая зависимость:

Установка других версий

Сведения об установке других выпусков .NET см. в документации по Red Hat для .NET.

Устранение неполадок диспетчера пакетов

В этом разделе описаны распространенные ошибки, которые могут возникнуть при использовании диспетчера пакетов для установки .NET или .NET Core.

Дополнительные сведения о решении этих проблем см. в статье об устранении неполадок, связанных с использованием fxr, libhostfxr.so и FrameworkList.xml.

Дальнейшие действия