Search code examples
lualuarocks

Lua: Install a rock using luarocks from a locally installed rock (or from a .zip/.tar.gz)


I hunted around but I couldn't determine if this is possible.

Basically, http://luarocks.org is down, and I already have a copy of luafilesystem installed on another machine locally here. With Ruby, it's possible to cross install ruby gems using the 'gem' command locally. I'm wondering if the same is possible with rocks and luarocks.

Is there any way to 'cross-install' a rock (for instance, luafilesystem), by using another local installation of that rock?

Something like:

luarocks install //10.0.1.123/machine/path/to/luafilesystem/on/other/machine

is what I'd like to be able to do.

UPDATE: I'd even be happy with how to install a rock from the .tar.gz or .zip, for instance, if I downloaded one of the images from this location (in the case of LuaFileSystem).

In which case, the 'source' for the install would / could be local to the machine, rather than remote (and wouldn't necessarily already be installed as a rock).


Solution

  • LuaRocks has a pack subcommand that will create a binary rock (a zip file containing all files for an installed module). You can use that binary rock to install the same module on another computer, given that the architecture matches.

    E.g.

    luarocks pack luafilesystem
    

    produces luafilesystem-1.6.2-2.linux-x86_64.rock on my machine, and

    luarocks install luafilesystem-1.6.2-2.linux-x86_64.rock
    

    will reinstall luafilesystem with no internet connection necessary.