# Install lua with Homebrew, chocolatey, dnf, MacPorts, Nix, pacman, scoop, winget, zypper, apk

Powerful, lightweight programming language. Version 5.5.0 via Homebrew; verified 2026-06-19.

## Install

```sh
sudo av install brew:lua
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lua
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install lua
```

  Evidence: MacPorts ports tree: lang/lua/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install compat-lua
```

  Evidence: Fedora Rawhide package metadata: compat-lua from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#lua
```

  Evidence: nixpkgs package indexes: lua from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix

- pacman (92%):

```sh
sudo pacman -S lua
```

  Evidence: Arch Linux sync databases: lua from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz

- zypper (92%):

```sh
sudo zypper install lua53
```

  Evidence: openSUSE Tumbleweed package metadata: lua53 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

- apk (92%):

```sh
sudo apk add lua5.5
```

  Evidence: Alpine Linux edge package indexes: lua5.5 from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz

### Windows

- Chocolatey (92%):

```sh
choco install Lua
```

  Evidence: Chocolatey community package catalog: Lua from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','librespeed-cli'

- Scoop (92%):

```sh
scoop install main/lua
```

  Evidence: Scoop official bucket manifest trees: bucket/lua.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id DEVCOM.Lua -e
```

  Evidence: Windows Package Manager source index: DEVCOM.Lua from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:lua
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/lua>
- **Version:** 5.5.0
- **Source summary:** Powerful, lightweight programming language
- **Homepage:** <https://www.lua.org/>
- **Repository:** <https://github.com/lua/lua>
- **Upstream docs:** <https://www.lua.org/manual>
- **License:** MIT
- **Source archive:** <https://www.lua.org/ftp/lua-5.5.0.tar.gz>
- **Last updated:** 2026-06-19T12:31:49-07:00
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- lua (cli)
- lua-5.5 (cli)
- lua5.5 (cli)
- luac (cli)
- luac-5.5 (cli)
- luac5.5 (cli)
- lua (alias)
- lua-5.5 (alias)
- lua5.5 (alias)
- luac (alias)
- luac-5.5 (alias)
- luac5.5 (alias)

## Install behavior

- Post-install hook: not defined
- Caveats: You may also want luarocks: brew install luarocks
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-09
- Package-manager version: 5.5.0
- Package-manager updated: 2026-06-19
- Local data: ok
- Upstream repository: https://www.lua.org/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

Lua is a lightweight, embeddable scripting language developed at PUC-Rio in Brazil. The Homebrew lua package represents the mainline Lua runtime and compiler, exposing the lua interpreter and luac compiler for interactive use, scripting, embedding, and bytecode compilation.

### Project history

Lua was created in 1993 at PUC-Rio as an extension and configuration language. Official Lua history material frames its evolution from a simple in-house configuration language into a widely used embeddable language with tables, lexical scoping, closures, coroutines, and a small portable C implementation.

The official reference manual emphasizes Lua's dual identity: it is both a standalone interpreter and a library designed to be embedded in host programs. This design made Lua attractive for applications that wanted scripting without carrying a large runtime. The distribution is source-first, written in clean C, and builds on common Unix-like platforms with a small Makefile-driven process.

Lua 5.x shaped the package-manager era of Lua. Lua 5.1 became historically important because LuaJIT targets the 5.1 language family; Lua 5.2, 5.3, 5.4, and 5.5 continued the standard interpreter line with API and virtual-machine changes. The official version history records Lua 5.5.0 released on 22 Dec 2025 with global-variable declarations, named vararg tables, more compact arrays, and incremental major garbage collections.

### Adoption history

Lua's adoption has been driven by embedding. The official manual describes using C functions to extend Lua into domain-specific languages, and the official readme says Lua is used in many products and projects around the world. Its small C implementation made it popular in games, applications, embedded systems, network software, and tools that need a scripting layer.

Package managers package Lua both as a current interpreter and as versioned formulas because ABI and language-version differences matter. The supplied package-manager facts show broad distribution across Homebrew, apk, Chocolatey, dnf, MacPorts, Nix, pacman, Scoop, winget, and zypper, while separate packages such as lua@5.4 preserve older minor series for applications and libraries that cannot jump runtime versions.

### How it is used

Users run lua for interactive or batch scripts, run luac to compile Lua chunks, or embed liblua in a host application. Lua programs often use LuaRocks or distribution packages for modules, but the core runtime itself does not use a project-level config file or credentials file.

For packagers, the important usage detail is that different Lua minor versions are not ABI compatible. The official version history states that different versions can have different APIs and virtual machines, so applications embedding Lua and C libraries for Lua must be rebuilt for a new version.

### Why package nerds care

Lua is a package-manager staple because it is simultaneously a user-facing scripting language, an embeddable C library, and the dependency underneath many other tools. Package nerds care about which minor series a formula installs, how executable names are versioned, whether luac is included, and how Lua modules find the matching runtime.

### Timeline

- 1993: Lua was born at PUC-Rio in Brazil.
- 2000: Lua 4.0 was released, closing the era covered by the first official HOPL history paper.
- 2015: Lua 5.3 introduced integers, bitwise operators, a basic UTF-8 library, and 32/64-bit support.
- 2020: Lua 5.4 introduced a new generational garbage collector mode and const/to-be-closed variables.
- 2025: Lua 5.5.0 was released with global-variable declarations and other language/runtime changes.

### Related projects

- LuaJIT is a major alternative implementation associated with Lua 5.1 compatibility.
- LuaRocks is the common Lua module package manager used alongside distribution Lua packages.
- LuaLS and Luacheck are developer tools in the Lua ecosystem that depend on Lua language semantics.
- PUC-Rio and Lua.org are the official institutional and project homes for the reference implementation.

### Sources

- <https://raw.githubusercontent.com/lua/lua/master/README.md>
- <https://www.lua.org/history.html>
- <https://www.lua.org/manual/5.5/manual.html>
- <https://www.lua.org/manual/5.5/readme.html>
- <https://www.lua.org/versions.html>
- source_facts.package-manager


## Security Notes

doc example: interpreter runtime.

- **Geiger risk:** yellow / high
- doc example: interpreter runtime

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** lua
- **Aliases:** lua@5.5
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Nix - lua: normalized package name match | nixpkgs package indexes: lua from https://raw.githubusercontent.com/NixOS/nixpkgs/master/pkgs/top-level/all-packages.nix
- dnf - compat-lua - 5.1.5-31.fc44: normalized package name match | Fedora Rawhide package metadata: compat-lua from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Powerful light-weight programming language (compat version) | http://www.lua.org/
- dnf - lua - 5.5.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: lua from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Powerful light-weight programming language | https://www.lua.org/
- dnf - lua-devel - 5.5.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: lua-devel from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Development files for lua | https://www.lua.org/
- dnf - lua-libs - 5.5.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: lua-libs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Libraries for lua | https://www.lua.org/
- dnf - lua-static - 5.5.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: lua-static from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Static library for lua | https://www.lua.org/
- dnf - lua5.4-libs - 5.5.0-1.fc45: normalized package name match | Fedora Rawhide package metadata: lua5.4-libs from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Compat libraries for lua5.4 | https://www.lua.org/
- pacman - lua - 5.5.0-2: normalized package name match | Arch Linux sync databases: lua from https://geo.mirror.pkgbuild.com/extra/os/x86_64/extra.db.tar.gz | Powerful lightweight programming language designed for extending applications | https://www.lua.org/
- zypper - lua53 - 5.3.6-4.4: normalized package name match | openSUSE Tumbleweed package metadata: lua53 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Small Embeddable Language with Procedural Syntax | https://www.lua.org
- zypper - lua54 - 5.4.8-4.4: normalized package name match | openSUSE Tumbleweed package metadata: lua54 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Small Embeddable Language with Procedural Syntax | https://www.lua.org
- zypper - lua55 - 5.5.0-1.4: normalized package name match | openSUSE Tumbleweed package metadata: lua55 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Small Embeddable Language with Procedural Syntax | https://www.lua.org
- zypper - luajit - 2.1.20250826-2.3: normalized package name match | openSUSE Tumbleweed package metadata: luajit from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | JIT compiler for Lua language | https://github.com/openresty/luajit
- MacPorts - lua: normalized package name match | MacPorts ports tree: lang/lua/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Chocolatey - Lua: normalized package name match | Chocolatey community package catalog: Lua from http://community.chocolatey.org/api/v2/Packages?$filter=IsLatestVersion&$select=Id&$top=1000&$skiptoken='11','librespeed-cli'
- Scoop - main/lua: normalized package name match | Scoop official bucket manifest trees: bucket/lua.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - DEVCOM.Lua: normalized package name match | Windows Package Manager source index: DEVCOM.Lua from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [busted](https://www.automicvault.com/pkg/brew/busted/) - Popular package that depends on this formula.
- [clingo](https://www.automicvault.com/pkg/brew/clingo/) - Popular package that depends on this formula.
- [fennel](https://www.automicvault.com/pkg/brew/fennel/) - Popular package that depends on this formula.
- [fennel-ls](https://www.automicvault.com/pkg/brew/fennel-ls/) - Popular package that depends on this formula.
- [fnlfmt](https://www.automicvault.com/pkg/brew/fnlfmt/) - Popular package that depends on this formula.
- [freeciv](https://www.automicvault.com/pkg/brew/freeciv/) - Popular package that depends on this formula.
- [freeswitch](https://www.automicvault.com/pkg/brew/freeswitch/) - Popular package that depends on this formula.
- [gnuplot](https://www.automicvault.com/pkg/brew/gnuplot/) - Popular package that depends on this formula.
- [lua@5.4](https://www.automicvault.com/pkg/brew/lua-5-4/) - Package name indicates the same formula family.
- [luau](https://www.automicvault.com/pkg/brew/luau/) - Shares av.db curated category or tags: cli, embeddable, language-runtime, lua, programming-language.
- [algol68g](https://www.automicvault.com/pkg/brew/algol68g/) - Shares av.db curated category or tags: cli, compiler, interpreter, language-runtime, programming-language.
- [gnu-apl](https://www.automicvault.com/pkg/brew/gnu-apl/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language, scripting.
- [janet](https://www.automicvault.com/pkg/brew/janet/) - Shares av.db curated category or tags: cli, embeddable, language-runtime, programming-language, scripting.
- [mosml](https://www.automicvault.com/pkg/brew/mosml/) - Shares av.db curated category or tags: cli, compiler, interpreter, language-runtime, programming-language.
- [picat](https://www.automicvault.com/pkg/brew/picat/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language, scripting.
- [ruby](https://www.automicvault.com/pkg/brew/ruby/) - Shares av.db curated category or tags: cli, interpreter, language-runtime, programming-language, scripting.

## Combined YAML source

View the package source record on GitHub. [combined/lua.yml](https://github.com/automic-vault/db/blob/main/combined/lua.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
