wrk 如何安装额外的 Lua 模块

我在使用 Mac OSX。我已经通过 brew 和 Luarocks 安装了 Lua。我也安装了 lua sockets 包。

当我在终端 Lua 命令行界面中调用 local http = require("socket"),模块就可以正常加载。

但是当我在我的 wrk 测试脚本中包含 local http = require("socket") 时,我不仅会得到 socket 的错误,还会得到其他模块的错误。似乎它没有使用我系统上的 Lua。

是否有一种方法来为 wrk 安装依赖的模块?

package.searchpath("socket", package.path) 返回 /usr/local/share/lua/5.2/socket.lua

这里是参考的错误信息

scripts/get_call_setup.lua:scripts/get_call_setup.lua:1module 'socket' not found:
    no field package.preload['socket']
    no file './socket.lua'
    no file '/Users/sak/go/src/personal/wrk/obj/share/luajit-2.0.4/socket.lua'
    no file '/usr/local/share/lua/5.1/socket.lua'
    no file '/usr/local/share/lua/5.1/socket/init.lua'
    no file '/Users/sak/go/src/personal/wrk/obj/share/lua/5.1/socket.lua'
    no file '/Users/sak/go/src/personal/wrk/obj/share/lua/5.1/socket/init.lua'
    no file './socket.so'
    no file '/usr/local/lib/lua/5.1/socket.so'
    no file '/Users/sak/go/src/personal/wrk/obj/lib/lua/5.1/socket.so'
    no file '/usr/local/lib/lua/5.1/loadall.so'
Running 3s test @ https://ccx-courier-stage.adobe.io
点赞
用户3907606
用户3907606

请确保Luarocks配置正确并且luarocks安装的目标路径在您的路径中。

在终端中运行以下代码将已安装的库添加到您的路径中。

eval "$(luarocks path)"

然后运行您的代码:

lua myscript.lua

此外,您的包已安装为 lua 5.2 :

package.searchpath("socket", package.path) returns /usr/local/share/lua/5.2/socket.lua

但您使用lua 5.1运行代码:

no file '/usr/local/share/lua/5.1/socket.lua'

lua 5.1 安装socket,然后运行您的代码或使用已安装在 lua 5.2 的所有库运行您的脚本。

lua5.2 myscript.lua
2022-10-21 21:22:02