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

.NET поддерживается в Ubuntu. В этой статье описано, как установить .NET в Ubuntu. Когда версия Ubuntu перестает поддерживаться, .NET больше не поддерживается с этой версией.

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

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

Важно!

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

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

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

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

Ubuntu .NET
22.04 (LTS) 6+
20.04 (LTS) 3.1, 6
18.04 (LTS) 3.1, 6
16.04 (LTS) 3.1, 6

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

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

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

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

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

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

22.04

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

Если вы ранее устанавливали .NET 6 из packages.microsoft.com, см. рекомендации по установке .NET 6 в Ubuntu 22.04.

.NET 6 входит в веб-каналы диспетчера пакетов Ubuntu 22.04.

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

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

sudo apt-get update && \
  sudo apt-get install -y dotnet6

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

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

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

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

sudo apt-get install -y dotnet-runtime-6.0

22.04 (Майкрософт веб-канал пакета)

Примечание

Предупреждение. .NET 6 входит в состав Ubuntu 22.04. Ознакомьтесь с советами по установке .NET 6 в Ubuntu 22.04 , если вы хотите использовать пакеты .NET из packages.microsoft.com.

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

Откройте терминал и выполните следующие команды:

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

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

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package dotnet-sdk-6.0 (Не удалось найти пакет dotnet-sdk-6.0), см. раздел Устранение неполадок с APT.

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

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

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package aspnetcore-runtime-6.0 (Не удалось найти пакет aspnetcore-runtime-6.0), см. раздел Устранение неполадок с APT.

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

sudo apt-get install -y dotnet-runtime-6.0

Примечание

Ubuntu 22.04 включает OpenSSL 3 в качестве базовой версии. .NET 6 поддерживает OpenSSL 3, а более ранние версии .NET — нет. Майкрософт не тестирует и не поддерживает использование OpenSSL 1.x в Ubuntu 22.04. Дополнительные сведения см. в разделе Улучшения безопасности .NET 6.

20.04

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

Откройте терминал и выполните следующие команды:

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

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

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package dotnet-sdk-6.0 (Не удалось найти пакет dotnet-sdk-6.0), см. раздел Устранение неполадок с APT.

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

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

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package aspnetcore-runtime-6.0 (Не удалось найти пакет aspnetcore-runtime-6.0), см. раздел Устранение неполадок с APT.

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

sudo apt-get install -y dotnet-runtime-6.0

18,04

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

Откройте терминал и выполните следующие команды:

wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

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

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package dotnet-sdk-6.0 (Не удалось найти пакет dotnet-sdk-6.0), см. раздел Устранение неполадок с APT.

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

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

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package aspnetcore-runtime-6.0 (Не удалось найти пакет aspnetcore-runtime-6.0), см. раздел Устранение неполадок с APT.

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

sudo apt-get install -y dotnet-runtime-6.0

16.04

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

Откройте терминал и выполните следующие команды:

wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

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

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

sudo apt-get update && \
  sudo apt-get install -y dotnet-sdk-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package dotnet-sdk-6.0 (Не удалось найти пакет dotnet-sdk-6.0), см. раздел Устранение неполадок с APT.

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

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

sudo apt-get update && \
  sudo apt-get install -y aspnetcore-runtime-6.0

Важно!

Если появляется сообщение об ошибке, похожее на Unable to locate package aspnetcore-runtime-6.0 (Не удалось найти пакет aspnetcore-runtime-6.0), см. раздел Устранение неполадок с APT.

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

sudo apt-get install -y dotnet-runtime-6.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 с помощью APT

Если для .NET доступен новый выпуск исправлений, можете выполнить обновление с помощью APT и следующих команд:

sudo apt-get update
sudo apt-get upgrade

Если вы обновили дистрибутив Linux с момента установки .NET, может потребоваться перенастроить репозиторий пакетов Майкрософт. Выполните инструкции по установке для текущей версии дистрибутива, чтобы обновить репозиторий пакетов для обновлений .NET до соответствующей версии.

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

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

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

Важно!

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

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

Не удалось найти \ Не удалось установить некоторые пакеты

Примечание

Эти сведения применяются только при установке .NET из веб-канала пакета Майкрософт.

Если появляется сообщение об ошибке, похожее на Не удалось найти пакет {dotnet-package} или Не удалось установить некоторые пакеты, выполните проведенные ниже команды.

В следующем наборе команд есть два заполнителя.

  • {dotnet-package}
    Этот заполнитель представляет собой устанавливаемый пакет .NET, например aspnetcore-runtime-3.1. Это используется в следующей команде sudo apt-get install.

  • {os-version}
    Этот заполнитель представляет собой версию дистрибутива, которую вы используете. Он используется в приведенной ниже команде wget. Версия дистрибутива — это числовое значение, например 20.04 в Ubuntu или 10 в Debian.

Сначала попробуйте очистить список пакетов.

sudo dpkg --purge packages-microsoft-prod && sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update

Затем попробуйте установить .NET еще раз. Если проблема не решена, можно выполнить установку вручную с помощью приведенных ниже команд.

sudo apt-get install -y gpg
wget -O - https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o microsoft.asc.gpg
sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/
wget https://packages.microsoft.com/config/ubuntu/{os-version}/prod.list
sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list
sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg
sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list
sudo apt-get update && \
  sudo apt-get install -y {dotnet-package}

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

При установке пакета .NET может появиться примерно такое сообщение об ошибке: Failed to fetch ... File has unexpected size ... Mirror sync in progress?. Эта ошибка может означать, что веб-канал пакета для .NET сейчас обновляется до новой версии пакета и следует повторить попытку позже. Во время обновления веб-канал пакета остается недоступным не более 30 минут. Если вы продолжаете получать эту ошибку через 30 минут, отправьте заявку о проблеме на адрес https://github.com/dotnet/core/issues.

Зависимости

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

  • libc6
  • libgcc1
  • libgssapi-krb5-2
  • libicu52 (для 14.x)
  • libicu55 (для 16.x)
  • libicu60 (для 18.x)
  • libicu66 (для 20.x)
  • libssl1.0.0 (для 14.x, 16.x)
  • libssl1.1 (для 18.x, 20.x)
  • libstdc++6
  • zlib1g

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

  • libgdiplus (версия 6.0.1 или выше)

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

    Вы можете установить последнюю версию libgdiplus, добавив в систему репозиторий Mono. Для получения дополнительной информации см. https://www.mono-project.com/download/stable/.

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