一 系统原有的环境
(1)操作系统的版本
[kiosk@k8s plugin]$ cat /etc/centos-release
CentOS Linux release '7.7.1908' (Core)
(2)默认lua的版本
[kiosk@k8s plugin]$ lua
Lua '5.1.4' Copyright (C) 1994-2008 Lua.org, PUC-Rio
>
二 源码安装新版本的lua
lua'相关版本'的历史
(1)安装过程
'(1)'安装依赖
yum install readline-devel -y -->'针对下面的readline报错的'
'(2)'源码编译
local Lua_Version="5.3.6"
tar -zxf lua-${Lua_Version}.tar.gz
cd lua-${Lua_Version}
make linux test -->'测试安装前的准备'
vim Makefile --> '修改见下' -->'防止覆盖系统原有的文件'
make install --> '编译安装'
(2)测试
三 IDEA 配置lua
(1)下载后本地导入
说明:PC'不联网'或者某些插件可能需要'proxy'
(2)通过IDEA的插件市场
说明:'EmmyLua版本'会自动与'IDEA'版本适配
问题: 安装 IntelliJ-EmmyLua 插件后'崩溃'
'EmmyLua BUG'交流群: 805629309
(3)分析报错
1)IDE版本'是否适配'
2)是否有其它lua插件'导致冲突'
错误的关键就在于"EmmyLua"插件,这个插件的作用其实有了lua插件相关的配置,但是又安装了'lua'插件,'导致冲突'-->'进而报错'
说明:印证了之前的报错'Lua is not unique'
说明:配置'lua'解释器'无法全局'配置,只能具备配置-->'每个lua文件'
(4)工作目录问题
'$MODULE_DIR$'和'%MODULE_WORKING_DIR%'均无效
思考:是不是'Windows'和'Linux'引用环境变量的方式'不一样'
(5)运行demo
思考:通过'EmmyLua'创建'Lua项目'有啥特殊功能
(6)关于该插件的详细使用
新人入群请先看群文件中的视频和"常见问题汇总.txt"
【Github】 https://github.com/EmmyLua
【在线文档】https://emmylua.github.io/zh_CN -->'重点' -->'中文介绍该插件的功能'
【CI IDEA】https://ci.appveyor.com/project/EmmyLua/intellij-emmylua/build/artifacts
【CI VSCode】https://ci.appveyor.com/project/EmmyLua/vscode-emmylua/build/artifacts
三 利用IDEA的debug调试Lua
(1)如果使用默认的lua编译器
说明:它是在'寻找lua'的依赖包,而我的那些包在'/usr/local/share/lua' 以及 '/usr/local/lib/lua'下
在调试的时候需要'lua的其他包',即:所以需要开发环境-->'即SDK'
说明: 下面安装的是'lua5.1'的luasocket模块
测试
(2)修改lua的版本后,debug报错提示
代码在启动的时候'报错如下'
++++++++++++++'深层次的原因'++++++++++++++
没有使用系统的'lua5.1'版本,而是自己编译的'lua5.3'版本
解决策略:源码安装lua5.3对应的luasocket模块
说明:作者已经把'最新版'的 luasocket 放到 'github' 上去了
说明:官方的那个站点 http://luaforge.net/projects/ 里放着的是 'luasocket-2.0.2'已经'过时'
+++++++++++'安装过程'+++++++++++
git clone https://github.com/diegonehab/luasocket
cd luasocket
make && make install-both
备注:注意'安装路径'
继续报错
结论:找不到'lua_pcall包',可能是'版本冲突'
可能原因:安装了两个lua库,一个是'手工安装',一个是'Centos工具套件'安装的
测试方法
pi@rpi /opt/software/lua-5.3.5 $ 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
(3)官方推荐的方式
+++++++++++++++++++++分割线+++++++++++++++++++++
下载MobDebug项目,把里面的mobdebug.lua文件拷贝到当前项目的src目录下
'wget' https://github.com/pkulchenko/MobDebug/archive/0.70.zip