lua脚本出现模块未找到的错误

我正在运行一个lua脚本。

#!/usr/bin/lua

require("posix")
require("math")
require("os")
-- ...

它出现以下错误:

xctest7b # lua attack.lua
lua: attack.lua:3: module 'posix' not found:
        no field package.preload['posix']
        no file './posix.lua'
        no file '/usr/share/lua/5.1/posix.lua'
        no file '/usr/share/lua/5.1/posix/init.lua'
        no file '/usr/lib64/lua/5.1/posix.lua'
        no file '/usr/lib64/lua/5.1/posix/init.lua'
        no file './posix.so'
        no file '/usr/lib64/lua/5.1/posix.so'
        no file '/usr/lib64/lua/5.1/loadall.so'
stack traceback:
        [C]: in function 'require'
        attack.lua:3: in main chunk
        [C]: ?

我已经安装了luarocks和luaposix两者。luaposix的安装完成情况如下:

luaposix 33.3.1-1 现已在 /usr/local 中构建和安装

有关我真正需要安装的内容是否有任何提示?

路径:

xctest7b # lua -e "print(package.cpath)"
/usr/local/lib/lua/5.3/?.so;/usr/local/lib/lua/5.3/loadall.so;./?.so

xctest7b # lua -e "print(package.path)"
/usr/local/share/lua/5.3/posix;/usr/local/share/lua/5.3/?.lua;/usr/local/share/lua/5.3/?/init.lua;/usr/local/lib/lua/5.3/?.lua;/usr/local/lib/lua/5.3/?/init.lua;./?.lua;./?/init.lua;

xctest7b # find /usr/local -name posix
/usr/local/share/lua/5.3/posix
点赞
用户9915018
用户9915018

如果你使用的是 CentOS 或类似的操作系统,请尝试执行以下命令:

sudo yum install lua-posix

否则,如果你使用的是 Debian/Ubuntu 系统,请执行以下命令:

sudo aptitude install lua-posix

请注意,Ubuntu 18.04 版本存在一些依赖问题,因此 lua-posix 模块无法正常工作,需要安装未安装的 posix.ctype 库。(我还没有解决这个问题)。

2018-07-27 09:30:38
用户10001655
用户10001655

在要求 posix 模块之前添加以下导入。

require "luarocks.loader"

这对我来说完美无缺。

感谢Adam在帖子评论中的建议。

2021-12-30 10:13:27