核心原因
Chocolatey 安装 lua51 时,为了避免和其他 Lua 版本(如 Lua 5.2/5.3)冲突,将可执行文件命名为 lua5.1.exe(而非通用的 lua.exe),因此系统能识别 lua5.1 命令,但无法识别 lua 命令------本质是缺少 lua.exe 这个"别名"。
解决方法(二选一,推荐方法1)
方法1:创建符号链接(推荐,无冗余文件,系统级生效)
通过管理员权限创建 lua.exe 指向 lua5.1.exe 的软链接,相当于给 lua5.1.exe 加一个"lua"的别名:
-
按下
Win + X→ 选择「命令提示符 (管理员)」(或「终端 (管理员)」); -
先执行以下命令,找到
lua5.1.exe的实际路径:where lua5.1- 输出示例:
C:\ProgramData\chocolatey\bin\lua5.1.exe(记下来这个路径);
- 输出示例:
-
执行
mklink命令创建软链接(替换成你查到的路径):mklink "C:\ProgramData\chocolatey\bin\lua.exe" "C:\ProgramData\chocolatey\bin\lua5.1.exe"- 提示「创建符号链接成功」即完成;
-
关闭所有终端,重新打开普通 CMD ,执行:
lua -v此时会正常输出
Lua 5.1.5版本号。
方法2:复制并重命名文件(简单,无权限风险)
直接复制 lua5.1.exe 并重命名为 lua.exe,本质是生成一个"副本别名":
-
执行
where lua5.1找到文件路径(如C:\ProgramData\chocolatey\bin); -
打开该路径的文件夹(比如在文件管理器输入
C:\ProgramData\chocolatey\bin); -
找到
lua5.1.exe,右键「复制」→ 右键「粘贴」→ 将新文件重命名为lua.exe; -
重新打开 CMD,执行
lua -v验证。
关键验证 & 注意事项
-
若执行
mklink提示「权限不足」:确保终端是管理员身份 ,且目标路径(如C:\ProgramData\chocolatey\bin)没有写入限制; -
无需担心冲突:你只装了 Lua 5.1,创建
lua.exe别名不会和其他版本冲突; -
不影响 sysbench 使用:即使不创建
lua别名,sysbench 也能自动识别lua5.1.exe(sysbench 优先找 Lua 5.1,不管命令名),你编写的 sysbench Lua 脚本完全可以正常运行。
最终验证
完成后执行以下命令,均应正常输出版本号:
lua -v # 现在能识别
lua5.1 -v # 原有命令仍可用
至此,lua 命令即可正常使用,你可以直接用 lua 脚本名.lua 运行 Lua 脚本(包括 sysbench 自定义脚本)。