[记录点滴]编译安装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"}

[记录点滴]编译安装luarocks、luacheck、luautf8的更多相关文章

  1. Dockerfile 编译安装mysql5.7 千万不要执行.只是记录一下编译安装罢了

    开启所有核心make  20G 内存都不够玩,跑3-4个核心吧,还好. 最后的出来的镜像3G多,百思不得其解,看了官方的Dockerfile,也没什么特别,就是 apt 或者 yum.好吧,不知做了什 ...

  2. 【记录】编译安装 YAML 扩展

    转自:https://learnku.com/articles/30985 Yaml,专门用来写配置文件的语言   依赖安装 $ sudo apt-get install libyaml-dev   ...

  3. Nginx的平滑升级记录---适用于编译安装的Nginx

    一.查看自己的Nginx的版本号 [root@localhost sbin]# cd /usr/local/nginx/sbin/ [root@localhost sbin]# ls nginx [r ...

  4. Centos6.4_X64编译安装php-5.4.17、nginx-1.4.2、mysql-5.6.13

    安装参考: CentOS 6.3编译安装Nginx1.2.2+MySQL5.5.25a+PHP5.4.5 http://www.dedecms.com/knowledge/servers/linux- ...

  5. CentOS6.7编译安装mysql5.6

    可能因为有各种情况,无法通过yum安装mysql,这里记录一下编译安装的简单步骤 使用yum安装一些依赖 yum -y install make gcc-c++ cmake bison-devel  ...

  6. linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录

    过程记录 :  1.下载gsoap_2.8.17.zip 并 解压 : $unzip gsoap_2.8.17.zip     2.进入解压后的目录gsoap-2.8   3.自动配置编译环境:  $ ...

  7. 编译安装gimp插件之Mathmap(流水记录)

    本文为在Fedora 20下编译安装Mathmap1.3.5的编译过程,如果你仅仅需要快速的安装Mathmap,那么请拉至文末的"快速安装" 其实,过程还是很有趣的,充满Error ...

  8. 在CentOS6上编译安装实现LAMP(php-modules)+phpMyAdmin安装过程全记录

    php与apache协作有三种模式:CGI.modules.FastCGI. 在CGI模式下,用户请求php文件时,apache会启动响应进程,调用php处理器处理请求,然后将结果返回给客户端.用户响 ...

  9. Centos6.8下编译安装LAMP的操作记录梳理

    之前用的最多的web框架是LNMP,偶尔也会用到LAMP.接下来简单说下LAMP环境的部署记录,这里选择源码安装的方式: LAMP相关安装包下载地址:https://pan.baidu.com/s/1 ...

  10. mysql5.7.10 源码编译安装记录 (centos6.4)【转】

    一.准备工作 1.1 卸载系统自带mysql 查看系统是否自带MySQL, 如果有就卸载了, 卸载方式有两种yum, rpm, 这里通过yum卸载 rpm -qa | grep mysql //查看系 ...

随机推荐

  1. C#/.NET/.NET Core技术前沿周刊 | 第 14 期(2024年11.18-11.24)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  2. 无快不破,在本地 docker 运行 IDEA 里面的项目?

    目录 前言 Docker Compose 1. Docker Compose是什么? 2. Docker Compose 的具体步骤 3. 如何在IDEA项目里面使用Docker Compose 启动 ...

  3. 19号CSS学习

    一.CSS的复合选择器 更高效的选择目标元素. 后代选择器.子选择器.并集选择器.伪类选择器等. 1.后代选择器 可以选择父元素里的子元素. 又称包含选择器. 必须是空格,必须是后代,ul li {c ...

  4. 关于Pro addin中,控制dockpane的状态

    在Pro SDK中,可以通过dackpane的Hide()方法,对面板进行隐藏. DockPane pane = FrameworkApplication.DockPaneManager.Find(& ...

  5. 前端跨平台调试代理神器Whistle

    概述 抓包一直是平时开发中经常要做的,有一款好用的抓包工具可以让开发体验更棒,以前一直用fiddler,fiddler虽然强悍,但是入手有一定难度,而且较笨重,今天介绍另一款抓包工具:Whistle. ...

  6. new Date()在ios下的坑

    坑位 最新在开发一个时间轴功能,在使用new Date()的时候发现在IOS下全是NaN. Why new Date("2018-04-27 11:11")在chrome,fire ...

  7. Simple FOC内置通信接口学习(二):电机命令接口

    本文参(zhao)考(chao)至官方文档https://docs.simplefoc.com/docs_chinese/commander_interface Commander 接口 Comman ...

  8. 【Amadeus原创】Docker安装wikijs wiki系统

    拉取mysql8的镜像并运行 docker pull mysql docker run -d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/con ...

  9. vue3 在给路由跳转增加动画之后,跳转时页面会出现上下抖动的问题

    这个问题需要分两个步骤解决: 抖动的页面有多个多根节点 增加离开过渡的css样式 v-leave-to: {display: none} 解决步骤1 (抖动的页面有多个多根节点) 我在为路由跳转增加了 ...

  10. 小程序 + node koa2 session存储验证码碰到最大的坑,(喜极而泣 /狗头)

    问题:session存验证码.本地拿postman测试了半天,都没有问题.   但到了小程序,服务端再获取(ctx.session.verifyCode)就一直提示不存在.undefined 小程序会 ...