Я предполагаю, что вы уже проверили yum, чтобы узнать, доступен ли luasql; Если нет, сначала вы должны это сделать, и, если возможно, установите его через yum.
Непосредственная причина проблемы, с которой вы сталкиваетесь, заключается в том, что luarocks автоматически создает модули из источника, что требует доступа к заголовкам lua. Они не нужны просто для запускают программы, которые используют Lua, поэтому они не установлены как часть обычного пакета Lua. Я не знаком с Scientific Linux, но вы можете получить их, установив пакет с именем lua-dev
, lua-devel
, lua-headers
или его вариант. Вам также могут понадобиться пакеты mySQL (как собственно библиотеки, так и заголовки). Как только у вас есть установленные, попробуйте еще раз.
Возможно, вы также попробуете LuaDist, который я считаю более полированным, чем luarocks, и способен автоматически загружать больше зависимостей; в частности, он, вероятно, не потребует установки заголовков lua и может автоматически загружать и устанавливать lua из источника. Однако для этого требуется установить CMake.
Если по какой-либо причине вы не можете установить требуемые заголовки и не можете получить luarocks или luadist working, вы можете попробовать загрузить и построить luaSQL вручную. Заголовки Lua можно найти в исходном пакете Lua 5.1 и LuaSQL 2.2. Предполагая, что разработчики Scientific Linux не слишком настроили версию lua, которую они отправляют с собой, результаты должны быть совместимы с установкой системы Lua.
Обратите внимание, что ваш SQL-поиск блокирует поток pdns-recursor, в котором вы находитесь (и по умолчанию есть только два потока). Вы должны серьезно рассмотреть возможность загрузки ваших данных в память и привязки к поисковым запросам Lua. – Habbie
oh no ... поэтому я не могу выполнить запрос MySQL из потока pdns-recursor?!? –
Я бы не сказал «не могу», но если у вас нет очень терпеливых пользователей, вам нужно будет настроить много потоков вместо значения по умолчанию «2», и это будет стоить памяти. – Habbie