Гид по технологиям

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

• 6 min read • Руководство • Обновлено 27 Nov 2025
Установка Mono на Debian 11 — шаг за шагом
Установка 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 update
sudo apt-get upgrade -y

Установите необходимые пакеты для работы с HTTPS-репозиториями и GPG-ключами:

sudo apt-get install gnupg dirmngr apt-transport-https ca-certificates -y

Important: если 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 в apt

Установка Mono

Чтобы установить полный набор инструментов и библиотек Mono, выполните:

sudo apt-get install mono-complete -y

mono-complete включает компиляторы, runtime и основные библиотеки, необходимые для большинства приложений.

Проверьте установленную версию Mono:

mono --version

Вы должны увидеть номер версии и информацию о сборке Mono.

Скриншот вывода mono --version

Дополнительно проверьте информацию о пакете:

sudo apt-cache policy mono-complete

Скриншот информации о пакете 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, протестированы в рабочей среде.

Набор тестов/приёмочных сценариев

  1. Установка в чистой VM Debian 11 по шагам из руководства — ожидаемый результат: mono –version возвращает версию.
  2. Компиляция и запуск hello.cs — ожидаемый результат: “Hello World!” в выводе.
  3. Удаление 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-приложений. Если вы планируете развертывание в продакшене, протестируйте все зависимости ваших приложений и настройте резервные копии перед обновлениями.

Оставляйте вопросы и отзывы в комментариях — мы поможем с отладкой и советами по миграции.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро