luasql.mysql
インストールしようとしてluarocks
問題が発生しました。提供されたパッケージをインストールしましたが、mysql.h
luarocksにはありません。私はついにそれを解決しました:
luarocks install luasql-mysql MYSQL_INCDIR=/usr/include/mysql
これで機能するには、すべての前提条件を満たす必要がありますluasql.mysql
が、エラーが発生します。
> 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 ?
今、そのリストには/usr/local/lib/luarocks/rocks/
そんなこともなく、何もありません。しかも見つからないと思いますmysql.lua
。
luarocksによると、luasql-mysql
インストールは正確です。
% luarocks list
Installed rocks:
----------------
luasql-mysql
2.3.0-1 (installed) - /usr/local/lib/luarocks/rocks
私は何かが間違っていると思いますが、どこで間違っているのかわかりません。さらに、追加のパッケージのインストールに関して、Luaはかなり曖昧に見えます。
答え1
さて、解決しました。かなり愚かなミスだった。
luasql.mysql
はいLua 5.1でのみ動作します。、いいえデフォルトではLua 5.2を使用します。実行中:トラブルシューティングlua5.1
:
% lua5.1
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
> require "luasql.mysql"
>
...すべて大丈夫です。
混乱させて申し訳ありません...
答え2
lua.package_cpath
LUAスクリプトで設定を試しましたか?lua.package_path
それとも設定LUA_CPATH
とLUA_PATH
環境変数ですか?
つまりexport LUA_PATH='/usr/local/lib/luarocks/?.so'; lua ./XX.lua