LuaRocks (package manager)

LuaRocks is the package manager for Lua modules. On most distributions it is available as luarocks. For lots of cool Lua packages see awesome-lua.

Search for a library

luarocks search luasec

Install a library

luarocks install --local luasec

You can install Lua libraries locally or on a systemwide basis. A local install indicates that the Lua library you install is available to you, but no other user of the computer. If you’re developing a Lua application, then you probably want to install a library to a project directory instead. In Luarocks terminology, this is a tree. Your default tree when installing libraries locally is $HOME/.luarocks, but you can redefine it arbitrarily.

mkdir local
luarocks --tree=./local install cmark

Using a library

You can use the library in your Lua code by defining the package.path variable to point to your local rocks directory

package.path = package.path .. ';local/share/lua/5.3/?.lua'


If a library you’ve installed is compiled, resulting in a .so file (a .dll on Windows and .dylib on macOS), then you must add to your cpath instead. For instance, the luafilesystem library provides the file

package.cpath = package.cpath .. ';local/share/lua/5.3/?.so'


Show information about an installed rock

luarocks show luasec

List installed rocks

luarocks list

Remove a rock

luarocks remove --local cmark

Next: Testing