Usando um lua rock instalado com luarocks

2

Eu queria instalar luasql.mysql com luarocks e tive um problema. Mesmo que os pacotes foram instalados fornecendo mysql.h , os luarocks não puderam encontrá-lo. Eu resolvi isso eventualmente:

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

Agora, todos os pré-requisitos devem ser atendidos, para usar luasql.mysql , mas estou recebendo um erro:

> require "luasql.mysql"
stdin:1: module 'luasql.mysql' not found:
    no field package.preload['luasql.mysql']
    no file '/usr/local/share/lua/5.2/luasql/mysql.lua'
    no file '/usr/local/share/lua/5.2/luasql/mysql/init.lua'
    no file '/usr/local/lib/lua/5.2/luasql/mysql.lua'
    no file '/usr/local/lib/lua/5.2/luasql/mysql/init.lua'
    no file './luasql/mysql.lua'
    no file '/usr/share/lua/5.2/luasql/mysql.lua'
    no file '/usr/share/lua/5.2/luasql/mysql/init.lua'
    no file './luasql/mysql.lua'
    no file '/usr/local/lib/lua/5.2/luasql/mysql.so'
    no file '/usr/lib/x86_64-linux-gnu/lua/5.2/luasql/mysql.so'
    no file '/usr/lib/lua/5.2/luasql/mysql.so'
    no file '/usr/local/lib/lua/5.2/loadall.so'
    no file './luasql/mysql.so'
    no file '/usr/local/lib/lua/5.2/luasql.so'
    no file '/usr/lib/x86_64-linux-gnu/lua/5.2/luasql.so'
    no file '/usr/lib/lua/5.2/luasql.so'
    no file '/usr/local/lib/lua/5.2/loadall.so'
    no file './luasql.so'
stack traceback:
    [C]: in function 'require'
    stdin:1: in main chunk
    [C]: in ?

Agora, nessa lista, não há /usr/local/lib/luarocks/rocks/ ou algo assim. Além disso, não consigo encontrar um mysql.lua .

De acordo com o luarocks, o luasql-mysql está instalado corretamente:

% luarocks list

Installed rocks:
----------------

luasql-mysql
   2.3.0-1 (installed) - /usr/local/lib/luarocks/rocks

Eu acredito que fiz algo errado, mas não tenho ideia de onde. Além disso, parece que Lua é bastante obscura quando se trata de instalar pacotes adicionais ...

    
por polemon 28.10.2012 / 22:51

2 respostas

2

OK, resolvi e foi um erro muito estúpido:

luasql.mysql é disponível apenas para Lua 5.1 , não Lua 5.2, que eu uso por padrão. A execução de lua5.1 soluciona o problema:

% lua5.1       
Lua 5.1.5  Copyright (C) 1994-2012 Lua.org, PUC-Rio
> require "luasql.mysql"
>

... e tudo é bom.

Desculpe por ter criado uma confusão ...

    
por 29.10.2012 / 01:44
1

Já tentou definir lua.package_cpath ou lua.package_path no seu script LUA?

Ou defina a variável de ambiente LUA_CPATH e LUA_PATH ?

ou seja, export LUA_PATH='/usr/local/lib/luarocks/?.so'; lua ./XX.lua

    
por 27.01.2013 / 11:06