Установка LUA + LUASOCKET для Verlihub

Мне всегда было очень интересно как заставить плагин Verlihub’а – Lua работать с сокетами. Ведь по сути умей он работать с ними, можно было бы без проблем получать данные из интернета и обрабатывать их силами lua скриптов…

Поехали…


Шаг 1. Получение исходников.

Качаем исходники библиотек Lua и LuaSocket:

/usr/home/fly8r/compile/lib/>wget http://www.lua.org/ftp/lua-5.1.4.tar.gz
/usr/home/fly8r/compile/lib/>wget http://luaforge.net/frs/download.php/2664/luasocket-2.0.2.tar.gz

А также получаем сорсы плагина для Verlihub – Lua 1.8.1:

/usr/home/fly8r/compile/plugins/>wget http://www.verlihub-project.org/download/lua-1.8.1.tar.gz


Шаг 2. Установка.


Lua

Распаковываем:

/usr/home/fly8r/compile/lib/>tar xvfz lua-5.1.4.tar.gz

Для 64 битной системы надо исправить файлик /path/to/lua/src/Makefile. Находим строчку:

CFLAGS= -O2 -Wall $(MYCFLAGS)

и дописываем в нее -fPIC:

CFLAGS= -O2 -Wall $(MYCFLAGS) -fPIC

Теперь можно собирать и устанавливать:

/usr/home/fly8r/compile/lib/lua-5.1.4/>make freebsd
/usr/home/fly8r/compile/lib/lua-5.1.4/>make install


LuaSocket

Распаковываем:

/usr/home/fly8r/compile/lib/>tar xvfz luasocket-2.0.2.tar.gz

Собираем и устанавливаем:

/usr/home/fly8r/compile/lib/luasockets-2.0.2/>make
/usr/home/fly8r/compile/lib/luasockets-2.0.2/>make install

Создаем сивольные ссылки:

/usr/home/fly8r/>ln /usr/local/lib/lua/5.1/socket/core.so /usr/local/lib/libluasocket.so
/usr/home/fly8r/>ln /usr/local/lib/lua/5.1/mime/core.so /usr/local/lib/libluamime.so


Lua-1.8.1 plugin

И наконец мы добрались до самого интересного – сборки плагина! Тут в принципе все просто, но есть нюансы.

Распаковываем:

/usr/home/fly8r/compile/plugins/>tar xvfz lua-1.8.1.tar.gz

Конфигурируем с поддержкой luasocket:

/usr/home/fly8r/compile/plugins/lua-1.8.1/>./configure --with-luasocket

И тут мы можем натолкнуться на первый нюанс:

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes

...skipped...

checking lua5.1/lua.h presence... no
checking for lua5.1/lua.h... no
configure: error: Please install the lua library headers (lua.h, lualib.h, lauxlib.h)

Не унываем, это строчка говорит нам о том, что библиотека Lua не была найдена. Поэтому поступаем хитро и явно указываем, где конфигуратору искать хедеры и саму библиотеку:

/usr/home/fly8r/compile/plugins/lua-1.8.1/>./configure --with-luasocket CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib

После этого все конфигурируется нормально. Далее собираем и устанавливаем как обычно:

/usr/home/fly8r/compile/plugins/lua-1.8.1/>make
/usr/home/fly8r/compile/plugins/lua-1.8.1/>make install


Шаг 3. Подключение к Verlihub.

Вообще в Verlihub предусмотрено 2 способа загрузки плагинов. Расмотрим оба, на примере нашего Lua плагина.


Способ №1.

Для загрузки плагина следует из хаба набрать команду:

!plugin liblua_pi.so

При этом в некоторых случаях хаб может сказать – библиотека не найдена. Странно, ведь мы ее установили. Идем в /usr/local/lib/ и смотрим что с библиотекой. Видим, что сама библиотека liblua_pi.so.0 на месте, а вот символической ссылки в виде имени, которую разыскивает хаб нет. Что ж, не проблема. Делаем символическую ссылку:

/usr/local/lib/>ln -sf /usr/local/lib/liblua_pi.so.0 /usr/local/lib/liblua_pi.so

После чего повторяем предыдущий шаг и грузим библиотеку без проблем.

Чтобы плагин загружался автоматически при каждом запуске хаба, следует создать ссылку на него в каталоге plugins с конфигами хаба:

ln -sf /usr/local/lib/liblua_pi.so /usr/local/etc/verlihub/plugins/


Способ №2.

Он предусматривает использование plugman – менеджера плагинов Verlihub. Для загрузки плагина в хабе набираем команду:

!onplug lua

Или сделать чтобы плагин включался при каждом запуске хаба:

!modplug lua -a1

Теперь у нас к хабу прикручен плагин, позволяющий использовать скрипты, написанные на lua.

Add Comment

Required fields are marked *. Your email address will not be published.