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

With multiple versions of Lua installed is it possible to specify which one luarock to install to?

我在 Linux 上安装了 Lua 5.1Lua 5.2。当使用 luarocks 安装包时,是否可以将选项传递给 luarocks,指定应该为哪个版本的 Lua 安装 rock?

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

您可以从源代码使用(假设 Debian/Ubuntu-like 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

和 Lua 5.2.

相同

如果 configure 的自动检测没有找到正确的 executables/directories,以下标记可能会有所帮助:

  • --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仅)。

您可以使用 luaver 安装、管理和切换 lua、luarocks 的不同版本。

要安装 luaver 运行:

curl https://raw.githubusercontent.com/dhavalkapil/luaver/master/install.sh -o install.sh && . ./install.sh

然后就可以安装使用多个版本的lua如下:

luaver install 5.3.1 # Installs lua version 5.3.1

luaver install 5.3.0 # Installs lua version 5.3.0

luaver use 5.3.1 # Switches to lua version 5.3.1

有关详细信息,请参阅 https://dhavalkapil.com/luaver/