2016-09-29 42 views
1

Lua中找不到安裝luarocks我安裝luarocks:在Ubuntu

$ sudo apt-get install luarocks 

我安裝LUA-cjson由luarocks:

$sudo luarocks install lua-cjson 

節目包:

$luarocks list 

Installed rocks: 
---------------- 
lua-cjson 
    2.1.0-1 (installed) - /usr/local/lib/luarocks/rocks 

所以,我看包:

$luarocks show lua-cjson 

License: MIT 
Homepage: http://www.kyne.com.au/~mark/software/lua-cjson.php 
Installed in: /usr/local 
. . . 
Modules: 
    cjson 
    lua2json 
    json2lua 
    cjson.util 


    lua-cjson 
      2.1.0-1 (installed) - /usr/local/lib/luarocks/rocks 

但是,Lua中無法看到的模塊:

$lua 
Lua 5.2.3 Copyright (C) 1994-2013 Lua.org, PUC-Rio 
> require "cjson" 
stdin:1: module 'cjson' not found: 
.... 


$locate cjson.so 
/usr/local/lib/lua/5.1/cjson.so 

它是什麼錯誤?

回答

2

問題似乎是luarocks默認爲Lua 5.1安裝了東西(如果您使用apt-get安裝它,這是行爲)。如果你不介意使用Lua 5.1,你可以直接使用它(通過輸入lua5.1),而require "cjson"應該可以正常工作。

如果你真的想要用於Lua 5.2的cjson,這有點複雜。首先,你需要確保你有Lua 5.2的開發文件。嘗試

sudo apt-get install liblua5.2-dev 

然後下載最新版本的源動力,luarockshere。 Extract和cd添加到終端的目錄中。

然後執行以下命令(從this post

./configure --lua-version=5.2 --versioned-rocks-dir 
make build 
sudo make install 

這將安裝一個版本的luarocks與Lua的5.2工作。然後,您可以使用

sudo luarocks-5.2 install lua-cjson 

,那麼你應該能夠在Lua 5.2使用cjson安裝cjson