Разработка микро-учётной системы на lua, часть первая. Установка Lua 5.3.2 на Alt Linux 7.0

в 7:43, , рубрики: Alt Linux 7.0, Lua, sqlite, sqlite3, Настройка Linux, разработка

Задача: взять / сделать микроучётную систему для записи прихода / расхода. Исходная система: Alt Linux 7.0

На альте такие вещи реализовываются через различные связки: Framework + PostgreSQL, FPC + Firebird (superserver / portable). Поскольку речь идёт о создании простой программы с базой (ибо Firebird хоть и хорош для хранения больших данных, у него есть «приколы» при работе со связями и отображениями; хранимые процедуры, конечно, это круто, но без корректного механизма отображений и связей это тот ещё геморрой — ждать подтверждение каждой транзакции / записи не прикольно). Связка Ananas + Firebird / MySQL / PostgreSQL (нужное дополнить) не подходит по следующим причинам:

  • Громоздкость приложения во время выполнения, даже если речь идёт о нескольких справочниках с формами.
  • Сбойность самой платформы даже при простом добавлении данных в справочник.
  • Необходимость шаманства с подключением базы чуть ли не при каждом запуске.
  • Некорректно описанный внутренний язык бизнес-приложений — отсутствуют примеры, неудобочитаемый синопсис.
  • Тяжёлая переносимость бизнес-платформы между рабочими станциями.

В итоге выбор остановился на связке Lua + SQLite3. Поскольку всё происходило в Alt Linux 7.0, с интерпретатором пришлось помучиться.

  • Во-первых, в наличии была только версия 5.1.4.
  • Во-вторых, указанная версия версия состояла только из интерпретатора и базовых библиотек. Ни о каком-либо luarocks или luasql речь просто не шла. Окей, вызов принят.


Для сборки компиллятора будут нужны следующие пакеты:

Пакеты, снятые через rpm -qa last, необходимые для разработки.

libsqlite3-devel-static-3.7.15.2-alt1 libsqlite-devel-static-2.8.17-alt2.2 libsqlite-devel-2.8.17-alt2.2 glib-devel-1.2.10-alt18 glib2-devel-2.36.4-alt0.M70P.2 libxcb-devel-1.9.1-alt2 zlib-devel-1.2.8-alt1 libsqlite3-devel-3.7.15.2-alt1 sqlite-2.8.17-alt2.2 libsqlite-2.8.17-alt2.2 libreadline-devel-static-5.2.14-alt3 glibc-devel-static-2.17-alt8.M70P.1 libreadline-devel-5.2.14-alt3 libgcov4.7-devel-4.7.2-alt7 gcc4.7-4.7.2-alt7 glibc-devel-2.17-alt8.M70P.1 glibc-kernheaders-3.8.4-alt1 gcc-common-1.4.16-alt1 glib-1.2.10-alt18

Не стоит бояться этого списка пакетов, поскольку в реале всё устанавливается одной командой:

apt-get install libsqlite3-devel glib-devel libsqlite3-devel-static libxcb-devel zlib-devel sqlite libreadline-devel libreadline-devel-static libgcov4.7-devel gcc4.7 glib -y

Здесь наиболее необходимы gcc, readline, libxcb, libsqlite3, curl и все -devel- пакеты. Без них исходники будут тормозить сборку на каждом шаге.

Хинт.

Если не собираются исходники, смотрите последнюю строку сборки — там указывается пакет. Ищите его в сети и на порталах Alt Linux. Для ускорения процесса можно сделать поиск в базе пакетов:
apt-cache search имя_программы

Команда подумает и выдаст вам имена пакетов с кучей наименований. Дальше вы выбираете и устанавливаете пакеты вышеуказанным способом. Внимание! Все указанные в статье операции выполняются в консоли с правами суперпользователя!

С сайта lua.org берём tar — архив с исходниками (lua-5.3.2.tar.gz) и архив с бинарниками(luabinaries.sourceforge.net). Либо берём бинарники и выполняем в консоли следующий скрипт:

curl -R -O http://www.lua.org/ftp/lua-5.3.2.tar.gz
tar zxf lua-5.3.2.tar.gz
cd lua-5.3.2
make linux test
make linux install

В итоге в папке lua-5.3.2 находятся две: doc и src. Заходим в src и смотрим файлы lua и luac. Это интерпретаторы языка, с которыми мы произведём одно извращение. В консоли нужно набрать следующую команду:

rpm -ql lua5

В выводе смотрим местоположение файлов. Чаще всего это /usr/bin. Копируем туда файлы lua и luac из папки src. Затем заходим в архив с бинарниками, видим папку include и ВСЕ находящиеся в ней файлы копируем в папку /usr/local/include (либо в любую иную, которую укажет luarocks при ошибке компилляции).

Теперь идём на keplerproject.github.io/luarocks/releases/ — здесь забираем архив luarocks-2.3.0.tar.gz. Извлекаем его в каталог и заходим с консоли. Выполняем поочерёдно следующую последовательность команд:

./configure
make
make build
make install

Эта последовательность необходима для того, чтобы luarocks не устанавливался, как «камень»("rocks"), а записывался, как библиотека в системе. Теперь заходим на luarocks.org и в верхней строке поиска вводим "luasql". Жмём на газ. В появившемся окне выбираем ссылку на "LuaSQL-SQLite3" (LuaSQL-SQLite3).

По аналогии с появившейся в статье командой набираем в консоли:

luarocks-5.3 install luasql-sqlite3

Почему luarocks-5.3? Ранее мы подменили стандартный интерпретатор с версии 5.1 до версии 5.3 и вполне логично для совместимости библиотек использовать установку модулей более высокой версии. В консоли выполняем команды:

lua
driver = require "luasql.sqlite3"

Если после этих команд интерпретатор lua выдал приглашение ">", то вы верно подготовили среду разработки.

Автор: hantenellotf

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js