Невозможно обновить Lua с 5.1.4 до 5.3 из-за зависимостей

#lua #rhel6

#lua #rhel6

Вопрос:

ОС: RHEL 6

Я пытаюсь обновить Lua, но, похоже, в более старой версии Lua есть несколько зависимостей, что затрудняет процесс обновления. Как мне поступить?

 rpm -Uvh lua-5.3.0-2.el6.x86_64.rpm
warning: lua-5.3.0-2.el6.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 3c3ebe43: NOKEY
error: Failed dependencies:
        liblua-5.1.so()(64bit) is needed by (installed) rpm-libs-4.8.0-55.el6.x86_64
        liblua-5.1.so()(64bit) is needed by (installed) rpm-4.8.0-55.el6.x86_64
        liblua-5.1.so()(64bit) is needed by (installed) rpm-python-4.8.0-55.el6.x86_64
        liblua-5.1.so()(64bit) is needed by (installed) rpm-build-4.8.0-55.el6.x86_64
        liblua-5.1.so()(64bit) is needed by (installed) rpm-devel-4.8.0-55.el6.x86_64
        liblua-5.1.so()(64bit) is needed by (installed) gegl-0.1.2-6.el6.x86_64
        liblua-5.1.so()(64bit) is needed by (installed) nmap-2:5.51-6.el6.x86_64
 

Комментарии:

1. Что означает «обновить Lua с 5.1 до 5.3»? Lua 5.1 и Lua 5.3 — разные несовместимые языки (скрипт для Lua 5.1, вероятно, не будет работать под 5.3). Разные версии Lua должны сосуществовать в одной системе без проблем.

2. @EgorSkriptunoff Я должен добавить примечание к вашему замечанию «Скрипт для Lua 5.1, вероятно, не будет запускаться под 5.3»; Когда Lua 5.3 будет скомпилирован с использованием -DLUA_COMPAT_5_1 , вы сможете успешно запускать сценарии 5.1, однако скомпилированные модули — это другая история.

3. @BasGroothedde — Это зависит. Если ваш сценарий Lua 5.1 использует setfenv , в Lua 5.3 ничего нельзя сделать для эмуляции поведения Lua 5.1.

4. @EgorSkriptunoff Ну, вы действительно можете использовать debug.setupvalue и debug.getupvalue для этого, см. Это

5. @BasGroothedde — Да, это решает проблему с чистым кодом Lua 5.1 (если вы каким-то образом загружаете этот сценарий эмуляции перед выполнением каждой программы Lua 5.1)