У меня в Linux установлены и Lua 5.1
, и Lua 5.2
. При использовании luarocks
для установки пакета можно ли передать параметр luarocks, который указывает, для какой версии Lua должен быть установлен пакет?
Если установлено несколько версий Lua, можно ли указать, на какую из них установить luarock?
Ответы (2)
Это не параметр командной строки, но у вас могут быть разные варианты программы командной строки LuaRocks (luarocks-5.1
и luarocks-5.2
), если вы установили LuaRocks для обеих версий Lua.
Вы можете сделать это из исходного кода, используя (при условии, что исполняемый файл lua5.1
похож на Debian/Ubuntu):
./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
не находит правильные исполняемые файлы/каталоги, могут помочь следующие флаги:
--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 # Устанавливает lua версии 5.3.1
luaver install 5.3.0 # Устанавливает lua версии 5.3.0
luaver use 5.3.1 # Переключается на lua версии 5.3.1
Подробнее см. https://dhavalkapil.com/luaver/.