我需要从预装了Lua的Scientific Linux 6.4服务器上的pdns-recursor中的Lua脚本中读取数据库表。
显然我必须使用luarocks来安装luasql。当我尝试安装luasql时,我得到:
Checking Lua includes... lua.h not found
lua.h is not on the server.
我尝试删除已安装的版本,因此我可以从二进制文件进行安装,然后破坏了系统,该系统显然使用已安装的Lua用于所有内容(yum,rpm等)。现在我必须重新加载操作系统。如何从嵌入式Lua中获取MySQL访问权限?
提前致谢。
答案 0 :(得分:3)
我假设你已经检查了yum,看看luasql是否可用;如果没有,你应该首先这样做,如果可能的话,通过yum安装它。
您遇到的问题的直接原因是luarocks自动从源构建模块,这需要访问lua头。这些不仅仅是运行使用Lua的程序,因此它们不是作为普通Lua软件包的一部分安装的。我不熟悉Scientific Linux,但您可以通过安装名为lua-dev
,lua-devel
,lua-headers
或其某些变体的软件包来获取它们。您可能还需要mySQL包(适当的库和标头)。安装好后再试一次。
您也可以尝试LuaDist,我发现它通常比luarocks更精致,并且能够自动下载更多依赖项;特别是它可能不需要安装lua头,并且可以处理从源自动下载和安装lua本身。但是,它确实需要安装CMake。
如果由于某种原因您无法安装所需的标头并且无法使用luarocks 或 luadist工作,您可以尝试手动下载和构建luaSQL。 Lua头文件可以在Lua 5.1源代码包和LuaSQL 2.2中找到。假设Scientific Linux维护者没有过度定制他们随附的lua版本,结果应该与系统Lua安装兼容。