Lua无法在Linux上找到安装的LuaRocks模块。

我在 Linux Mint 上安装了 luarocks 包,之后安装了一些 rocks,比如 sudo luarocks install telescope,但是当我通过 lua script.lua 运行脚本时,require 找不到模块。

元信息:采用这种问答形式,因为虽然存在回答这个问题的问题,但没有一个题目能够通用或容易找到,我希望我能帮助到某人。

点赞
用户867814
用户867814

在本特定情况下,问题很简单,我这个发行版上默认安装的 Lua 版本是 5.2,而 LuaRocks 包是为 5.1 构建的,这意味着 Lua 5.2 无法找到 rocks,因为它们使用不同的模块路径。

解决问题的方法是从 github 代码库下载 LuaRocks 源代码,并为 5.2 编译它:

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

为了确保我也可以安装 LuaJIT 的包,因为它目前使用 5.1 的库,我之前还执行了上面的行,其中 lua-version=5.1(如果我在其后执行它们,则默认的 luarocks 命令会指向 5.1 构建)。

要构建 LuaRocks,您需要 liblua5.2-dev 和/或 liblua5.1-dev

2014-09-01 09:00:56
用户7963166
用户7963166

对于我来说,解决方案是这样的。

我尝试执行:

eval "$(luarocks path)"

它有效。

希望对其他人也有用。

2019-01-14 07:05:59