2011-07-23 19 views
5

lua -e "in (package.path)"LuaJIT không nhìn thấy những tảng đá được cài đặt bởi 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 (gói. đường dẫn) "

./?.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

Tôi đã thử thêm package.path của lua, mặc dù không có con xúc xắc. LuaJIT dường như không thể tìm thấy bất kỳ loại đá nào, thật kỳ lạ. Tôi nên làm gì đây?

+0

Bạn có cài đặt những tảng đá như là người chủ? –

Trả lời

1

Hai gợi ý:

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

Ví dụ:

[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

Cảm ơn Doug, tôi đã xem xét các gợi ý khác ... và tất cả đều trông giống như họ sẽ làm việc, nhưng không được tối ưu, vì tôi không muốn sửa đổi mã của tôi, hoặc gói LuaJIT. –

4

Nếu bạn đã cài đặt các module sử dụng luarocks, nhưng không phải là gốc, dính: require 'luarocks.loader' trước khi bạn bao gồm các mô-đun và nó nên được bao gồm mà không có lỗi.

+2

Cảm ơn bạn đã khắc phục sự cố _my_ đó. –

1

Trước khi bạn biên dịch LuaJIT, hãy thay đổi LUA_ROOT từ/usr/local thành/usr trong src/luaconf.h.

1

Trên máy Mac? Đang chạy brew?

Install lua51, được đóng gói với luarocks aliased như 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"))' 
Các vấn đề liên quan