優雅的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
Lua 的詳細介紹:請點這裡
Lua 的下載地址:請點這裡