MacOS 使用 luarocks+wrk+luajit

MacOS 使用 luarocks+wrk+luajit

luarocks 默认使用的是 lua 5.4 版本,一些工具,例如 wrk 使用的 lua 5.1,那么 luarocks 在安装依赖的时候就需要指定 lua 5.1。

luarocks config 配置 lua 5.1

请确保已经安装了 lua5.1 或者 luajit,本处使用 luajit。

shell 复制代码
luarocks config lua_dir /opt/homebrew/opt/luajit
text 复制代码
Lua version will default to 5.1 in /opt/homebrew/etc/luarocks
Wrote
	lua_version = "5.1"
to
	/opt/homebrew/etc/luarocks/config-5.1.lua
qyvlik@qyvlikdeMacBook-Pro luarocks % luarocks config lua_dir /opt/homebrew/opt/luajit
Wrote
	variables.LUA = "/opt/homebrew/opt/luajit/bin/luajit"
	variables.LUA_BINDIR = "/opt/homebrew/opt/luajit/bin"
	variables.LUA_DIR = "/opt/homebrew/opt/luajit"
	variables.LUA_INCDIR = "/opt/homebrew/opt/luajit/include/luajit-2.1"
	variables.LUA_LIBDIR = "/opt/homebrew/opt/luajit/lib"
to
	/opt/homebrew/etc/luarocks/config-5.1.lua

写入文件的位置 /opt/homebrew/etc/luarocks/config-5.1.lua,内容如下:

lua 复制代码
-- LuaRocks configuration

rocks_trees = {
   { name = "user", root = home .. "/.luarocks" };
   { name = "system", root = "/opt/homebrew" };
}
variables = {
   LUA_DIR = "/opt/homebrew/opt/luajit";
   LUA_BINDIR = "/opt/homebrew/opt/luajit/bin";
   LUA_VERSION = "5.1";
   LUA = "/opt/homebrew/opt/luajit/bin/luajit";
}
shell 复制代码
luarocks config lua_version 5.1
text 复制代码
Wrote
	lua_version = "5.1"
to
	/opt/homebrew/etc/luarocks/config-5.1.lua

写入文件的位置 /opt/homebrew/etc/luarocks/default-lua-version.lua,内容如下:

lua 复制代码
return "5.1"

luarocks install snowflake

如果需要使用代理安装,请在执行如下命令,请确保有对应的 proxy 服务在运行。

shell 复制代码
export all_proxy=http://127.0.0.1:3128

安装需要指定 --lua-version=5.1

shell 复制代码
luarocks install snowflake --lua-version=5.1

没有指定 lua-version

text 复制代码
admin@localhost% luarocks install snowflake
Installing https://luarocks.org/snowflake-1.0-1.rockspec
Cloning into 'lua-snowflake'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 21 (delta 3), reused 2 (delta 2), pack-reused 13 (from 1)
Receiving objects: 100% (21/21), 8.39 KiB | 8.39 MiB/s, done.
Resolving deltas: 100% (3/3), done.
Note: switching to 'e4f3008828ea83ff1ba6651a766a349d449cee44'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false



snowflake 1.0-1 depends on lua >= 5.1 (5.4-1 provided by VM: success)
env MACOSX_DEPLOYMENT_TARGET=11.0 gcc -O2 -fPIC -I/opt/homebrew/opt/lua/include/lua5.4 -c src/main.c -o src/main.o
src/main.c:47:23: error: call to undeclared function 'luaL_checkint'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
   47 |     g_datacenter_id = luaL_checkint(L, 1);
      |                       ^
src/main.c:47:23: note: did you mean 'luaL_checkany'?
/opt/homebrew/opt/lua/include/lua5.4/lauxlib.h:68:18: note: 'luaL_checkany' declared here
   68 | LUALIB_API void (luaL_checkany) (lua_State *L, int arg);
      |                  ^
1 error generated.

Error: Build error: Failed compiling object src/main.o

指定 lua-version

text 复制代码
admin@localhost% luarocks install snowflake --lua-version=5.1
Installing https://luarocks.org/snowflake-1.0-1.rockspec
Cloning into 'lua-snowflake'...
remote: Enumerating objects: 21, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 21 (delta 3), reused 2 (delta 2), pack-reused 13 (from 1)
Receiving objects: 100% (21/21), 8.39 KiB | 4.19 MiB/s, done.
Resolving deltas: 100% (3/3), done.
Note: switching to 'e4f3008828ea83ff1ba6651a766a349d449cee44'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false



snowflake 1.0-1 depends on lua >= 5.1 (5.1-1 provided by VM: success)
env MACOSX_DEPLOYMENT_TARGET=11.0 gcc -O2 -fPIC -I/opt/homebrew/opt/luajit/include/luajit-2.1 -c src/main.c -o src/main.o
src/main.c:8:9: warning: 'luaL_newlib' macro redefined [-Wmacro-redefined]
    8 | #define luaL_newlib(L, l) ( lua_newtable( L ), luaL_register( L, NULL, l ) )
      |         ^
/opt/homebrew/opt/luajit/include/luajit-2.1/lauxlib.h:125:9: note: previous definition is here
  125 | #define luaL_newlib(L, l)       (luaL_newlibtable(L, l), luaL_setfuncs(L, l, 0))
      |         ^
1 warning generated.
env MACOSX_DEPLOYMENT_TARGET=11.0 gcc  -bundle -undefined dynamic_lookup -all_load -o /var/folders/lt/g2t6nfq96cs0lwt4nl86gys40000gn/T/luarocks_build-snowflake-1.0-1-5295760/snowflake.so src/main.o
No existing manifest. Attempting to rebuild...
snowflake 1.0-1 is now installed in /opt/homebrew (license: MIT)

ref

相关推荐
Mintimate2 天前
WorkBuddy 上手: 让脚本项目 Homebrew CN 变成会排障的 Agent
macos·边缘计算·agent
fthux3 天前
如果你用 Mac,那你可能需要 Noti Shift
macos·开源·github
counterxing6 天前
最近发现一个 Mac 工具,有点像把 Raycast、语音输入法、截图和录屏塞到了一起
macos·ai编程·claude
元Y亨H13 天前
MacBook Air 开发神器:IDEA 与 PyCharm 极简安装及环境配置
macos
yuanyxh14 天前
macOS 应用 - 纯对话生成
前端·macos·ai编程
AI创界者16 天前
PilotTTS 一键整合包(Win/Mac):8G 显存畅跑,实测解锁情绪与副语言的精准控制
人工智能·macos·aigc·音视频
xingpanvip16 天前
星盘接口开发文档:本命盘接口指南
android·开发语言·css·php·lua
骇客之技术16 天前
AutoLua:在安卓上写 Lua 脚本
android·junit·lua
AirDroid_cn16 天前
系统终端与iTerm2字体看起来不一样?macOS Sequoia统一渲染指南
macos
weixin_4713830316 天前
Node.js + Express 入门实战笔记-01-基础
node.js·lua·express