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
.