4 июля 2018 г.

mORMot и Linux

В настоящее время активно идет улучшение поддержки Linux в mORMot. В основном, конечно, для серверных приложений.


Несмотря на то, что в Delphi с версии 10.2 есть компилятор для Linux, в качестве основного компилятора под Linux для mORMot был выбран FreePascal. Главная причина в том, что он открытый и бесплатный. И при этом FreePascal в части генерации кода лучше компилятора Delphi для Linux.

Основные минусы компилятора Delphi для Linux:
  • доступен только в редакции Enterprise, что очень дорого;
  • ARC (Automatic Reference Counting), что требует существенной доработки исходного кода.

Кроме того, использование открытого и бесплатного компилятора позволяет ограничится поддержкой только одной (последней) версии компилятора.

Итак, после многих лет, сообщество mORMot пришло к полностью открытой модели разработки: необходимые платформы и инструменты доступны в Open Source. Наличие Delphi все еще очень удобно для многих применений, но не обязательно.

Single Sign-On


Не могу не поделиться своим небольшим вкладом в улучшение поддержки Linux. Очень давно, в 2012 году, для mORMot я написал код прозрачной аутентификации пользователя (Single Sign-On) в домене Active Directory с помощью Windows SSPI. Поэтому и сейчас добавил реализацию этой функциональности под Linux для сервера и клиента (а также браузера в качестве клиента).

В Linux для аутентификации в домене Active Directory используется Kerberos и интерфейс GSSAPI. mORMot поддерживает реализации Kerberos как MIT, так и Heimdal.

Машина с Linux должна быть включена в домен. В качестве руководства рекомендую статью Configure SQL Server on Linux to Use Windows Authentication.

Знакомство


Для знакомства с новыми возможностями mORMot вам потребуется FPC версии 3.1 (на данный момент development release). В старых версиях FPC 3.0 и 2.6 нет достаточной поддержки RTTI.

Начать проще всего с fpcupdeluxe. Скачайте последний релиз для вашей платформы и запустите его. В Windows все должно заработать сразу, в Ubuntu 18.04 пришлось сначала установить необходимые пакеты:
sudo apt-get install build-essential mingw32-binutils libgtk2.0-dev subversion git
Запустив fpcupdeluxe вы можете выбрать версии компилятора и среды разработки, приложение скачает и соберет все необходимое из svn/git.


Для установки подходящих FreePascal и Lazarus в ряду нижних кнопок нажмите «Trunk» или «NewPascal» (рекомендую NewPascal).
Там же нужно нажать «mORMot» для получения последней версии с GitHub.

После завершения сборки на рабочем столе должен появиться ярлык «Lazarus_fpcupdeluxe». Уже можно запустить Lazarus. В меню выбрать «File → Open...», перейти в папку ~fpcupdeluxe/ccr/mORMot/SQLite3/Samples, выбрать из примеров подходящий проект, открыть и запустить его.

Также рекомендую настроить современный вид IDE по инструкции Lazarus Docked Desktops.

Немного из личного опыта (Ubuntu 18.04 и Lazarus 1.9.0). Работает стабильно, в общем и целом не сильно хуже Delphi XE5, а 64-х битный отладчик даже лучше.

Поначалу непривычен синтаксис ассемблера, но разобраться можно.


Комментариев нет:

Отправить комментарий