LuaJIT未看到由LuaRocks安装的软件包。

我尝试添加lua的package.path,但没有任何作用。LuaJIT似乎无法找到任何rocks,很奇怪。我该怎么办?

lua -e "print(package.path)"

./?.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua;/usr/lib/lua/5.1/?.lua;/usr/lib/lua/5.1/?/init.lua

luajit -e "print(package.path)"

./?.lua;/usr/local/share/luajit-2.0.0-beta8/?.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua

原文链接 https://stackoverflow.com/questions/6803582

点赞
stackoverflow用户33252
stackoverflow用户33252

两个建议:

1. 以 root 身份安装 rocks,以在 /usr/local 中获得它们
2. 使用 ldconfig 更新共享库缓存

例子:

e@eSammy:~$ sudo luarocks install lsqlite3
[sudo] password for e:
Installing http://luarocks.org/repositories/rocks/lsqlite3-0.8-1.src.rock...
...
lsqlite3 0.8-1 现在已经构建并安装在 /usr/local/(许可证:MIT/X11)
e@eSammy:~$ sudo /sbin/ldconfig
[sudo] password for e:
e@eSammy:~$ rlwrap luajit
LuaJIT 2.0.0-beta8 -- Copyright (C) 2005-2011 Mike Pall. http://luajit.org/
JIT: ON CMOV SSE2 SSE3 ATOM fold cse dce fwd dse narrow loop abc fuse
> require 'lsqlite3'
> =sqlite3.version()
3.7.7.1
> os.exit()
e@eSammy:~$
2011-07-24 11:50:59
stackoverflow用户319344
stackoverflow用户319344

如果您使用 luarocks 安装了模块,但不是作为 root 用户,那么在包含模块之前添加以下代码: require 'luarocks.loader' 就可以成功加载模块,而不会出现错误。

2011-07-24 19:38:57
stackoverflow用户174466
stackoverflow用户174466

在编译 LuaJIT 之前,请将 src/luaconf.h 文件中的 LUA_ROOT 从 /usr/local 修改为 /usr 。

2011-07-25 03:51:24
stackoverflow用户5700
stackoverflow用户5700

在 Mac 上?正在运行 brew

安装 lua51,它是打包在 luarocks 中的别名为 luarocks-5.1

brew install luajit lua51
eval `luarocks-5.1 path --bin` # exports LUA_PATH, LUA_CPATH, PATH
luarocks-5.1 install socket
luajit -e 'print(require("socket"))'
2015-10-02 00:54:39