Установка Mono на Debian 11: пошаговое руководство

Кратко о Mono
Mono — это открытая платформа для разработки приложений и библиотек, ориентированная на совместимость с экосистемой .NET от Microsoft. Она реализует Common Language Runtime (CLR) и позволяет запускать .NET-приложения на Linux, macOS, Windows, Solaris, BSD и мобильных платформах (iOS через MonoTouch, Android через соответствующие инструменты).
Определение: Common Language Runtime (CLR) — среда выполнения, которая загружает и исполняет байт-код .NET, управляет памятью и обеспечивает взаимодействие между языками.
Важно: Mono обеспечивает совместимость на уровне библиотек и API, поэтому многие приложения, написанные для Microsoft .NET на Windows, запускаются на Mono с минимальными изменениями.
Что вы получите из этого руководства
- Полный набор команд для установки Mono на Debian 11.
- Проверку корректности установки и запуск простого C# приложения.
- Советы по удалению старых версий, типичные ошибки и варианты решения.
- Контрольный список и критерии приёмки для разработчика и администратора.
Предварительные требования
- Сервер или рабочая станция с Debian 11 и подключением к интернету.
- Учетная запись с правами sudo.
Обновление системы
Перед установкой обновите пакеты и установите зависимости. Выполните команды последовательно:
sudo apt-get updatesudo apt-get upgrade -yУстановите необходимые пакеты для работы с HTTPS-репозиториями и GPG-ключами:
sudo apt-get install gnupg dirmngr apt-transport-https ca-certificates -yImportant: если apt-transport-https уже deprecated в вашей сборке, apt обычно умеет работать с HTTPS без отдельного пакета; команда безопасна и не приведёт к повреждению системы.
Удаление старых версий Mono
Перед установкой новой версии рекомендуем удалить предыдущие инсталляции, чтобы избежать конфликтов:
sudo apt remove --purge --auto-remove mono-runtimeПримечание: эта команда удаляет базовый пакет mono-runtime и связанные зависимости; если у вас установлены дополнительные пакеты Mono, их тоже может потребоваться удалить вручную.
Добавление официального репозитория Mono и ключа
Добавьте GPG-ключ разработчиков Mono (требуется для проверки пакетов):
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EFДобавьте официальный репозиторий Mono для Debian/Buster (под Debian 11 обычно совместимость с «stable-buster» работает корректно):
sudo sh -c 'echo "deb https://download.mono-project.com/repo/debian stable-buster main" > /etc/apt/sources.list.d/mono-official-stable.list'После добавления репозитория обновите список пакетов:
sudo apt-get updateПроверьте, что пакет mono доступен в локальных источниках:
sudo apt search monoРезультат покажет список пакетов и их краткие описания.

Установка Mono
Чтобы установить полный набор инструментов и библиотек Mono, выполните:
sudo apt-get install mono-complete -ymono-complete включает компиляторы, runtime и основные библиотеки, необходимые для большинства приложений.
Проверьте установленную версию Mono:
mono --versionВы должны увидеть номер версии и информацию о сборке Mono.

Дополнительно проверьте информацию о пакете:
sudo apt-cache policy mono-complete
Примечание: если вам требуется только runtime, можно установить более лёгкий пакет, но в этом руководстве мы используем mono-complete для полного набора.
Тестирование установки — создание и запуск простого приложения
Создайте файл hello.cs в любом удобном каталоге. В примере используем текстовый редактор nano:
sudo nano hello.csВставьте следующий код C#:
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
Console.WriteLine ("Hello World!");
}
}Короткое объяснение компонентов кода:
- using System: подключает базовые типы и функции ввода/вывода.
- public class HelloWorld: определение класса с именем HelloWorld.
- public static void Main: точка входа приложения.
- Console.WriteLine: выводит текст в консоль.
Сохраните файл: нажмите CTRL+X, затем Y и Enter.
Скомпилируйте исходник в исполняемый файл .exe:
mono-csc hello.csЕсли компиляция прошла успешно, в каталоге появится файл hello.exe. Проверьте его:
ls -l *.exeЗапустите приложение через Mono:
mono hello.exeВ консоли должно появиться:
Hello World!Если вывод соответствует ожидаемому, Mono установлен и работает корректно.
Критерии приёмки
- Команда mono –version возвращает номер версии без ошибок.
- Команда mono hello.exe выводит “Hello World!”.
- apt-cache policy показывает установку пакета mono-complete из официального репозитория.
Типичные проблемы и их решение
Important: выполнение команд с сетевыми ресурсами может зависеть от прокси и брандмауэров.
- Проблема: apt-key выдаёт предупреждение о deprecated. Решение: ключ можно добавить альтернативными способами (gpg + trusted.gpg.d), но команда apt-key по-прежнему работает для многих систем.
- Проблема: пакет не найден после добавления репозитория. Решение: проверьте /etc/apt/sources.list.d/mono-official-stable.list, повторите sudo apt-get update, проверьте сетевые подключения и доступность download.mono-project.com.
- Проблема: конфликт версий при наличии старого Mono. Решение: полностью удалите старые пакеты mono* через apt remove/purge и очистите кеш apt.
Альтернативные подходы
- Использовать официальную кроссплатформенную платформу .NET (раньше называлась .NET Core), если вам нужен современный SDK от Microsoft с поддержкой последних версий языка и инструментов. Это отдельная платформа с собственными пакетами.
- Для ограниченных сценариев можно установить только runtime-пакеты или использовать контейнеры (Docker) с предустановленным Mono.
Роли и чек-листы
Для администратора (sysadmin):
- Проверить, что на сервере Debian 11 и есть доступ в интернет.
- Обновить систему и установить зависимости.
- Добавить ключ и репозиторий Mono и обновить apt.
- Установить mono-complete и проверить версию.
- Настроить резервирование/бэкап в случае обновлений.
Для разработчика:
- Создать и скомпилировать тестовый проект.
- Запустить приложение и убедиться в корректности вывода.
- Проверить совместимость библиотек и сторонних пакетов.
Критерии завершённости (Definition of Done)
- Установлен mono-complete и подтверждена его работоспособность командой mono –version.
- Запущен и успешно выполнен тестовый исполняемый файл.
- Все связанные службы/проекты, которые будут использовать Mono, протестированы в рабочей среде.
Набор тестов/приёмочных сценариев
- Установка в чистой VM Debian 11 по шагам из руководства — ожидаемый результат: mono –version возвращает версию.
- Компиляция и запуск hello.cs — ожидаемый результат: “Hello World!” в выводе.
- Удаление mono-runtime до установки и последующая установка mono-complete — ожидаемый результат: установка проходит без конфликтов.
Безопасность и конфиденциальность
- Загружайте ключи и пакеты только из официального репозитория Mono.
- Проверяйте целостность пакетов через механизмы APT/GPG.
- Если система подключена к корпоративной сети, согласуйте изменения с политиками безопасности.
Короткий словарь
- Mono: реализация CLR и набор библиотек для запуска .NET-приложений на разных ОС.
- CLR: среда выполнения Common Language Runtime.
- mono-complete: метапакет, включающий runtime, компиляторы и библиотеки Mono.
Подробная сводка и рекомендации
- Для большинства задач достаточно mono-complete. Если вам важна минимизация занимаемого места, можно установить более узкие пакеты.
- Для новых проектов рассмотрите использование официального .NET SDK от Microsoft (пакет dotnet), если требуется поддержка последних возможностей языка и официальная поддержка.
Короткое объявление для команды (100–200 слов)
Mono успешно устанавливается на Debian 11 с помощью официального репозитория Mono. Следуйте шагам: обновите систему, добавьте GPG-ключ и репозиторий, установите mono-complete и проверьте установку командой mono –version. Для проверки соберите простую программу “Hello World” и запустите её через mono. В руководстве также приведены рекомендации по удалению старых версий, типичные ошибки и чек-листы для администратора и разработчика.
Если возникнут вопросы или неполадки, сначала проверьте сетевой доступ к download.mono-project.com, затем содержимое /etc/apt/sources.list.d/ и вывод apt-cache policy для пакета mono-complete.
Заключение
После выполнения шагов из этого руководства у вас будет рабочая инсталляция Mono на Debian 11, готовая для разработки и запуска .NET-приложений. Если вы планируете развертывание в продакшене, протестируйте все зависимости ваших приложений и настройте резервные копии перед обновлениями.
Оставляйте вопросы и отзывы в комментариях — мы поможем с отладкой и советами по миграции.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента