Установка .NET 5 на Ubuntu 20.04 (LTS)

Что такое .NET 5
.NET 5 — это кроссплатформенная, модульная и открытая реализация платформы .NET. Она объединяет возможности предыдущих .NET Core и .NET Framework веток, позволяя разрабатывать и запускать приложения на Windows, Linux и macOS. SDK включает инструменты разработки; Runtime — только для запуска приложений.
Ключевая идея: установите SDK, если вы разрабатываете; установите Runtime, если только запускаете чужие приложения.
Предварительные требования
- Ubuntu 20.04 LTS с подключением к интернету.
- Права sudo или root для установки пакетов и добавления репозиториев.
- Минимум несколько сотен мегабайт свободного места для SDK.
Установка .NET SDK на Ubuntu 20.04 — пошагово
Ниже — рекомендуемый и поддерживаемый Microsoft способ установки путём добавления официального репозитория пакетов.
- Скачайте пакет конфигурации репозитория Microsoft и установите его:
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- Обновите индекс пакетов apt:
sudo apt update- Убедитесь, что установлен транспорт HTTPS для apt:
sudo apt install -y apt-transport-https- Установите .NET 5 SDK (включает Runtime):
sudo apt-get install -y dotnet-sdk-5.0Альтернатива через snap (удобно для изолированных окружений):
sudo snap install dotnet-sdk --classicПримечание: snap-пакеты иногда публикуются позже или имеют другую политику версий; для production-окружений чаще рекомендуют репозиторий apt.
Проверка установки
Проверьте установленные SDKs:
dotnet --list-sdksПроверьте установленные рантаймы:
dotnet --list-runtimesЕсли команды возвращают версии и пути — установка прошла успешно.
Быстрый пример: создать, собрать и запустить приложение
mkdir hello-dotnet && cd hello-dotnet
dotnet new console -o src
cd src
dotnet build
dotnet runОжидаемый результат: приложение компилируется и выводит стандартное сообщение консольного шаблона.
Разработка и полезные команды
- dotnet new — создать проект по шаблону.
- dotnet restore — восстановить зависимости.
- dotnet build — собрать проект.
- dotnet run — собрать и запустить.
- dotnet publish — собрать для деплоя.
- dotnet –help — справка по командам.
Альтернативные подходы и когда их выбрать
- apt (официальный репозиторий Microsoft): рекомендуемый способ для серверов и production — обеспечивает обновления через системный менеджер пакетов.
- snap: удобно для локальной разработки, изоляции и быстрых установок; может иметь особенности обновления и confinement.
- Ручная загрузка tar.gz: вариант для специализированных окружений или если требуется изолированная инсталляция, но требует больше ручной поддержки.
Решение: если вам нужен долгосрочный стабильный апдейт-канал — используйте apt; если важна простота установки для разработчика — snap подойдёт.
Типичные ошибки и способы их устранения
Ошибка «package not found» при установке dotnet-sdk-5.0:
- Убедитесь, что вы добавили пакет packages-microsoft-prod.deb и выполнили sudo apt update.
- Проверьте, что вы используете Ubuntu 20.04; репозиторий специфичен для версии.
Проблемы с GPG ключом/доверенными ключами:
- Повторно установите пакет конфигурации репозитория и проверьте вывод dpkg -i.
Проблемы с apt-transport-https:
- Установите пакет: sudo apt install -y apt-transport-https.
Несовместимость версий (несколько SDK в системе):
- dotnet использует SDK по правилу поиска в каталоге проекта; можно зафиксировать версию в global.json.
PATH и окружение: если команда dotnet не найдена — проверьте, установился ли бинарный файл в /usr/bin или /snap/bin и соответствует ли PATH.
Совет для отладки: запуск dotnet –info даёт подробную информацию о конфигурации и путях.
Модель принятия решений: SDK vs Runtime и выбор менеджера пакетов
- SDK нужен разработчикам и CI.
- Runtime нужен только для запуска приложений в продакшене.
- apt: лучше для серверов и автоматических обновлений через системный администрирование.
- snap: проще начать разработку, но имеет особенности confinement и обновлений.
Простая эвристика: “разрабатываю — ставлю SDK через apt; только запускаю — ставлю runtime через apt или системный пакет приложения.”
Контрольный список по ролям
Разработчик:
- Установлен dotnet-sdk-5.0
- dotnet –list-sdks показывает требуемую версию
- Проекты собираются локально (dotnet build)
DevOps / Системный администратор:
- Репозиторий Microsoft добавлен через packages-microsoft-prod.deb
- Настроены автоматические обновления безопасности
- Деплой запускает приложения с нужным runtime
QA / Тестировщик:
- Среда CI использует ожидаемую версию SDK
- Тесты проходят после обновления SDK или Runtime
Таблица совместимости и советы по миграции
- Ubuntu 20.04 LTS: официально поддерживается для .NET 5 через репозиторий Microsoft.
- Другие дистрибутивы (CentOS, RHEL, Alpine и пр.): поддержка есть, но команды установки и зависимости отличаются — смотрите официальную документацию Microsoft для конкретного дистрибутива.
Миграция: перед обновлением .NET в production проверьте совместимость библиотек и интеграционные тесты.
Безопасность и лучшие практики
- Устанавливайте .NET из официального репозитория Microsoft или из доверенных источников.
- Проверяйте подписи пакетов и используйте HTTPS для обновлений.
- В production окружениях предпочитайте пакеты apt для централизованного управления обновлениями.
Важно: не запускайте непроверенные бинарные сборки из интернета без проверки источника.
Критерии приёмки
- dotnet –list-sdks выводит строку с версией 5.0.x.
- dotnet –list-runtimes показывает соответствующий рантайм.
- Примерный проект создаётся, собирается и запускается без ошибок (dotnet new, build, run).
Краткий глоссарий
- SDK: набор инструментов для разработки (компилятор, шаблоны, утилиты).
- Runtime: среда выполнения, необходимая только для запуска приложений.
- apt: менеджер пакетов Debian/Ubuntu.
- snap: система упаковки приложений от Canonical.
Резюме
Установка .NET 5 на Ubuntu 20.04 сводится к добавлению официального репозитория Microsoft и установке пакета dotnet-sdk-5.0 через apt. Для быстрой работы в локальной среде можно использовать snap. Всегда проверяйте установку командами dotnet –list-sdks и dotnet –list-runtimes и фиксируйте версии в global.json при необходимости.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента