安装了多个版本的 Lua 后,是否可以指定要安装到哪一个 luarock?

vfc*_*sts 6 lua conflicting-libraries luarocks

我在 Linux 上安装Lua 5.1Lua 5.2安装了两者。当使用luarocks安装包是可以传递选项,指定哪个Lua的版本的岩应安装luarocks?

sif*_*joe 3

不是命令行选项,但如果您为两个 Lua 版本安装了 LuaRocks,则可能有不同的 LuaRocks 命令行程序变体可用(luarocks-5.1luarocks-5.2) 。

您可以使用以下命令从源代码执行此操作(假设是类似 Debian/Ubuntu 的lua5.1可执行文件):

./configure --lua-version=5.1 --lua-suffix=5.1 --versioned-rocks-dir
# make sure that you got the correct Lua executable and include directory
sudo make bootstrap
Run Code Online (Sandbox Code Playgroud)

Lua 5.2 也是如此。

如果configure的自动检测未找到正确的可执行文件/目录,以下标志可能会有所帮助:

  • --with-lua-bin=DIR(Lua可执行文件的安装目录)
  • --with-lua-include=DIR(Lua包含文件所在的目录)
  • --with-lua-lib=DIR(在 Linux 上你可能不需要这个)

完成此操作后,luarocks-5.1 install some-package为 Lua 5.1 安装给定的软件包,并luarocks-5.2 install some-package为 Lua 5.2 安装相同的软件包。

如果 LuaRocks 是通过包管理器安装的,则可能支持也可能不支持多个 Lua 版本(例如,Debian/Ubuntu 包仅配置为 Lua 5.1)。