2011-07-23 10 views
5

lua -e "print (package.path)"nie LuaJIT widząc skały zainstalowane przez 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 (pakiet. ścieżka) "

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

Próbowałem już dodawać pakiety pakietów do pakietu lua, ale nie ma kości. LuaJIT nie może znaleźć żadnej ze skał, to dziwne. Co powinienem tu zrobić?

+0

Czy zainstalować skały jako root? –

Odpowiedz

1

dwie propozycje:

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

Przykład:

[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

Dzięki Doug, przejrzałem inne sugestie ... i wszystkie wyglądały, jakby działały, ale były nieoptymalne, ponieważ nie chciałem modyfikować mojego kodu lub pakietu LuaJIT. –

4

Jeśli zainstalowany moduł używając luarocks, ale nie jako root, kijem: require 'luarocks.loader' zanim to moduł i go należy dołączyć bez błędu.

+2

Dzięki, że naprawiono _my_ problem. –

1

Przed skompilowaniem LuaJIT, zmień LUA_ROOT z/usr/local na/usr w src/luaconf.h.

1

Na komputerze Mac? Czy działa brew?

Install lua51, który jest pakowany z luarocks alias jako 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"))' 
Powiązane problemy