Lua Rocks 設定 |
|
假設 /usr/local/bin/luarocks
是 luarocks-2.0.12 或更新版本,而 /usr/local/opt/lua/bin/lua
是 Lua 5.1.x,請建立預設 /usr/local/share/luarocks/config-5.1.lua
(這是 Mountain Lion 上 Homebrew 的預設套件目錄,不過我在 Ubuntu 持續整合伺服器上也有一個非常相似的運作方式 — 毫無疑問,在 Windows 上也能使用批次檔 (BAT) 檔案完成類似的事情)
rocks_trees = { "/usr/local/lib/luarocks/5.1" } variables = { LUA = "/usr/local/opt/lua/bin/lua5.1", LUA_BINDIR = "/usr/local/opt/lua/bin", LUA_INCDIR = "/usr/local/opt/lua/include", LUA_LIBDIR = "/usr/local/opt/lua/lib", }
接著在 /usr/local/bin/luarocks5.1
建立一個包裝腳本
#!/bin/sh PATH=/usr/local/opt/lua/bin:/usr/local/opt/luarocks/bin:$PATH LUAROCKS_CONFIG=/usr/local/share/luarocks/config-5.1.lua export LUAROCKS_CONFIG lua5.1 `which luarocks` ${1+"$@"} exit $?
同樣地,你需要在 /usr/local/bin/lua5.1
加入另一個包裝程式,以便設定路徑來尋找正確的 rock
#!/bin/sh : ${LUA_PATH=";"} : ${LUA_CPATH=";"} PATH=/usr/local/opt/lua/bin:/usr/local/opt/luarocks/bin:$PATH LUAROCKS_CONFIG=/usr/local/share/luarocks/config-5.1.lua export LUAROCKS_CONFIG # Set search paths to user environment settings, followed by system path, and finally rocks_trees. save_LUA_PATH=$LUA_PATH save_LUA_CPATH=$LUA_PATH eval `luarocks path` LUA_PATH="$save_LUA_PATH;$LUA_PATH" LUA_CPATH="$save_LUA_CPATH;$LUA_CPATH" exec lua5.1 ${1+"$@"}
在 /usr/local/opt/lua52/
安裝 Lua 5.2.x 之後 (同樣地,這是 Mountain Lion 上 homebrew 的預設值),儘管 brew lua52 的某些路徑與 brew lua 衝突,但你必須手動執行連結,因此你將需要一個新的 /usr/local/share/luarocks/config-5.2.lua
rocks_trees = { "/usr/local/lib/luarocks/5.2" } variables = { LUA = "/usr/local/opt/lua52/bin/lua", LUA_BINDIR = "/usr/local/opt/lua52/bin", LUA_INCDIR = "/usr/local/opt/lua52/include", LUA_LIBDIR = "/usr/local/opt/lua52/lib", }
並在 /usr/local/bin/luarocks5.2
建立一個包裝腳本
#!/bin/sh PATH=/usr/local/opt/lua52/bin:/usr/local/opt/luarocks/bin:$PATH LUAROCKS_CONFIG=/usr/local/share/luarocks/config-5.2.lua export LUAROCKS_CONFIG exec lua5.2 `which luarocks` ${1+"$@"}
以及 /usr/local/bin/lua5.2
的另一個包裝腳本
#!/bin/sh : ${LUA_PATH=";"} : ${LUA_CPATH=";"} PATH=/usr/local/opt/lua52/bin:/usr/local/opt/luarocks/bin:$PATH LUAROCKS_CONFIG=/usr/local/share/luarocks/config-5.2.lua export LUAROCKS_CONFIG # Set search paths to user environment settings, followed by system path, and finally rocks_trees. save_LUA_PATH=$LUA_PATH save_LUA_CPATH=$LUA_PATH eval `luarocks path` LUA_PATH="$save_LUA_PATH;$LUA_PATH" LUA_CPATH="$save_LUA_CPATH;$LUA_CPATH" exec lua5.2 ${1+"$@"}
LuaRocks 2.0.12 也適用於 luajit-2.0,因此我使用
/usr/local/share/luarocks/config-luajit.lua
建立第三組設定,並且在 /usr/local/bin/luarocks-luajit
和 /usr/local/bin/luajit
建立一對包裝程式。針對不同的作業系統進行調整 (例如 Ubuntu,它將套件安裝在 /usr/
樹狀結構中) 只需要調整腳本和腳本中路徑的簡單動作即可。為了保險起見,我也建立了一個指向我偏好的預設解譯器的符號連結
$ ln -s lua5.2 /usr/local/bin/lua $ ln -s luarocks5.2 /usr/local/bin/luarocks
現在,你可以透過選擇使用 luarocks5.1
或 luarocks-luajit
等方式,安裝並對應的 LuaRocks 查詢樹狀結構,讓相關聯的 Lua 解譯器自動偵測。