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

.NET поддерживается в CentOS. В этой статье описано, как установить .NET в CentOS. Если необходимо установить .NET в потоке CentOS, см. статью Установка пакета SDK для .NET или среды выполнения .NET в потоке RHEL и CentOS.

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

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

Важно!

Установка диспетчера пакетов поддерживается только в архитектуре x64. Для других архитектур, например ARM, установка .NET должна выполняться другими способами, такими как пакет Snap, скрипты установщика или ручная двоичная установка.

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

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

В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET в CentOS 7 и CentOS 8. Эти версии поддерживаются до того же времени, что и версия .NET или CentOS.

  • Значок ✔️ означает, что версия CentOS или .NET поддерживается.
  • Значок ❌ означает, что версия CentOS или версия .NET в таком выпуске CentOS не поддерживается.
  • Если значок ✔️ стоит как напротив версии CentOS, так и напротив версии .NET, это значит, что такое сочетание ОС и .NET поддерживается.
CentOS .NET Core 3.1 .NET 5 .NET 6
✔️ 7 ✔️ 3.1 ✔️ 5.0 ✔️ 6.0
8* ✔️ 3.1 ✔️ 5.0 ❌ 6.0

Предупреждение

* CentOS 8 достигла раннего срока жизни (конца строки) 31 декабря 2021 г. Дополнительные сведения см. на странице официальное CentOS Linux конца строки. По этой причине .NET 6 не будет поддерживаться в CentOS Linux 8.

Следующие версии .NET больше не поддерживаются (❌). (но остаются доступными для скачивания):

  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0;

Важно!

Установка диспетчера пакетов поддерживается только в архитектуре x64. Для других архитектур, например ARM, установка .NET должна выполняться другими способами, такими как пакет Snap, скрипты установщика или ручная двоичная установка.

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

Установка предварительных версий

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

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

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

CentOS 7 ✔️

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

sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

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

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

sudo yum install dotnet-sdk-6.0

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

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

sudo yum install aspnetcore-runtime-6.0

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

sudo yum install dotnet-runtime-6.0

CentOS 8 ✔️

Предупреждение

* CentOS 8 пойдет на ранний конец жизни (конца строки) 31 декабря 2021. Дополнительные сведения см. на странице официальное CentOS Linux конца строки. По этой причине .NET 6 не будет поддерживаться в CentOS Linux 8.

Платформа .NET 5 доступна в репозиториях пакетов по умолчанию для CentOS 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

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

Все версии .NET доступны для загрузки в https://dotnet.microsoft.com/download/dotnet, но для этого требуется установка вручную. Можно попробовать использовать диспетчер пакетов для установки другой версии .NET. Однако запрошенная версия может быть недоступна.

Пакеты, добавляемые в веб-каналы диспетчера пакетов, именуются в формате, уязвимом для хакерских атак, например: {product}-{type}-{version}.

  • product
    Тип устанавливаемого продукта .NET. Допустимые параметры:

    • dotnet
    • aspnetcore
  • type
    Позволяет выбрать пакет SDK или среду выполнения. Допустимые параметры:

    • sdk
    • исполняющая среда
  • version
    Версия пакета SDK или среды выполнения для установки. Эта статья всегда будет содержать инструкции для последней поддерживаемой версии. Допустимые параметры — любая выпущенная версия, например:

    • 5,0
    • 3.1
    • 3.0
    • 2.1

    Возможно, пакет SDK или среда выполнения, которые вы пытаетесь скачать, недоступны для вашего дистрибутива Linux. Список поддерживаемых дистрибутивов см. в статье Установка .NET в Linux.

Примеры

  • Установка среды выполнения ASP.NET Core 5.0: aspnetcore-runtime-5.0
  • Установка среды выполнения .NET Core 2.1: dotnet-runtime-2.1
  • Установка пакета SDK .NET 5: dotnet-sdk-5.0
  • Установка пакета SDK для .NET Core 3.1: dotnet-sdk-3.1

Пакет отсутствует

Если сочетание пакета и версии больше не поддерживается, оно недоступно. Например, пакет SDK для ASP.NET Core отсутствует, компоненты этого пакета SDK входят в состав пакета SDK для .NET. Значение aspnetcore-sdk-2.2 неправильное и должно быть равно dotnet-sdk-2.2 Список дистрибутивов Linux, поддерживаемых .NET, см. в статье Зависимости и требования для .NET.

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

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

Не удалось найти пакет

Важно!

Установка диспетчера пакетов поддерживается только в архитектуре x64. Для других архитектур, например ARM, установка .NET должна выполняться другими способами, такими как пакет Snap, скрипты установщика или ручная двоичная установка.

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

Ошибка получения

При установке пакета .NET может появиться примерно такое сообщение об ошибке: signature verification failed for file 'repomd.xml' from repository 'packages-microsoft-com-prod'. В целом эта ошибка означает, что веб-канал пакета для .NET сейчас обновляется до новой версии пакета и следует повторить попытку позже. При обновлении канал пакета недоступен не более двух часов. Если эта ошибка сохраняется более двух часов, сообщите о проблеме по адресу https://github.com/dotnet/core/issues.

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

Зависимости

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

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

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

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

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

Следующие шаги