2021-05-12 14:32:11
如何設定一套優雅的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
相關文章