wrk如何安装额外的lua模块

Sak*_*kib 5 macos lua wrk

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

当我local http = require("socket")从终端 lua 命令行界面调用时,模块加载正常。

但是,当我将其包含local http = require("socket")在 wrk 测试脚本中时,我不仅会收到套接字错误,还会收到其他模块的错误。看来我的系统上没有使用 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:1: module '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
Run Code Online (Sandbox Code Playgroud)

小智 1

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

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

eval "$(luarocks path)"
Run Code Online (Sandbox Code Playgroud)

然后运行你的代码:

lua myscript.lua
Run Code Online (Sandbox Code Playgroud)

除此之外,您的软件包安装的目的是lua 5.2

package.searchpath( "socket", package.path ) returns /usr/local/share/lua/5.2/socket.lua
Run Code Online (Sandbox Code Playgroud)

但是你运行你的代码lua 5.1

no file '/usr/local/share/lua/5.1/socket.lua'
Run Code Online (Sandbox Code Playgroud)

安装套接字,lua 5.1然后运行您的代码,或者lua 5.2如果所有库都安装了,则运行您的脚本lua 5.2

lua5.2 myscript.lua
Run Code Online (Sandbox Code Playgroud)