Как запустить mono приложение linux
aptitude install sudo
Все, теперь все операции через sudo. У меня на сервере стоит Debian, поэтому все, что далее написано, применимо к любому дистрибутиву Linux, основанному на Debian, в том числе и к большинству дистрибутивов, основанных на Ubuntu.
Итак, если вы используете Debian, то на первый взляд тут все довольно печально – самой старшей версией, доступной в стандартном репозитории стабильной ветки, является Mono 1.9.1. Идем на сайт Mono. Слегка порывшись в документации можно увидеть, что все-таки существует возможность поставить версию 2.4.2.3. Для этого нужно добавить репозиторий в файл /etc/apt/sources.list:
Обновить список пакетов и произвести установку:
sudo aptitude update
sudo aptitude -t lenny-backports install mono-runtime
В репозитории Ubuntu последних версий, версия 2.4.2.3 доступна, поэтому если нужна эта версия, ее можно установить так:
sudo aptitude install mono-runtime
Установка Mono 2.6
Для установки Mono 2.6.1 нужно добавить в файл /etc/apt/sources.list два репозитория – тестируемых пакетов Debian, для получения свежих версий некоторых пакетов, и репозиторий OpenSuse. Во втором находятся несколько версий Mono 2.6.1 и можно выбрать нужную версию. Так как конкретно для Debian там был только пакет libgdiplus, я добавил репозиторий для Ubuntu 9.10:
Обновляем список пакетов и устанавливаем Mono:
sudo aptutude update
sudo aptitude install mono-runtime
Итак, минимальная конфигурация Mono установлена. Проверить, что установилась именно Mono версии 2.6.1, можно, набрав команду:
Теперь можно доустановить другие нужные пакеты Mono или оставить все как есть.
Настройка nginx в качестве front-end к xsp2.
Итак, процесс установки nginx в качестве front-end сервера к xsp2, заключается в следующем.
Установка и настройка nginx:
Установка xsp2
При желании можно сконфигурировать автозапуск веб-сервера xsp2. Сделать это очень просто, например, через .webapp-файл, который имеет следующий формат
Тегов web-application может быть несколько, по одному на каждое Web-приложение.
Конфигурационной директорией, указанной в стандартном скрипте для автозапуска, является /etc/xsp2/. В ней находится файл debian.webapp, используемый в качестве конфигурационного по умолчанию. Можно внести измения прямо в него. Например, для запуска Web-приложения, используемого выше для проверки работоспособности сервера, изменения выглядят так:
Также, нужно убрать опцию --port $post из скрипта автозапуска, в противном случае указанные в конфигурационном .webapp-файле порты будут проигнорированы.
Теперь нужно проверить работоспособность. Распакуйте и поместите тестовые файлы в папку /var/www/myvps. Запустите nginx и xsp2:
You need the Mono runtime and use one of Apache with mod_mono, a CGI or FastCGI-aware web server with Mono's FastCGI support or the xsp standalone server (all available from our downloads page).
Быстрый анализ интернета, для выбора одного из этих способов, привел меня к статье Максима Крентовского (mkrentovskiy), это достаточно забавно, т.к. спросить у Максима в аське я почему-то не догадался.
Выводы Максима показались мне достаточно убедительными. Я не стал проводить какие-то дополнительные тесты или искать другие источники, для моей задачи ответ был уже очевиден: nginx + xsp. Учтите, в wiki Mono сказано, что xsp надо использовать для отладки и разработки!
Установка nginx
Добавим в sources.list новый репозиторий, пропишем GnuPG-ключ и обновим источники:
Если все сделано правильно, то на команду apt-cache policy nginx мы увидим следующее:
Существует три разных пакета, собранных с разными наборами модулей: nginx-lite, nginx-full (пакет nginx как раз его алиас) и nginx-extras. Какой устанавливать — решать вам, нам бы хватило и lite версии (Proxy есть и ладно), но на момент написания статьи я уже установил full, поэтому будем устанавливать его:
Вот и все шаги для установки из пакетов.
Если вы устанавливаете nginx из исходников, то ./configure надо запускать с такими параметрами:
Это будет практически соответствовать пакету nginx-full , за исключением отсутствия сторонних модулей Upstream Fair Queue и Echo.
Установка Mono
Для Mono таких удобств с репозиториями нет, придется сразу компилировать последние исходники.
upd. Как справедливо заметил Net_Rat, я немного слукавил: можно подключить экспериментальный репозиторий и через pining настроить установку mono и xsp оттуда.
Качаем последние исходники mono и xsp (на момент написания 2.10.2):
Теперь распакуем архивы:
Если tar ругнется на отсутствие bzip2 (в minimal точно ругнется), его нужно поставить:
Для компиляции mono и xsp нам понадобится следующее:
Приступим к конфигурированию и компиляции (процесс непосредственно компиляции может занять продолжительное время, до 20-30 минут):
Если установка прошла успешно, то запуск команды mono --version покажет нам заветное и долгожданное:
Теперь установим xsp:
Похоже, все схватилось. Пора переходить к настройке.
Настройка Xsp
Создадим директорию нашей будущей странички Hello World:
Сразу создадим классический «Hello World» для пробы:
В файле напишем следующие строки:
Поскольку xsp изначально задумывался как тестовый сервер, скриптов запуска демона там нет. Будем исправлять такую ситуацию. Создадим файл /etc/default/xsp , и запишем в него переменные по-умолчанию:
Создадим файл /etc/init.d/xsp , дадим ему права на выполнение ( chmod +x /etc/init.d/xsp ) и в него напишем:
В скрипте запуска так же имеется закомментированная строка для папки с тестами из дистрибутива xsp , для более полноценной картины.
По-умолчанию, сервер слушает на всех интерфейсах, проверить легко:
А если вы переключите на тестовую страницу xsp, то:
Настройка nginx
Суть настройки nginx в проксировании обращений только для asp-файлов. Остальные статические файлы должен раздавать nginx . Не мудрствуя особо сильно, возьмем конфигурацию, которую предложил Максим Крентовский в своей статье и чуть-чуть изменим под наш случай:
Как управлять виртуальными хостами nginx лучше всего знает гугл.
Или, для тестовых настроек:
Вот и все. Повторюсь, что в wiki Mono ясно указано, что xsp лучше использовать для тестов!
Это мой первый пост на хабре, прошу не кидать в меня кирпичи и другие булыжники… Буду очень рад любой критике, как по содержанию статьи, так и по орфографии с пунктуацией. И да, я мог ошибиться с выбором блога. Если так — скажите куда лучше поместить.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это конкретный Linux мы не рекомендуем разработчикам развертывать это решение, поскольку это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Running Mono .
Вы также можете сделать системное изменение и использовать binfmt для регистрации exe-файлов в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
Кроме того, вы можете добавить modprobe для вашего загрузочного скрипта /etc/rc.local, чтобы он выполнялся при загрузке.
Добавьте строку ниже в свой файл /etc/fstab:
Затем, ваша система запускает следующую команду при загрузке:
Обязательно отметьте ваши .exe-файлы как исполняемые в файловой системе:
Обратите внимание, что это doesn ' t меняет ваше ядро, только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогичным образом, вы можете обновить исполняемый файл Mono, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
+1 для опции binfmt_misc, которая является наименьшим обходным решением для Linux – mario 6 January 2011 в 06:17 получил FATAL: Module binfmt not found в 12.04 – RiaD 17 August 2012 в 23:47это ссылка поможет? Работает Моно
из проекта моно на через binfmt:
, потому что это Линукс-особенность, мы не рекомендуем разработчикам развертывать это решение, поскольку это ограничивает мобильность их скрипты.
кроме того, этот механизм не работает так, как предполагалось в под управлением моно.
Вы также можете сделать системное изменение, и использовать binfmt зарегистрировать exe файлы как неродного двоичные файлы. Затем, при попытке запустить exe-файл, ядро будет работать переводчик моно для обработки команды. Binfmt также может быть использован для запуска исполняемых файлов Windows с помощью вина или java .файлы классов с использованием виртуальной машины. Чтобы зарегистрировать exe с ядром:
станьте пользователем root и включите модуль binfmt в ядре с помощью этой команды:
sudo apt-get install binfmt-support modprobe binfmt_misc
кроме того, вы можете хотеть добавить команду [F5], чтобы ваши /etc/rc.local загрузочная скрипта, так что он будет выполняться при загрузке.
Добавить строчку в файл /etc/fstab:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
тогда у вашей системы выполните следующую команду при загрузке:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
будьте уверены, чтобы пометить .exe файлы как исполняемые в файловой системе:
chmod +x myprogram.exe
заметим, что это не изменит вашего ядра, просто модули, которые он загружает, когда вы загрузите систему. Другими словами, вы все равно можете обновить ваш ядром, не беспокоясь о потере этих изменений. Кроме того, вы можете обновить ваш выполнения моно не затрагивая вызов методов, перечисленных в этом разделе.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это конкретный Linux мы не рекомендуем разработчикам развертывать это решение, поскольку это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Running Mono .
Вы также можете сделать системное изменение и использовать binfmt для регистрации exe-файлов в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
sudo apt-get install binfmt-support modprobe binfmt_misc
Кроме того, вы можете добавить modprobe для вашего загрузочного скрипта /etc/rc.local, чтобы он выполнялся при загрузке.
Добавьте строку ниже в свой файл /etc/fstab:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Затем, ваша система запускает следующую команду при загрузке:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Обязательно отметьте ваши .exe-файлы как исполняемые в файловой системе:
chmod +x myprogram.exe
Обратите внимание, что это doesn ' t меняет ваше ядро, только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогичным образом, вы можете обновить исполняемый файл Mono, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
это ссылка поможет? Работает Моно
из проекта моно на через binfmt:
, потому что это Линукс-особенность, мы не рекомендуем разработчикам развертывать это решение, поскольку это ограничивает мобильность их скрипты.
кроме того, этот механизм не работает так, как предполагалось в под управлением моно.
Вы также можете сделать системное изменение, и использовать binfmt зарегистрировать exe файлы как неродного двоичные файлы. Затем, при попытке запустить exe-файл, ядро будет работать переводчик моно для обработки команды. Binfmt также может быть использован для запуска исполняемых файлов Windows с помощью вина или java .файлы классов с использованием виртуальной машины. Чтобы зарегистрировать exe с ядром:
станьте пользователем root и включите модуль binfmt в ядре с помощью этой команды:
sudo apt-get install binfmt-support modprobe binfmt_misc
кроме того, вы можете хотеть добавить команду [F5], чтобы ваши /etc/rc.local загрузочная скрипта, так что он будет выполняться при загрузке.
Добавить строчку в файл /etc/fstab:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
тогда у вашей системы выполните следующую команду при загрузке:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
будьте уверены, чтобы пометить .exe файлы как исполняемые в файловой системе:
chmod +x myprogram.exe
заметим, что это не изменит вашего ядра, просто модули, которые он загружает, когда вы загрузите систему. Другими словами, вы все равно можете обновить ваш ядром, не беспокоясь о потере этих изменений. Кроме того, вы можете обновить ваш выполнения моно не затрагивая вызов методов, перечисленных в этом разделе.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это конкретный Linux мы не рекомендуем разработчикам развертывать это решение, поскольку это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Running Mono .
Вы также можете сделать системное изменение и использовать binfmt для регистрации exe-файлов в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
sudo apt-get install binfmt-support modprobe binfmt_misc
Кроме того, вы можете добавить modprobe для вашего загрузочного скрипта /etc/rc.local, чтобы он выполнялся при загрузке.
Добавьте строку ниже в свой файл /etc/fstab:
binfmt_misc /proc/sys/fs/binfmt_misc binfmt_misc none
Затем, ваша система запускает следующую команду при загрузке:
echo ':CLR:M::MZ::/usr/bin/mono:' > /proc/sys/fs/binfmt_misc/register
Обязательно отметьте ваши .exe-файлы как исполняемые в файловой системе:
chmod +x myprogram.exe
Обратите внимание, что это doesn ' t меняет ваше ядро, только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогичным образом, вы можете обновить исполняемый файл Mono, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это специфичная для Linux функция, мы не рекомендуем разработчикам развертывать это решение, так как это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Руководство по развертыванию приложений .
Вы также можете сделать системное изменение и использовать binfmt для регистрации файлов exe в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
Кроме того, вы можете добавить команду modprobe в ваш сценарий загрузки /etc/rc.local , чтобы он выполняться при загрузке.
Добавьте строку ниже в файл / etc / fstab :
Затем запустите в вашей системе следующую команду при загрузке:
Обязательно отметьте ваши .exe-файлы как исполняемые файлы в файловой системе:
Обратите внимание, что это не изменяет ваше ядро, а только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогично, вы можете обновить свою Mono-версию, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это специфичная для Linux функция, мы не рекомендуем разработчикам развертывать это решение, так как это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Руководство по развертыванию приложений .
Вы также можете сделать системное изменение и использовать binfmt для регистрации файлов exe в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
Кроме того, вы можете добавить команду modprobe в ваш сценарий загрузки /etc/rc.local , чтобы он выполняться при загрузке.
Добавьте строку ниже в файл / etc / fstab :
Затем запустите в вашей системе следующую команду при загрузке:
Обязательно отметьте ваши .exe-файлы как исполняемые файлы в файловой системе:
Обратите внимание, что это не изменяет ваше ядро, а только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогично, вы можете обновить свою Mono-версию, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это специфичная для Linux функция, мы не рекомендуем разработчикам развертывать это решение, так как это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Руководство по развертыванию приложений .
Вы также можете сделать системное изменение и использовать binfmt для регистрации файлов exe в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
Кроме того, вы можете добавить команду modprobe в ваш сценарий загрузки /etc/rc.local , чтобы он выполняться при загрузке.
Добавьте строку ниже в файл / etc / fstab :
Затем запустите в вашей системе следующую команду при загрузке:
Обязательно отметьте ваши .exe-файлы как исполняемые файлы в файловой системе:
Обратите внимание, что это не изменяет ваше ядро, а только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогично, вы можете обновить свою Mono-версию, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
Помогает ли эта ссылка? Запуск Mono
Из Mono Project по использованию binfmt:
Поскольку это специфичная для Linux функция, мы не рекомендуем разработчикам развертывать это решение, так как это ограничивает переносимость их скриптов.
Кроме того, этот механизм не работает по назначению Руководство по развертыванию приложений .
Вы также можете сделать системное изменение и использовать binfmt для регистрации файлов exe в качестве не-родных двоичных файлов. Затем при попытке запуска exe-файла ядро запускает моно-интерпретатор для обработки команды. Binfmt также можно использовать для запуска исполняемых файлов Windows с использованием файлов WINE или Java .class с использованием JVM. Для регистрации exe с ядром:
Станьте root и включите модуль binfmt в своем ядре с помощью этой команды:
Кроме того, вы можете добавить команду modprobe в ваш сценарий загрузки /etc/rc.local , чтобы он выполняться при загрузке.
Добавьте строку ниже в файл / etc / fstab :
Затем запустите в вашей системе следующую команду при загрузке:
Обязательно отметьте ваши .exe-файлы как исполняемые файлы в файловой системе:
Обратите внимание, что это не изменяет ваше ядро, а только модули, которые он загружает при загрузке вашей системы. Другими словами, вы можете обновить свое ядро, не опасаясь потерять эти изменения. Аналогично, вы можете обновить свою Mono-версию, не затрагивая ни один из методов вызова, перечисленных в этом разделе.
Этот пост показывает студентам и новым пользователям, как установить проект с открытым исходным кодом под названием Mono на Ubuntu 20.04 | 18.04.
Студенту или новому пользователю, ищущему систему Linux для начала обучения, проще всего начать с ОС Ubuntu Linux…. Это отличная операционная система Linux для новичков и тех, кто ищет более простой в использовании дистрибутив Linux.
При использовании Ubuntu вы обнаружите, что Linux не так уж сильно отличается от Windows и других операционных систем во многих отношениях, особенно когда дело доходит до использования системы для выполнения работы.
Системы Ubuntu и Windows позволяют вам быть продуктивными, простыми в использовании, надежными и позволяют устанавливать и запускать тысячи программ, от игр до программного обеспечения для повышения производительности для частных лиц и предприятий.
Установить Mono на Ubuntu довольно просто. Просто добавьте его репозиторий и установите оттуда. Для этого выполните следующие действия:
Шаг 1. Добавьте моно репозиторий
Если вы хотите всегда использовать версию Mono в Ubuntu, добавьте его репозиторий. Когда его репозиторий будет добавлен, все новые версии и обновления будут доступны для установки.
Чтобы добавить свой репозиторий, выполните команды ниже:
Затем выполните приведенные ниже команды, чтобы добавить его репозиторий, ключ и файл репозитория в Ubuntu.
Это должно сделать репозиторий Mono доступным в Ubuntu
Шаг 2: установите Mono
Теперь, когда репозиторий Mono и ключ добавлены, выполните приведенные ниже команды, чтобы окончательно установить его.
sudo apt install monodevelop
Используйте MonoDevelop для создания своих приложений.
Если вы собираетесь запускать модульные тесты NUnit, вам следует установить подключаемый модуль NUnit для MonoDevelop. Для этого выполните следующие команды:
sudo apt install monodevelop-nunit
Чтобы проверить, установлен ли Mono, выполните следующие команды:
Вы должны увидеть похожие строки, как показано ниже:
Это должно сделать это
Вывод:
В этом посте показано, как установить Mono и связанные с ним инструменты разработки в Ubuntu 18.04 | 16.04.
Читайте также: