Lua-5.3.2 安装 luasocket 的正确姿势

原创
2016/05/23 00:12
阅读数 8.5K

Lua-5.3.2 安装 luasocket 的正确姿势

打算在我的 lua 里使用一下 socket, 也就是通过下面这样来加载:

require("socket")

于是搜索了下, 关键字用了lua如何加载socket, 发现官方的那个站点 http://luaforge.net/projects/ 里放着的是 luasocket-2.0.2, 按照这篇文档lua 5.2.2编译安装 LuaSocket 库中的描述去搞, 报了不少错, 感觉这么弄太花时间, 于是修改了关键字为lua5.3编译luasocket, 这次搜到这篇LuaSocket 初探, 这才知道原作者已经把最新版的 luasocket 放到 github 上去了, 这回就简单了, 依次执行如下命令:

sudo git clone https://github.com/diegonehab/luasocket
cd luasocket
sudo make

非常顺利地完成编译, 然后安装:

sudo make install
...
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

奇怪, 怎么安装到 5.1 的目录下去了?

打开 makefile 文件看看, 发现要用这条命令 make install-both, 重新来过, 相当于又编译了一遍, 一切OK:

sudo make install-both
...
install -d /usr/local/share/lua/5.3
install -m644 ltn12.lua socket.lua mime.lua /usr/local/share/lua/5.3
install -d /usr/local/share/lua/5.3/socket
install -m644 http.lua url.lua tp.lua ftp.lua headers.lua smtp.lua /usr/local/share/lua/5.3/socket
install -d /usr/local/lib/lua/5.3/socket
install socket-3.0-rc1.so /usr/local/lib/lua/5.3/socket/core.so
install -d /usr/local/lib/lua/5.3/mime
install mime-1.0.3.so /usr/local/lib/lua/5.3/mime/core.so

加载试试:

pi@rpi /opt/software/lua-5.3.2 $ lua
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> require("socket")
table: 0x86f878
> soc = require("socket")
> print(soc._VERSION)
LuaSocket 3.0-rc1
> 

很好, 现在树莓派上可以用 luasocket 跑一个服务端, 在 iPad 上用 Codea 跑一个客户端, 就可以通过 iPad 控制树莓派了.

另外一种直接在启动 lua 时加载 socket 的方法如下:

pi@rpi ~/code-staff/lua-code $ lua -lsocket
Lua 5.3.2  Copyright (C) 1994-2015 Lua.org, PUC-Rio
> 

这样就直接加载进去了, 不需要再 require.

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
2 收藏
3
分享
返回顶部
顶部