2011-07-23 71 views
5

LUA -e岩石 「印刷(package.path)」LuaJIT沒有看到由LuaRocks安裝

./?.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。路徑)「

./?.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似乎無法找到任何的岩石,這很奇怪。我應該在這裏做什麼?

+0

是否安裝了岩石的根源在哪裏? –

回答

1

兩個建議:

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

例子:

[email protected]:~$ 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) 
[email protected]:~$ sudo /sbin/ldconfig 
[sudo] password for e: 
[email protected]:~$ 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() 
[email protected]:~$ 
+0

感謝Doug,我看了其他建議......他們都看起來像他們會工作,但是並不理想,因爲我不想修改我的代碼或LuaJIT軟件包。 –

4

如果您已經安裝使用luarocks模塊,但不作爲根棒: require 'luarocks.loader' 之前包括模塊,並將其應該包含在沒有錯誤的情況下。

+2

謝謝,這固定_my_問題。 –

1

在編譯LuaJIT之前,在src/luaconf.h中將LUA_ROOT從/ usr/local更改爲/ usr。

1

在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"))' 
相關問題