1. 程式人生 > >Lua 的模組安裝和部署工具

Lua 的模組安裝和部署工具

Lua 是一個短小精悍的指令碼語言,很多功能官方都不內建支援,需要新增第三方模組庫來支援。但是,這些第三方模組是由不同開發者製作,分散的放在不同地方,如果想要安裝一個模組還要到處去找,況且下載完模組後,有時還需要手動編譯,設定環境變數,把模組放到指定的 Lua 模組載入目錄。反正,安裝一個第三方 Lua 模組需要執行上述一連串操作,也是一個繁瑣的過程。

對於這些繁瑣,LuaRocks 可以簡化以上安裝 Lua 模組的操作。 LuaRocks 是 Lua 模組的安裝和部署工具,類似於 Ruby gemPython egg Perl cpan,它可以很方便的安裝第三方 Lua 模組,而且你不需要關心模組之間的依賴關係,一條命令就可以很輕鬆地把模組安裝部署好,省心,省力,不用去折騰安裝 Lua 模組的細節。

安裝 LuaRocks

喜聞樂見的是,Mac 下的 Homebrew 居然內建了 LuaRocks 的安裝包(之前安裝 Lua,用 "brew search lua" 搜 Lua 安裝包時無意間發現),因此,在 Mac 下安裝 LuaRocks 很簡單,一條指令就行:

1 brew install luarocks -v

用 Homebrew 安裝 LuaRocks 的版本是 luarocks-2.0.12,不過當前最新釋出的版本是 luarocks-2.0.13,如果你想安裝最新版,或者是非 Mac 使用者,也可以原始碼自定義安裝 LuaRocks:

1 2 3 4 5 wget http://luarocks.org/releases/luarocks-2.0.13.tar.gz cd luarocks-2.0.13 ./configure --prefix=/usr/local/luarocks/ --rocks-tree=/usr/local --sysconfdir=/usr/local/etc/luarocks make make install

"rocks-tree" 是指所要安裝的 Lua 模組的預設安裝目錄,"sysconfdir" 是指 LuaRocks 的配置檔案存放的地方,更多的安裝設定引數可以檢視這裡

使用 LuaRocks

LuaRocks 也不是什麼模組都能安裝得到,它只彙集了一些比較出名的常用的第三方 Lua 模組。它有一個可安裝的

Lua 模組列表,如果被安裝的 Lua 模組在這個可安裝列表裡,那麼就可以用 LuaRocks 來安裝部署。

它的用法跟 Homebrew 差不多,例如想安裝一個解析 JSON(JavaScript Object Notation) 的模組,可以用 search 引數先搜尋一下有什麼可安裝的解析 JSON 的模組:

1 luarocks search json

假設想安裝一個名為 json4lua 模組,可以用 install 引數來安裝:

1 luarocks install json4lua

上面指令執行完後,模組就安裝好了。可以寫個 JSON 字串轉 Lua table 的小例子來測試下模組是否安裝成功

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 local json = require("json") local json_str = '{"key1" : "val1", "key2" : "val2", "key3" : "val3"}' local json_tab = json.decode(json_str) for k, v in pairs(json_tab) do print(k, v) end --輸出 --key1  val1 --key3  val3 --key2  val2 local tab = {a = "b", "c", 123, d = 456} io.write(json.encode(tab) .. "\n") --輸出 --{"1":"c","2":123,"a":"b","d":456}

把上面程式碼儲存在一個 lua 檔案裡執行,如果執行無錯,有資料在終端裡輸出,則模組安裝成功。

如果想檢視 json4lua 模組的資訊,可以呼叫 show 引數:

1 luarocks show json4lua

或者檢視已安裝模組的列表

1 luarocks list

如果想解除安裝 json4lua 這個模組,可以用 remove 引數來操作:

1 luarocks remove json4lua

更多的命令引數用法可以檢視:

1 luarocks --help