LuaRocks Tutorial

LuaRocks 是一个 Lua 的包管理工具,提供了一个命令行的方式来管理 Lua 包依赖。官网

安装 Lua 5.1.5

wget http://www.lua.org/ftp/lua-5.1.5.tar.gz
mkdir /usr/local/lua-5.1.5 && cd lua-5.1.5
# 配置 Makefile,指定安装目录,INSTALL_TOP = /usr/local/lua-5.1.5
# aix ansi bsd freebsd generic linux macosx mingw posix solaris 支持的平台
make macosx
make macosx install
ln -sf /usr/local/lua-5.1.5/bin/lua /usr/local/bin/lua

安装 LuaRocks

wget https://luarocks.org/releases/luarocks-2.4.1.tar.gz
tar zxpf luarocks-2.4.1.tar.gz && cd luarocks-2.4.1
mkdir /usr/local/luarocks-2.4.1
./configure --prefix=/usr/local/luarocks-2.4.1 --with-lua=/usr/local/lua-5.1.5
make build  && make install

使用 LuaRocks 安装包

luarocks install dkjson
require("dkjson") 然后就可以使用了

贡献 Rock 包

创建 .rockspec 文件,下面是我写的一个名为 nginx-lua-frequency 的 Lua 模块的案例。

package = "nginx-lua-frequency"
version = "0.1-1"
source = {
   url = "git://github.com/itsmikej/nginx-lua-frequency.git"
}
description = {
   summary = "A frequency module for Nginx written in Lua",
   homepage = "https://github.com/itsmikej/nginx-lua-frequency",
   maintainer = "Jiang Yang<jiangyang33@gmail.com>",
   license = "MIT"
}
dependencies = {
   "lua=5.1",
   "lua-resty-memcached=0.13-0"
}
build = {
   type = "builtin",
   modules = {
      ["frequency"] = "src/frequency.lua",
      ["frequency.adapter.memcached"] = "src/adapter/memcached.lua"
   }
}

保存文件名为 nginx-lua-frequency-0.1-1.rockspec,格式必须是"{package}-{version}.rockspec",最后上传即可:
luarocks upload nginx-lua-frequency-0.1-1.rockspec --api-key ********
执行完这个命令后,会在当前目录生成一个名为 nginx-lua-frequency-0.1-1.src.rock 的二进制文件,其实这个文件就是当前项目的一个压缩包,使用 luarocks install 安装时,其实就是用的这个压缩包。

BTW

nginx-lua-frequency 是一个基于 memcached 的通用频率限制模块,可同时做多个时间维度(秒,分,小时)的请求频率配置。Github链接

参考

https://github.com/luarocks/luarocks/wiki/Documentation
http://www.jianshu.com/p/196b5dad4e78
https://segmentfault.com/a/1190000003920034

标签: lua, openresty

添加新评论