三个东西要区分
| 是什么 | |
|---|---|
| Lua | 官方解释器(5.4 当前) |
| LuaJIT | Mike Pall 出的 JIT 实现,兼容 Lua 5.1 + 自家扩展 |
| luarocks | Lua 的包管理器(像 pip / npm) |
安装 Lua 5.4
macOS
brew install lua
lua -v # Lua 5.4.x
Linux
# Debian / Ubuntu
sudo apt install lua5.4
# CentOS / Rocky / Fedora
sudo dnf install lua
# 源码(任意 Unix)
curl -L https://www.lua.org/ftp/lua-5.4.7.tar.gz | tar xz
cd lua-5.4.7 && make linux && sudo make install
Windows
最省事 scoop:
scoop install lua
或 LuaForWindows(自带 luarocks,但版本老)。
安装 LuaJIT(可选)
要做 Web / 高性能场景:
# macOS
brew install luajit
# Linux
sudo apt install luajit
# 或源码:git clone https://luajit.org/git/luajit.git && cd luajit && make && sudo make install
luajit -v # LuaJIT 2.1.x
注意:LuaJIT 长期停在 Lua 5.1 语法。要用 5.4 新特性?只能用官方 Lua。
REPL
$ lua
Lua 5.4.7 Copyright (C) 1994-2024 Lua.org, PUC-Rio
> print("hello")
hello
> = 1 + 2 -- = 是 print 的别名(5.4)
3
> 1 + 2 -- 不加 = 不打印
> x = 10
> = x * 2
20
> os.exit()
第一个脚本
hello.lua:
print("Hello, Lua " .. _VERSION)
$ lua hello.lua
Hello, Lua Lua 5.4
.. 是字符串连接,_VERSION 是内置全局。
shebang
#!/usr/bin/env lua
print("scripted")
chmod +x hello.lua
./hello.lua
luarocks 安装
# Linux / macOS
sudo apt install luarocks
# 或 brew install luarocks
# 或 https://luarocks.org/ 源码安装
luarocks --version
装包
luarocks install lpeg # 全局
luarocks install penlight --local # 用户目录(~/.luarocks)
--local 是推荐做法——不污染系统。
在脚本里用
local pl = require("pl.pretty")
pl.dump({a = 1, b = {2, 3}})
编辑器
| 工具 | 优势 |
|---|---|
| VSCode + sumneko/lua-language-server | 语法、跳转、补全最完整 |
| Neovim | Lua 是它的配置语言,原生友好 |
| ZeroBrane Studio | 老牌 Lua-only IDE,自带调试 |
| IntelliJ + EmmyLua | JVM 党 / Roblox 偏好 |
lua-language-server 几乎是事实标准——VSCode、Neovim、Sublime 都接。
验证
-- check.lua
print("Lua 版本:", _VERSION)
print("整数:", 1 // 2) -- 整数除法(5.3+)
print("位运算:", 0xFF & 0x0F) -- 5.3+
如果第 2 / 3 行报错——你装的是 5.1 / LuaJIT 而非 5.3+。
→ 下一篇 基本语法