1

我需要从预加载 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 访问权限?

提前致谢。

4

1 回答 1

3

我假设您已经检查过 yum 以查看 luasql 是否可用;如果没有,你应该先这样做,如果可能的话,通过 yum 安装它。

您遇到问题的直接原因是 luarocks 自动从源代码构建模块,这需要访问 lua 标头。这些并不是简单地运行使用 Lua 的程序所需要的,因此它们不是作为普通 Lua 包的一部分安装的。我对 Scientific Linux 不熟悉,但您可能可以通过安装名为lua-devlua-devel、的包lua-headers或其某些变体来获得它们。您可能还需要 mySQL 包(正确的库和标头)。一旦你安装了这些,再试一次。

您也可以尝试LuaDist,我发现它通常比 luarocks 更精致,并且能够自动下载更多依赖项;特别是它可能不需要安装 lua 头文件,并且可以处理从源代码自动下载和安装 lua 本身。但是,它确实需要安装 CMake。

如果由于某种原因您无法安装所需的标头并且无法使 luarocksluadist 正常工作,您可以尝试手动下载和构建 luaSQL。Lua 头文件可以在 Lua 5.1 源包和LuaSQL 2.2中找到。假设 Scientific Linux 维护人员没有过度定制他们附带的 lua 版本,结果应该与系统 Lua 安装兼容。

于 2013-09-06T23:43:37.157 回答