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

相关推荐
一勺菠萝丶1 小时前
在 macOS 上用 Docker 为 Java 后端 & 常见开发需求搭建完整服务(详尽教程)
java·macos·docker
猿小猴子14 小时前
在 MacOS Tahoe 上使用VMware虚拟机安装 ARM版 Windows11
macos·vmware·win11 for arm
feiyangqingyun15 小时前
Qt项目作品在苹果macos上编译运行效果/视频监控系统/物联网平台等
开发语言·qt·macos
彩旗工作室15 小时前
将iOS/macOS应用上架至App Store
macos·ios·应用商店·appstore
嵌入式-老费17 小时前
Easyx图形库应用(用lua开发图形界面)
开发语言·lua
ellis197017 小时前
Lua协程coroutine库用法
开发语言·lua
〆WangBenYan゜17 小时前
postman 调用接口设置全局变量
测试工具·lua·postman
新***袭18 小时前
如何在 Mac 上恢复已删除的文件(包括清空了垃圾箱方法)
macos
江东小bug王18 小时前
深入解析 iOS 与 macOS 应用程序生命周期(完整指南)
macos·ios
xingxing_F18 小时前
DSync for Mac 文件对比同步工具
macos