Lua 在 Ubuntu 上找不到已安装的 luarocks
Lua cannot find installed luarocks on Ubuntu
我安装 luarocks:
$ sudo apt-get install luarocks
我通过 luarocks 安装 lua-cjson:
$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
错误是什么??
问题似乎是 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
here 的最新版本的源代码。提取并 cd
到终端中的目录。
然后执行以下命令(来自this post)
./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
。
我安装 luarocks:
$ sudo apt-get install luarocks
我通过 luarocks 安装 lua-cjson:
$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
错误是什么??
问题似乎是 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
here 的最新版本的源代码。提取并 cd
到终端中的目录。
然后执行以下命令(来自this post)
./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
。