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

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

## Install

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

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install lua@5.4
```

  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

- pacman (92%):

```sh
sudo pacman -S lua54
```

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

- zypper (92%):

```sh
sudo zypper install liblua5_4-5
```

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

- apk (92%):

```sh
sudo apk add lua5.4
```

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

- Debian apt (92%):

```sh
sudo apt install liblua5.4-0
```

  Evidence: Debian stable package indexes: liblua5.4-0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- 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

### 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@5.4
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/lua@5.4>
- **Version:** 5.4.8
- **Source summary:** Powerful, lightweight programming language
- **Homepage:** <https://www.lua.org/>
- **Repository:** <https://github.com/lua/lua>
- **Upstream docs:** <https://www.lua.org/manual/5.4>
- **License:** MIT
- **Source archive:** <https://www.lua.org/ftp/lua-5.4.8.tar.gz>
- **Last updated:** 2026-06-19T12:31:49-07:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- lua-5.4 (cli)
- lua5.4 (cli)
- luac-5.4 (cli)
- luac5.4 (cli)
- lua-5.4 (alias)
- lua5.4 (alias)
- luac-5.4 (alias)
- luac5.4 (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-08
- Package-manager version: 5.4.8
- 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 5.4 is the Homebrew versioned package for the Lua 5.4 runtime line. It exists because Lua minor versions can differ in API, ABI, virtual machine, and language behavior, so package managers keep older supported series available beside the current lua formula.

### Project history

Lua 5.4 belongs to the long-running Lua 5.x family from PUC-Rio and Lua.org. The official version history says Lua 5.4 was released on 29 Jun 2020, with a new generational garbage collection mode plus const and to-be-closed variables as its main new features.

The official Lua 5.4 manual describes Lua as a lightweight embeddable language implemented as a clean C library plus the standalone lua host program. In the 5.4 line, those long-standing Lua traits continued while the runtime refined memory-management and resource-finalization behavior.

The versioned 5.4 package is distinct from the unversioned lua package because applications embedding Lua, C modules, and precompiled Lua chunks may be tied to a specific minor version. The official version history explicitly warns that different Lua versions are really different: APIs may change, there is no ABI compatibility, and virtual machines are likely to differ.

### Adoption history

Lua 5.4 became the stable post-5.3 runtime line for projects that wanted standard Lua while avoiding a jump to later language changes. The supplied package-manager facts show dedicated Lua 5.4 packaging across apk, Homebrew, Debian, Ubuntu, pacman, and other ecosystems, reflecting the common distribution habit of keeping several Lua runtimes installable at once.

For downstream packages, Lua 5.4 support also mattered because developer tools such as Luacheck and LuaLS had to understand 5.4 syntax and standard-library definitions. Luacheck's changelog records Lua 5.4 support work in 2020, and LuaLS now documents support for Lua 5.4 alongside other Lua versions.

### How it is used

Users install lua@5.4 when a script, embedded application, or Lua C module expects the 5.4 API or executable naming. The package provides lua and luac variants for the 5.4 series and does not require a runtime configuration or credentials file.

Packagers treat lua@5.4 as a compatibility runtime. It lets formulas pin to Lua 5.4 while the unversioned lua package moves forward, reducing accidental ABI and behavior changes for embedded users.

### Why package nerds care

lua@5.4 is package-nerd material because it is all about versioning discipline. The package preserves an ABI and language line that other packages can depend on, which is exactly why language runtimes often live in both current and versioned formulas.

### Timeline

- 1993: Lua was created at PUC-Rio.
- 2020-06-29: Lua 5.4 was released.
- 2020: Lua 5.4 introduced generational garbage collection mode and const/to-be-closed variables.
- 2025-06-04: The official version history lists Lua 5.4.8 as a current 5.4 release.

### Related projects

- Lua is the unversioned current formula for the same reference implementation family.
- LuaRocks commonly installs modules against a specific Lua minor version.
- LuaLS and Luacheck both document support for Lua 5.4 language semantics.
- LuaJIT remains important for Lua 5.1-family compatibility, making versioned Lua packages part of normal Lua ecosystem work.

### Sources

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


## Security Notes

No matching local secret-handling manifest was found for lua@5.4. Nucleus package metadata is still published here so future coverage has a stable package URL.


## Source Database Details

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

## Other Package-Manager Records

- Debian apt - liblua5.4-0 - 5.4.7-1+b2: installed executable or alias match | Debian stable package indexes: liblua5.4-0 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Shared library for the Lua interpreter version 5.4 | http://www.lua.org
- Debian apt - liblua5.4-dev - 5.4.7-1+b2: installed executable or alias match | Debian stable package indexes: liblua5.4-dev from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Development files for the Lua language version 5.4 | http://www.lua.org
- Debian apt - lua5.4 - 5.4.7-1+b2: installed executable or alias match | Debian stable package indexes: lua5.4 from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Simple, extensible, embeddable programming language | http://www.lua.org
- Ubuntu apt - liblua5.4-0 - 5.4.6-3build2: installed executable or alias match | Ubuntu 24.04 LTS package indexes: liblua5.4-0 from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Shared library for the Lua interpreter version 5.4 | http://www.lua.org
- Ubuntu apt - liblua5.4-dev - 5.4.6-3build2: installed executable or alias match | Ubuntu 24.04 LTS package indexes: liblua5.4-dev from https://archive.ubuntu.com/ubuntu/dists/noble/main/binary-amd64/Packages.gz | Development files for the Lua language version 5.4 | http://www.lua.org
- Ubuntu apt - lua5.4 - 5.4.6-3build2: installed executable or alias match | Ubuntu 24.04 LTS package indexes: lua5.4 from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Simple, extensible, embeddable programming language | http://www.lua.org
- apk - lua5.4 - 5.4.8-r0: installed executable or alias match | Alpine Linux edge package indexes: lua5.4 from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Powerful light-weight programming language | https://www.lua.org/
- apk - lua5.4-dbg - 5.4.8-r0: installed executable or alias match | Alpine Linux edge package indexes: lua5.4-dbg from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Powerful light-weight programming language (debug symbols) | https://www.lua.org/
- apk - lua5.4-dev - 5.4.8-r0: installed executable or alias match | Alpine Linux edge package indexes: lua5.4-dev from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Powerful light-weight programming language (development files) | https://www.lua.org/
- apk - lua5.4-doc - 5.4.8-r0: installed executable or alias match | Alpine Linux edge package indexes: lua5.4-doc from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Powerful light-weight programming language (documentation) | https://www.lua.org/
- apk - lua5.4-libs - 5.4.8-r0: installed executable or alias match | Alpine Linux edge package indexes: lua5.4-libs from https://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz | Lua dynamic library runtime | https://www.lua.org/
- pacman - lua54 - 5.4.8-6: package manager index match | Arch Linux sync databases: lua54 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 - liblua5_4-5 - 5.4.8-4.4: package manager index match | openSUSE Tumbleweed package metadata: liblua5_4-5 from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | The Lua integration library | https://www.lua.org
- zypper - liblua5_4-5-32bit - 5.4.8-4.4: package manager index match | openSUSE Tumbleweed package metadata: liblua5_4-5-32bit from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | The Lua integration library | https://www.lua.org
- zypper - lua54 - 5.4.8-4.4: package manager index 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 - lua54-devel - 5.4.8-4.4: package manager index match | openSUSE Tumbleweed package metadata: lua54-devel from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | Development files for lua | https://www.lua.org


## Related links

- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [corsixth](https://www.automicvault.com/pkg/brew/corsixth/) - Popular package that depends on this formula.
- [dovecot](https://www.automicvault.com/pkg/brew/dovecot/) - Popular package that depends on this formula.
- [lmod](https://www.automicvault.com/pkg/brew/lmod/) - Popular package that depends on this formula.
- [lsyncd](https://www.automicvault.com/pkg/brew/lsyncd/) - Popular package that depends on this formula.
- [vis](https://www.automicvault.com/pkg/brew/vis/) - Popular package that depends on this formula.
- [wxlua](https://www.automicvault.com/pkg/brew/wxlua/) - Popular package that depends on this formula.
- [lua](https://www.automicvault.com/pkg/brew/lua/) - Package name indicates the same formula family.
- [lua-language-server](https://www.automicvault.com/pkg/brew/lua-language-server/) - Both packages touch the same language runtime or ecosystem. Shared terms: language, lua.
- [fennel](https://www.automicvault.com/pkg/brew/fennel/) - Both packages touch the same language runtime or ecosystem. Shared terms: language, lua, programming.

## Combined YAML source

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


## Sources

- Nucleus package database
- package-page enrichment
- curated package history
- package version freshness
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
