【问题标题】:LuaJIT not seeing rocks installed by LuaRocksLuaJIT 看不到 LuaRocks 安装的岩石
【发布时间】:2011-10-11 19:51:16
【问题描述】:

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

我已经尝试附加 lua 的 package.path,但没有骰子。 LuaJIT 似乎找不到任何岩石,这很奇怪。我应该在这里做什么?

【问题讨论】:

  • 你是否以root身份安装了rocks?

标签: lua luajit luarocks


【解决方案1】:

如果您使用 luarocks 安装了模块,但不是以 root 身份安装,请坚持: require 'luarocks.loader' 在你包含模块之前,它应该被包含在没有错误的情况下。

【讨论】:

  • 谢谢,解决了我的问题。
【解决方案2】:

两个建议:

1. Install rocks as root to get them in /usr/local
2. Use ldconfig to update shared library cache

例子:

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 is now built and installed in /usr/local/ (license: 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:~$ 

【讨论】:

  • 谢谢 Doug,我查看了其他建议......它们看起来都可以工作,但不是最理想的,因为我不想修改我的代码或 LuaJIT 包。跨度>
【解决方案3】:

在 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"))'

【讨论】:

    【解决方案4】:

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

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 2019-11-05
      • 2015-08-17
      • 2021-02-22
      • 2016-04-30
      • 2014-08-18
      • 2017-05-10
      • 1970-01-01
      • 2018-04-10
      相关资源
      最近更新 更多