如何配置一套优雅的Lua开发环境
讨论话题
- 何为优雅的开发环境
- 如何部署(本文讨论在MacOSX平台,其他平台也一样适用)
优雅的Lua开发环境
优雅的Lua开发环境至少包含以下几点:
- 安装适合需求的最新稳定版Lua
- 安装合适的Lua包管理器(推荐使用Luarocks,安装见另一文)
- 源码安装(合理的组织安装目录,设置环境变量使Lua环境更易用且易于管理)
版本选择
首先我们要关注当前流行的各种Lua版本(5.1x,5.2x,5.3x),如何选择我的观点是根据自己的需求,选择适合自己的最新稳定版。
我的环境用来做基于Openresty(Openresty是一个Nginx与其Http_lua模块结合的一个衍生版本)的Web应用开发,Openresty中Lua代码的执行是通过LuaJit解析和加速,而LuaJit基于Lua5.1x的ABI开发,Openresty官方明确指出使用LuaJit运行Lua代码是最优方案,所以毋庸置疑Lua5.1x是最适合我的,最新稳定版为Lua5.1.5。
安装部署
相比brew、apt-get、 yum等安装方式,我更推荐使用源码安装,这样帮助我们对整个环境细节有更多的认识和把握,合理的组织安装目录,结合环境变量的设置,便于使用和管理。
下载并解压Lua源码:
wget http://www.lua.org/ftp/lua-5.1.5.tar.gz
tar zxvf lua-5.1.5.tar.gz
cd lua-5.1.5
打开Makefile,可以看到如下信息:
PLAT= none #安装平台,默认平台为none
INSTALL_TOP= /usr/local #安装跟目录,默认为/usr/local
# Convenience platforms targets. #源码所支持的平台
PLATS= aix ansi bsd freebsd generic linux macosx mingw posix solaris
将INSTALL_TOP修改为你既定的安装目录后保存
INSTALL_TOP= /usr/local/lua-5.1.5
继续如下步骤进行安装:
make macosx #编译平台设置为macosx,其他平台直接将macosx替换即可,如make linux
make macosx install #安装平台设置为macosx
成功安装后如下:
~/Desktop/ ll /usr/local/lua-5.1.5
total 0
drwxr-xr-x 4 root wheel 136B 10 19 18:48 bin
drwxr-xr-x 7 root wheel 238B 10 19 18:48 include
drwxr-xr-x 4 root wheel 136B 10 19 18:48 lib
drwxr-xr-x 3 root wheel 102B 10 19 18:48 man
drwxr-xr-x 3 root wheel 102B 10 19 18:48 share
运行lua -v
查看所安装的Lua版本
~/Desktop/ lua -v
zsh: command not found: lua
~/Desktop/ ln -sf /usr/local/lua-5.1.5/bin/lua /usr/local/bin/lua
~/Desktop/ lua -v
Lua 5.1.5 Copyright (C) 1994-2012 Lua.org, PUC-Rio
以上安装目是得到一个Lua可执行文件,优雅之处在于使用源码安装,组织安装目录使我们更方便的管理Lua环境,今后Lua5.1.5版本相关的ABI、Lua包等将会安装到安装目录下的lib,share
路径下,我们甚至可以定义LUA_PATH=/usr/local/lua-5.1.5
来更方便的引用lua.h
等做相关模块开发。
因为指定的安装目录/usr/local/lua-5.1.5
并不在PATH环境变量下,所以直接执行lua
会报command not found: lua
,我们这里使用添加软连接的方式将可执行文件链接到PATH路径下达到了同样的效果,也可直接将/usr/local/lua-5.1.5/bin
添加到环境变量PATH中。
多版本共存
使用源码安装可以天然实现多版本共存
~/Desktop/luarocks-2.2.2/ ll /usr/local/lua*
/usr/local/lua:
/usr/local/lua-5.1.5:
/usr/local/lua-5.2.3:
/usr/local/lua-5.3.1:
// ll /usr/local/bin/lua*
lrwxr-xr-x 1 root admin 28B 10 19 23:16 /usr/local/bin/lua -> /usr/local/lua-5.1.5/bin/lua
lrwxr-xr-x 1 root admin 28B 10 20 10:08 /usr/local/bin/lua52 -> /usr/local/lua-5.2.3/bin/lua
lrwxr-xr-x 1 root admin 28B 10 20 10:12 /usr/local/bin/lua53 -> /usr/local/lua-5.3.1/bin/lua
lrwxr-xr-x 1 root admin 29B 10 20 10:12 /usr/local/bin/luac -> /usr/local/lua-5.1.5/bin/luac
lrwxr-xr-x 1 root admin 29B 10 20 10:08 /usr/local/bin/luac52 -> /usr/local/lua-5.2.3/bin/luac
lrwxr-xr-x 1 root admin 29B 10 20 10:11 /usr/local/bin/luac53 -> /usr/local/lua-5.3.1/bin/luac
Lua 语言 15 分钟快速入门 http://www.linuxidc.com/Linux/2013-06/86582.htm
Lua程序设计(第2版)中文 PDF http://www.linuxidc.com/Linux/2013-03/81833.htm
Lua程序设计(第二版)阅读笔记 http://www.linuxidc.com/Linux/2013-03/81834.htm
NetBSD 将支持用 Lua 脚本开发内核组件 http://www.linuxidc.com/Linux/2013-02/79527.htm
CentOS 编译安装 Lua LuaSocket http://www.linuxidc.com/Linux/2011-08/41105.htm
Programming In Lua 高清PDF中文版 http://www.linuxidc.com/Linux/2015-05/117362.htm
Prix Levitra Pharmacie Le Misoprostol Est Il En Vente Libre Au Luxembourg? [url=http://cialusa.com]generic cialis from india[/url] Ou Puis Cheapeast Ordering Doxycycline
Generic Valtrex Overnight Delivery Genericos De Cialis Buying Levitra Online Reviews [url=http://viaabuy.com]buy viagra online[/url] Xenical Orlistat 120 Mg Prix Propecia Abdominales Forum Cialis Acquisto
Toradol Over Night Amoxicillin And Pink Eye Apotheke Cialis 10mg [url=http://avdrug.com]prix du levitra orodispersible[/url] Aldactone Without A Prescription Propecia How To Make Hair Grow
Amoxicillin Ultran Zithromax To Treat Gonorrhea Pfizer Viagra Tablets [url=http://cheapvia25mg.com]generic viagra[/url] Propecia Ebuddy Infertilidad
Precio Del Cialis Cialis Gunstig Kaufen [url=http://leviplus.com]india 4 pharmacy levitra cheap[/url] Lebensmittel Zur Levitra Cialis Generika Per Uberweisung Cialis 5 Mg Quelle Est Le Prix
Precio Cialis En Andorra [url=http://ciali40mg.com]cialis no prescription[/url] Medications Like Seroquel
Finesteride Fast Delivery Levitra With Out Prescription Propecia Cipla Pharmacy [url=http://buyoxys.com]levitra online no prescription[/url] Venta De Kamagra Por Internet
Cialis 8cpr Riv [url=http://sildenafdosage.com]viagra[/url] Is It Safe To Buy Generic Cialis Online Cheap Generic Propecia Propecia Online Good Site To Buy Viagra
Amoxicillin 500 Mg No Prescription Zithromax For Gonorrhea Treatment [url=http://gaprap.com]viagra[/url] Super Kamagra Preisvergleich Propecia En Hombres Achat Cialis Lilly
Amoxicilina Antibiotic Overnight Shipping Cod Only Amoxicillin Eyes First Aid Is Ceftin The Same As Cephalexin [url=http://buyoxys.com]get online levitra prescription[/url] Progesterone In Internet Cheap Amitriptyline No Rx
Buy Antabuse Online Cod Pyridium Buy Medication Low Price No Doctors Consult [url=http://nefoc.com]propecia ecuador[/url] El Viagra Necesita Receta Levitra Acquisto Sicuro
Propecia Folcres La Caida Del Cabello [url=http://drugslr.com]cialis 5mg[/url] Ou Puis Viagra Sin Receta Gibraltar Viagra Kaufen Online Gunstig
Canada Pharmacy Tadacip 10mg Paypal [url=http://sildenaf100mg.com]viagra[/url] Priligy Foglio Illustrativo