【问题标题】:Install luaSQL on Ubuntu在 Ubuntu 上安装 luaSQL
【发布时间】:2015-12-16 11:25:03
【问题描述】:

TL;DR:您可以跳至here。我尝试使用 luarocks 安装程序,但 apt-get 安装程序没有问题。


我在 Ubuntu 上安装 luaSQL 时遇到问题。我需要它用于使用luasql = require "luasql.mysql" 的脚本。我遵循了可以在这里找到的官方文档:http://keplerproject.github.io/luasql/doc/us/
我尝试过的(以及官方文档的建议):

sudo luarocks install luasql-mysql

给了我以下输出:

Error: Could not find expected file mysql.h for MYSQL -- 
you may have to install MYSQL in your system and/or pass MYSQL_DIR or 
MYSQL_INCDIR to the luarocks command. Example: luarocks install luasql-mysql
MYSQL_DIR=/usr/local

所以我首先必须获取 mysql.h 文件。经过一番谷歌搜索,我找到了this

sudo apt-get update
sudo apt-get install libmysqlclient-dev 

所以我再次尝试了我的第一个命令,但将 mysql.h 文件的位置作为参数:

sudo luarocks install luasql-mysql MYSQL_DIR=/usr/include/mysql

它给了我和一开始一样的错误。 有谁知道在 Ubuntu 机器上安装 luaSQL 的正确说明?或者可以指出我正确的方向吗?


我的系统:
说明:Ubuntu 14.04.2 LTS
发布时间:14.04
代号:信任

【问题讨论】:

  • 你确定mysql源位于/usr/include/mysql吗?
  • 我已经编辑了我的问题并链接了我找到此信息的资源:@​​987654324@ 顶部评论建议该位置。
  • 你试过find /usr/ -name 'mysql.h'吗?
  • 是的,我通过查看文件夹进行了验证。无论如何,这是您的命令的输出:/usr/include/mysql/mysql.h
  • 对于每个依赖项,您可以在 LuaRocks 中指定三个目录:XYZ_DIRXYZ_INCDIRXYZ_LIBDIR。如果最后两个缺失,LuaRocks 会尝试通过分别附加/include/lib 从第一个派生它们。看来您在命令行中想要 MYSQL_INCDIR 而不是 MYSQL_DIR

标签: mysql ubuntu lua luasql


【解决方案1】:

安装 LuaSQL:

apt-get install lua-sql-mysql

来自 lua-support 的 irc 聊天中对用户“TsT”的致谢:可以在此处找到聊天日志:https://botbot.me/freenode/lua-support/msg/50072546/


您可以使用的测试脚本:

luasql = require "luasql.mysql"

env = assert (luasql.mysql())
con = assert (env:connect("dbname","username","password","host.com"))
cur = assert (con:execute("INSERT INTO `table`(`col_int`,`col_varchar`) VALUES (9,'Hi')"))

【讨论】:

    【解决方案2】:

    如果你想手动安装:

    apt-get install -y libmysqlclient-dev git
    luarocks install luasql-mysql MYSQL_INCDIR=/usr/include/mysql
    

    【讨论】:

      【解决方案3】:

      apt 安装程序不是为我做的。

      我可以通过修改配置文件从 github (keplerproject/luasql) 上的源代码安装它。 Lua 5.2 在配置文件中是硬编码的,但我运行的是 5.1。

      在配置文件中,将LUA_SYS_VER ?= 5.2替换为LUA_SYS_VER ?= 5.1

      【讨论】:

        【解决方案4】:

        我不得不使用MYSQL_INCDIR

        sudo luarocks install luasql-mysql MYSQL_INCDIR=/usr/include/mysql
        

        因为 MYSQL_DIR 失败

        【讨论】:

          猜你喜欢
          • 2017-08-28
          • 2017-08-26
          • 2011-05-19
          • 2016-01-03
          • 2018-06-17
          • 2012-01-14
          • 2011-06-11
          • 2015-12-20
          • 2013-04-24
          相关资源
          最近更新 更多