【发布时间】:2019-02-24 09:57:16
【问题描述】:
我正在尝试使用 USE_LUA=1 标志构建 HAProxy-1.9 以启用 lua 支持。这是我正在使用的make 命令:
sudo make TARGET=linux USE_DL=1 USE_CRYPT_H=1 USE_LUA=1 LUA_LIB=/usr/bin/lua5.3 LUA_INC=/usr/include/lua5.3/ LUA_LIB_NAME=lua53
当我执行 make 命令时,我收到以下错误:
LD haproxy
/usr/lib64/gcc/x86_64-suse-linux/8/../../../../x86_64-suse-linux/bin/ld: cannot find -llua53
collect2: error: ld returned 1 exit status
make: *** [Makefile:976: haproxy] Error 1
从我收集的信息来看,似乎缺少一个库文件(猜测是套接字文件),或者我提供了错误的目录。我正在使用OpenSuse Tumbleweed。
编辑 1
通过将TARGET=linux 更改为TARGET=generic,我能够从源代码生成haproxy。 make 文件停止后,stdout 上没有报告错误。但是,haproxy.service 没有安装。
我之前使用 zypper 安装了 haproxy。我删除它的唯一原因是使用 USE_LUA=1 标志重新安装它,因为我不确定是否可以编辑 haproxy 后编译以更改编译时配置。
重新安装后,它可以工作了。但是,我相信lua-load 存在错误。当我尝试lua-load /usr/share/haproxy/auth-request.lua 时,运行journalctl -xe: error in lua file '/tmp/auth-request.lua': cannot open /tmp/auth-request.lua: Permission denied
时出现以下错误。文件上设置的权限为haproxy:haproxy,与haproxy.cfg 文件中一样。我也试过在haproxy.cfg和chown /tmp/auth-request.lua root:root中修改user root group root。错误仍然存在。
我可能在某种程度上偏离了最初的问题。我很感激它仍然可以解决这个问题。如果需要更多信息或上下文,可以提供。
编辑 2
最近我尝试为/tmp/auth-request.lua 上的所有用户添加读取和执行权限。 ls -l 输出:
-rwxr-xr-x 1 root root 3957 Feb 25 02:24 /tmp/auth-request.lua
【问题讨论】:
-
可能你必须先安装
lua,然后再安装haproxy -
@EgorSkriptunoff 我已经安装了;
lua -v Lua 5.3.4 Copyright (C) 1994-2017 Lua.org, PUC-Rio -
试试
LUA_LIB_NAME=lua5.3 -
@EgorSkriptunoff 我对帖子进行了编辑。感谢您的帮助