Установка пакета SDK для .NET или среды выполнения .NET в Ubuntu
В этой статье описано, как установить .NET в Ubuntu. Репозиторий пакетов Майкрософт содержит каждую версию .NET, которая в настоящее время или ранее поддерживается в Ubuntu. Начиная с Ubuntu 22.04 некоторые версии .NET доступны в веб-канале пакетов Ubuntu. Дополнительные сведения о доступных версиях см. в разделе "Поддерживаемые дистрибутивы ".
Предупреждение
Рекомендуется выбрать один репозиторий для исходных пакетов .NET. Не смешивайте пакеты .NET из нескольких репозиториев пакетов, так как это приводит к проблемам при попытке приложений устранить определенную версию .NET.
Способ | Плюсы | Минусы |
---|---|---|
Диспетчер пакетов (веб-канал Майкрософт) |
|
|
Диспетчер пакетов (веб-канал Ubuntu) |
|
|
Скрипт \ Извлечение вручную |
|
|
Решите, как установить .NET
Если ваша версия Ubuntu поддерживает .NET через встроенный веб-канал Ubuntu, поддержка этих сборок .NET предоставляется каноническим, а сборки могут быть оптимизированы для разных рабочих нагрузок. Корпорация Майкрософт предоставляет поддержку пакетов в веб-канале репозитория пакетов Майкрософт.
Используйте следующие разделы, чтобы определить, как установить .NET:
- Я использую Ubuntu 22.04 или более поздней версии, и мне нужен только .NET
- Я использую версию Ubuntu до 22.04
- Я использую другие пакеты Майкрософт, например
powershell
,mdatp
илиmssql
- Я хочу создать приложение .NET
- Я хочу запустить приложение .NET в контейнере, облаке или сценарии непрерывной интеграции
- Мой дистрибутив Ubuntu не включает нужную версию .NET, или мне нужна не поддерживается версия .NET.
- Я хочу установить предварительную версию
- Я не хочу использовать APT
- Я использую ЦП на основе Arm
Я использую Ubuntu 22.04 или более поздней версии, и мне нужен только .NET
Установите .NET через веб-канал Ubuntu. Дополнительные сведения см. на следующих страницах:
- Установите .NET в Ubuntu 22.04.
- Установите .NET в Ubuntu 22.10.
- Установите .NET в Ubuntu 23.04.
- Установите .NET в Ubuntu 23.10.
Важно!
Версии пакета SDK для .NET, предлагаемые Каноническим, всегда находятся в группе функций .1xx. Если вы хотите использовать более новый выпуск группы компонентов, используйте веб-канал Майкрософт для установки пакета SDK. Убедитесь, что вы просматриваете сведения в пакете .NET в статье Linux , чтобы понять последствия переключения между веб-каналами репозитория.
Если вы собираетесь установить репозиторий Майкрософт для использования других пакетов Майкрософт, таких как powershell
mdatp
, илиmssql
, необходимо отменять использование пакетов .NET, предоставляемых репозиторием Майкрософт. Инструкции по отмене использования пакетов см. в разделе "Мой дистрибутив Linux" предоставляет пакеты .NET, и я хочу их использовать.
Я использую версию Ubuntu до 22.04
Используйте инструкции на странице Ubuntu для конкретной версии.
Дополнительные сведения о поддерживаемых дистрибутивах для вашей версии Ubuntu см. в разделе "Поддерживаемые дистрибутивы". Если вы устанавливаете версию, которая не поддерживается, ознакомьтесь с разделом "Регистрация репозитория пакетов Майкрософт".
Я использую другие пакеты Майкрософт, например powershell
, mdatp
или mssql
Если версия Ubuntu поддерживает .NET через встроенный веб-канал Ubuntu, необходимо решить, какой веб-канал должен установить .NET. В разделе "Поддерживаемые дистрибутивы" представлена таблица, в которой перечислены версии .NET, доступные веб-каналы пакетов.
Если вы хотите создать пакеты .NET из веб-канала Ubuntu, необходимо отключить пакеты .NET, предоставляемые репозиторием Майкрософт. Инструкции по отмене использования пакетов см. в разделе "Мой дистрибутив Linux" предоставляет пакеты .NET, и я хочу их использовать.
Я хочу создать приложение .NET
Используйте те же источники пакетов для пакета SDK, что и для среды выполнения. Например, если вы используете Ubuntu 22.04 и .NET 6, но не .NET 7, рекомендуется установить .NET через встроенный веб-канал Ubuntu. Однако если вы переходите к .NET 7, который не предоставляется Каноническим для Ubuntu 22.04, удалите .NET и переустановите его с помощью репозитория пакетов Майкрософт. Дополнительные сведения см. в разделе "Регистрация и установка" в репозитории пакетов Майкрософт. Кроме того, ознакомьтесь с другими предложениями в разделе "Решить, как установить .NET ".
Я хочу запустить приложение .NET в контейнере, облаке или сценарии непрерывной интеграции
Если ваша версия Ubuntu предоставляет требуемую версию .NET, установите ее из встроенного веб-канала. В противном случае зарегистрируйте репозиторий пакетов Майкрософт и установите .NET из этого репозитория. Просмотрите сведения в разделе "Поддерживаемые дистрибутивы ".
Если нужная версия .NET недоступна, попробуйте использовать скрипт dotnet-install.
Мой дистрибутив Ubuntu не включает нужную версию .NET, или мне нужна не поддерживается версия .NET.
Рекомендуется использовать APT и репозиторий пакетов Майкрософт. Дополнительные сведения см. в разделе "Регистрация и установка" в разделе репозитория пакетов Майкрософт.
Я хочу установить предварительную версию
Используйте один из следующих способов установки .NET:
Я не хочу использовать APT
Если требуется автоматическая установка, используйте сценарий установки Linux.
Если требуется полный контроль над интерфейсом установки .NET, скачайте tarball и вручную установите .NET. Дополнительные сведения см. в разделе "Установка вручную".
Я использую ЦП на основе Arm
Используйте один из следующих способов установки .NET:
Поддерживаемые дистрибутивы
В приведенной ниже таблице содержится список поддерживаемых сейчас выпусков .NET и версий Ubuntu, в которых они поддерживаются. Каждая ссылка переходит на определенную страницу версии Ubuntu с определенными инструкциями по установке .NET для этой версии Ubuntu.
Ubuntu | Поддерживаемые версии .NET | Доступно в веб-канале Ubuntu | Доступно в веб-канале Майкрософт |
---|---|---|---|
23.10 | 8.0, 7.0, 6.0 | 8.0, 7.0, 6.0 | 8.0, 7.0, 6.0 |
23.04 | 8.0, 7.0, 6.0 | 7.0, 6.0 | 8.0, 7.0, 6.0 |
22.10 | 7.0, 6.0 | 7.0, 6.0 | 7.0, 6.0, 3.1 |
22.04 (LTS) | 8.0, 7.0, 6.0 | 6,0 | 8.0, 7.0, 6.0, 3.1 |
20.04 (LTS) | 8.0, 7.0, 6.0 | нет | 8.0, 7.0. 6.0, 5.0, 3.1, 2.1 |
18.04 (LTS) | 7.0, 6.0 | нет | 7.0. 6.0, 5.0, 3.1, 2.2, 2.1 |
16.04 (LTS) | 6,0 | нет | 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0 |
Если версия Ubuntu не поддерживается, .NET больше не поддерживается с этой версией.
Следующие версии .NET больше не поддерживаются (❌).
- .NET 5
- .NET Core 3.1.
- .NET Core 3.0
- .NET Core 2.2
- .NET Core 2.1
- .NET Core 2.0;
Регистрация репозитория пакетов Майкрософт
Репозиторий пакетов Майкрософт содержит все версии .NET, которые были ранее или поддерживаются в вашей версии Ubuntu. Если ваша версия Ubuntu предоставляет пакеты .NET, вам потребуется отменять использование пакетов Ubuntu и использовать репозиторий Майкрософт. Инструкции по отмене использования пакетов см. в статье о том, что требуется версия .NET, которая не предоставляется дистрибутивом Linux.
Важно!
Установка диспетчера пакетов поддерживается только в архитектуре x64. Другие архитектуры, такие как Arm, должны устанавливать .NET другими средствами, например с скриптом установщика или ручной установкой.
Предварительные версии выпусков недоступны в репозитории пакетов Майкрософт. Дополнительные сведения см. в разделе "Установка предварительных версий".
Внимание
Рекомендуется использовать только один репозиторий для управления всеми установками .NET. Если вы ранее установили .NET с репозиторием Ubuntu, необходимо очистить систему пакетов .NET и настроить APT, чтобы игнорировать веб-канал Ubuntu. Дополнительные сведения о том, как это сделать, см. в статье о том, что мне нужна версия .NET, которая не предоставляется дистрибутивом Linux.
Для установки версии с помощью APT потребуется выполнить несколько команд. Перед установкой .NET выполните приведенные ниже команды, чтобы добавить ключ подписывания пакета Майкрософт в список доверенных ключей и добавить репозиторий пакетов.
Откройте терминал и выполните следующие команды:
# Get Ubuntu version
declare repo_version=$(if command -v lsb_release &> /dev/null; then lsb_release -r -s; else grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"'; fi)
# Download Microsoft signing key and repository
wget https://packages.microsoft.com/config/ubuntu/$repo_version/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
# Install Microsoft signing key and repository
sudo dpkg -i packages-microsoft-prod.deb
# Clean up
rm packages-microsoft-prod.deb
# Update packages
sudo apt update
Совет
Предыдущий сценарий был написан для Ubuntu, и он может не работать, если вы используете производное распределение, например Linux Mint. Скорее всего $repo_version
, переменная не будет назначена правильному значению, что делает URI для команды недопустимым wget
. Эта переменная сопоставляется с конкретной версией Ubuntu, для которой требуется получить пакеты, например 22.10 или 23.04.
Вы можете использовать веб-браузер и https://packages.microsoft.com/config/ubuntu/ просмотреть, какие версии Ubuntu доступны для использования в качестве $repo_version
значения.
Установка .NET
После регистрации репозитория пакетов Майкрософт или если ваша версия веб-канала Ubuntu по умолчанию поддерживает пакет .NET, вы можете установить .NET через диспетчер пакетов с apt install <package-name>
помощью команды. Замените <package-name>
именем пакета .NET, который требуется установить. Например, чтобы установить пакет SDK для .NET 8.0, используйте команду apt install dotnet-sdk-8.0
. В следующей таблице перечислены поддерживаемые в настоящее время пакеты .NET:
Продукт | Тип | Пакет | |
---|---|---|---|
8.0 | ASP.NET Core | Параметры выполнения | aspnetcore-runtime-8.0 |
8.0 | .NET | Параметры выполнения | dotnet-runtime-8.0 |
8.0 | .NET | SDK | dotnet-sdk-8.0 |
7.0 | ASP.NET Core | Параметры выполнения | aspnetcore-runtime-7.0 |
7.0 | .NET | Параметры выполнения | dotnet-runtime-7.0 |
7.0 | .NET | SDK | dotnet-sdk-7.0 |
6.0 | ASP.NET Core | Параметры выполнения | aspnetcore-runtime-6.0 |
6.0 | .NET | Параметры выполнения | dotnet-runtime-6.0 |
6.0 | .NET | SDK | dotnet-sdk-6.0 |
Если вы хотите установить неподдерживаемую версию .NET, проверка раздел поддерживаемых дистрибутивов, чтобы узнать, доступна ли эта версия .NET. Затем замените версию .NET, которую необходимо установить. Например, чтобы установить ASP.NET Core 2.1, используйте имя aspnetcore-runtime-2.1
пакета.
Совет
Если вы не создаете приложения .NET, установите среду выполнения ASP.NET Core, так как она включает среду выполнения .NET, а также поддерживает ASP.NET приложения Core.
Некоторые переменные среды влияют на запуск .NET после его установки. Дополнительные сведения см. в разделе sdk для .NET и переменных среды CLI.
Удаление .NET
Если вы установили .NET через диспетчер пакетов, удалите его так же, как и команда apt-get remove
:
sudo apt-get remove dotnet-sdk-6.0
Дополнительные сведения см. в разделе "Удаление .NET".
Установка предварительных версий
Предварительные версии и выпуски версии .NET недоступны в репозиториях пакетов. Предварительные версии и кандидаты .NET можно установить одним из следующих способов:
Удалите предварительные версии
При использовании диспетчера пакетов для управления установкой .NET вы можете столкнуться с конфликтом, если ранее вы установили предварительную версию. Диспетчер пакетов может интерпретировать выпуск, не являющийся предварительной версией, в качестве более ранней версии .NET. Чтобы установить выпуск, не относящийся к предварительной версии, сначала удалите предварительные версии. Дополнительные сведения об удалении .NET см. в разделе Удаление среды выполнения .NET и пакета SDK.
Обновление .NET с помощью APT
Если вы установили .NET через диспетчер пакетов, вы можете обновить пакет с помощью apt upgrade
команды. Например, следующие команды обновляют dotnet-sdk-7.0
пакет с последней версией:
sudo apt update
sudo apt upgrade dotnet-sdk-7.0
Совет
Если вы обновили дистрибутив Linux с момента установки .NET, может потребоваться перенастроить репозиторий пакетов Майкрософт. Выполните инструкции по установке для текущей версии дистрибутива, чтобы обновить репозиторий пакетов для обновлений .NET до соответствующей версии.
Устранение неполадок
Начиная с Ubuntu 22.04, вы можете столкнуться с ситуацией, когда она кажется доступной только частью .NET. Например, вы установили среду выполнения и пакет SDK, но при запуске dotnet --info
отображается только среда выполнения. Эта ситуация может быть связана с использованием двух разных источников пакетов. Встроенные веб-каналы пакетов Ubuntu 22.04 и Ubuntu 22.10 включают некоторые версии .NET, но не все, и вы также могли установить .NET из веб-каналов Майкрософт. Дополнительные сведения об устранении этой проблемы см. в статье "Устранение ошибок .NET, связанных с отсутствующими файлами в Linux".
Проблемы APT
В этом разделе содержатся сведения об распространенных ошибках, которые могут возникнуть при использовании APT для установки .NET.
Не удалось найти пакет
Важно!
Установка диспетчера пакетов поддерживается только в архитектуре x64. Другие архитектуры, такие как Arm, должны устанавливать .NET другими средствами, такими как Snap, скрипт установщика или ручная двоичная установка.
Дополнительные сведения об установке .NET без использования диспетчера пакетов см. в одной из следующих статей:
Не удалось найти \ Не удалось установить некоторые пакеты
Примечание.
Эта информация применяется только при установке .NET из веб-канала пакетов Майкрософт.
Если появляется сообщение об ошибке, похожее на Не удалось найти пакет {dotnet-package} или Не удалось установить некоторые пакеты, выполните проведенные ниже команды.
В следующем наборе команд есть два заполнителя.
{dotnet-package}
Этот заполнитель представляет собой устанавливаемый пакет .NET, напримерaspnetcore-runtime-8.0
. Это используется в следующей команде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
- libgcc-s1 (для 22.x)
- libgssapi-krb5-2
- libicu55 (для 16.x)
- libicu60 (для 18.x)
- libicu66 (для 20.x)
- libicu70 (для 22.04)
- libicu71 (для 22.10)
- libicu72 (для 23.04)
- liblttng-ust1 (для 22.x)
- libssl1.0.0 (для 16.x)
- libssl1.1 (для 18.x, 20.x)
- libssl3 (для 22.x)
- libstdc++6
- libunwind8 (для 22.x)
- zlib1g
Зависимости можно установить с помощью apt install
команды. В следующем фрагменте кода показано, как установить библиотеку zlib1g
:
sudo apt install zlib1g
Если приложение .NET использует сборку System.Drawing.Common , необходимо также установить libgdiplus. Так как System.Drawing.Common больше не поддерживается в Linux, это работает только в .NET 6 и требует установки System.Drawing.EnableUnixSupport
параметра конфигурации среды выполнения.
Вы можете установить последнюю версию libgdiplus , добавив репозиторий Mono в систему.
Следующие шаги
.NET feedback
Обратная связь
Отправить и просмотреть отзыв по