Lua 在 Ubuntu 中找不到已安装的 luarocks

我安装了 luarocks:

$ sudo apt-get install luarocks

我通过 luarocks 安装了 lua-cjson:

$sudo luarocks install lua-cjson

显示所有安装的包:

$luarocks list

已安装的包:
----------------
lua-cjson
   2.1.0-1 (installed) - /usr/local/lib/luarocks/rocks

所以,我看到了这个包:

$luarocks show lua-cjson

许可证:    MIT
主页:   http://www.kyne.com.au/~mark/software/lua-cjson.php
安装在:   /usr/local
. . .
模块:
    cjson
    lua2json
    json2lua
    cjson.util

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

但是,Lua 找不到这个模块:

$lua
Lua 5.2.3  版权所有 (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

这是什么错误?

点赞
用户1927609
用户1927609

问题似乎是 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

然后从这里下载 luarocks 的最新版本源代码。解压并在终端中 cd 到该目录。

然后执行以下命令(参见 此文

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

这将安装一个可用于 Lua 5.2 的 luarocks 版本。 然后您可以使用以下命令安装 cjson

sudo luarocks-5.2 install lua-cjson

然后您应该可以在 Lua 5.2 中使用 cjson

2016-09-29 03:54:53