如何为 lua 5.3 构建 luasockets 3.0

How to build luasockets 3.0 for lua 5.3

我需要构建 lua-redis。 Lua-dedis 依赖于 lua 套接字。 Luasockets 2.0 构建失败:my question on sockets 2.0 and lua 5.3 有人建议我使用 luasockets 3.0。我制作了它们,但是它们被安装到 lua 5.1 和 lua 5.3 中仍然看不到这个库:

root@debian:/home/debian/luasocket-master# make install
make -C src install
make[1]: Entering directory `/home/debian/luasocket-master/src'
install -d /usr/local/share/lua/5.1
install -m644 ltn12.lua socket.lua mime.lua /usr/local/share/lua/5.1
install -d /usr/local/share/lua/5.1/socket
install -m644 http.lua url.lua tp.lua ftp.lua headers.lua smtp.lua /usr/local/share/lua/5.1/socket
install -d /usr/local/lib/lua/5.1/socket
install socket-3.0-rc1.so /usr/local/lib/lua/5.1/socket/core.so
install -d /usr/local/lib/lua/5.1/mime
install mime-1.0.3.so /usr/local/lib/lua/5.1/mime/core.so
make[1]: Leaving directory `/home/debian/luasocket-master/src'
root@debian:/home/debian/luasocket-master# lua
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require('socket')
stdin:1: module 'socket' not found:
    no field package.preload['socket']
    no file '/usr/local/share/lua/5.3/socket.lua'
    no file '/usr/local/share/lua/5.3/socket/init.lua'

如何更改目标 lua 版本?

这不是我关于套接字 2.0 的问题的重复,因为它是不同的代码库和不同的问题。 Sockets 2.0 编译失败,sockets 3.0 安装失败。

看看 the Makefile 就会发现以下内容:

install-both:
    $(MAKE) clean
    @cd src; $(MAKE) $(PLAT) LUAV=5.1
    @cd src; $(MAKE) install LUAV=5.1
    $(MAKE) clean
    @cd src; $(MAKE) $(PLAT) LUAV=5.2
    @cd src; $(MAKE) install LUAV=5.2
    $(MAKE) clean
    @cd src; $(MAKE) $(PLAT) LUAV=5.3
    @cd src; $(MAKE) install LUAV=5.3

src/Makefile 使用变量 LUAV 来 select 包含文件/安装路径 / ….

这意味着您也可以针对您感兴趣的版本直接调用它(并将所有 make 调用合并为一个):

make clean all install LUAV=5.3