[记录点滴]编译安装luarocks、luacheck、luautf8
时间:2022-07-24
本文章向大家介绍[记录点滴]编译安装luarocks、luacheck、luautf8,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
[记录点滴]编译安装luarocks、luacheck、luautf8
0x00 摘要
记录一次安装luarocks&第三方库的过程。
0x01 luarocks
如今每个语言体系中都有一个包管理工具,PHP的Composer,Ruby的gem,Python的pip,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
./configure --with-lua-include=/usr/local/openresty/luajit/include/luajit-2.1/
sudo make bootstrap
编译安装
mkdir -p "/usr/local/share/lua/5.1//luarocks"
cp src/luarocks/site_config.lua "/usr/local/share/lua/5.1//luarocks"
mkdir -p "/usr/local"
查看
which luarocks
/usr/local/bin/luarocks
0x02 安装luacheck
luacheck 是google推出的一款针对lua静态检查的开源工具,其安装简单,操作容易,检查严格,参数可控,很适合项目的lua开发。
luarocks install luacheck --- 成功
下面是luacheck git网址,留作备份
https://github.com/mpeterv/luacheck/
0x03 安装utf8第三方库
从这里下载 https://github.com/starwing/luautf8
Note that to avoid conflict with the Lua5.3's buitin library 'utf8', this library produce a file like lua-utf8.dll or lua-utf8.so. so use it like this:
local utf8 = require 'lua-utf8'
in your codes :-(
LuaRocks Installation
luarocks install luautf8
It's now full-compatible with Lua5.3's utf8 library, so replace this file (and headers) with lua5.3 source's lutf8lib.c is also okay.
安装
luarocks install luautf8
Installing https://luarocks.org/luautf8-0.1.1-1.src.rock
gcc -O2 -fPIC -I/usr/local/openresty/luajit/include/luajit-2.1/ -c lutf8lib.c -o lutf8lib.o
gcc -shared -o lua-utf8.so -L/usr/lib lutf8lib.o
luautf8 0.1.1-1 is now installed in /usr/local (license: MIT)
最后发现位置是:
$ find . -name "lua-utf8.so"
./usr/local/lib/lua/5.1/lua-utf8.so
./srv/lua/xxxx/libs/unix/lua-utf8.so
在lua中测试:
local UTF8 = require "util.misc.utf8"
local u = UTF8.escape
ngx.say(RESPONSE.error(-1, u"%123%u123%{123}%u{123}%xABC%x{ABC}", 404))
ngx.say(RESPONSE.error(-1, u"%%123%?%d%%u", 404))
print(u"%123%u123%{123}%u{123}%xABC%x{ABC}")
print(u"%%123%?%d%%u")
得到response是:
{"code":-1,"data":{"status":404},"message":"{{{{઼઼"}
{"code":-1,"data":{"status":404},"message":"%123?d%u"}
- 剑指OFFER之把数组排成最小的数(九度OJ1504)
- 剑指OFFER之从1到n中出现1的次数(九度OJ1373)
- 剑指OFFER之最大子向量和(连续子数组的最大和)(九度OJ1372)
- 剑指OFFER之最小的K个数(九度OJ1371)
- 剑指OFFER之数组中出现次数超过一半的数字(九度OJ1370)
- 如何成为一名10x的数据分析师?
- 肥料生产商全套三拼在手:拟融资1.47亿元
- 《外媒Cointelegraph专访Qtum量子链Jordan Earls》—浅谈目前Dapps的主要问题
- ASP .Net Core 2.0 修改默认端口
- 不满一岁的潜力股:2017年3D打印机器人盘点
- Reporting Service报表开发
- 不要信任云:这不只是安全的问题
- C#温故而知新—闲话.Net
- c# IO&&线程 打造 定时打开指定程序
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法