如何调试Luarocks报错

关于Luarocks安装使用

Luarocks在国内的网络环境下,使用并不是那么舒畅,但是由于其江湖地位,在春哥的iresty包管理平台出炉之前,Luarocks仍然是Lua包管理工具的首选。
在之前的文章中,我对Luarocks的安装使用有过详细介绍,感兴趣的同学可以看这里

Luarocks调试报错技巧

--verbose最简单直接

Luarocks所有命令调用的过程都可以通过添加--verbose参数来查看整个命令运行过程中,执行了那些操作以及操作的输出。

lua -e""�最通用

实例:在使用luarocks upload上传vanilla包的时候,发现一直报错

LuaSec is not available; using plain HTTP. Install 'luasec' to enable HTTPS.
Sending vanilla-0.1.0.rc2-1.rockspec ...

Error: Failed loading socket library!

而执行luarocks list又能看到自己安装的luasocket

Installed rocks:
----------------

luasocket
   3.0rc1-2 (installed) - /usr/local/luarocks-2.2.2/lib/luarocks/rocks

因为在Openresty的环境中,调用luasocket没问题,直觉就没有去怀疑path的问题。左右找不出来为啥,最后github的同学建议命令行执行lua -e"print(require('socket.http'))"看能否加载,发觉果然不能加载,这下很明确是path的事儿了,package.path/cpath设置后,问题解决。
解决问题后,我梳理了下过程,其实作为包管理工具Luarocks已经相对比较完备,--verbose已经能解决90%调试问题,Luarocks基于Lua开发,需要调用Lua包,包调用报错可单独执行调用部分代码,也能发现相应的问题。

调试技巧记录在此后续不断追加

你可能感兴趣的:(如何调试Luarocks报错)