Question

To install luarocks, I downloaded the most recent (2.0.11) tar.gx file from here. I unpacked it, and followed the instructions.

$ ./configure 
Lua interpreter found: /usr/local/bin/lua...
Lua version detected: 5.1
Looking for Lua... 
lua found in $PATH: /usr/local/bin
Checking Lua includes... 
lua.h found in /usr/local/include/lua.h
curl found at /usr/bin
openssl found at /opt/local/bin
Configuring for system... 
Darwin
Configuring for architecture... 
i386
Writing configuration...

Installation prefix: /usr/local
LuaRocks configuration directory: /usr/local/etc/luarocks
Using Lua from: /usr/local

Done. You can now run 'make' to build.

I then ran sudo make install, and finally tried installing a package but when I try to run it I get this error:

$ sudo luarocks install lpeg
/usr/local/bin/lua: /usr/local/share/lua/5.1//luarocks/cfg.lua:355: attempt to call global 'tonumber' (a nil value)
stack traceback:
    /usr/local/share/lua/5.1//luarocks/cfg.lua:355: in main chunk
    [C]: in function 'require'
    /usr/local/share/lua/5.1//luarocks/command_line.lua:6: in main chunk
    [C]: in function 'require'
    /usr/local/bin/luarocks:4: in main chunk
    [C]: ?

Running lua manually, tonumber works just fine as does everything else. I don't know why it's failing here.

Was it helpful?

Solution

At the top of cfg.lua you need to add

local tonumber = tonumber

before the module call. You can include tonumber in both lines of the list of similar local definitions. You can make these changes in the installed version in /usr/local/share/lua/5.1//luarocks/cfg.lua or in the source version and make install once again.

This is a bug in luarocks and will be fixed in the next release.

My modified luarocks-2.0.11/src/luarocks/cfg.lua contains:

local rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert, tonumber, _VERSION =
      rawset, next, table, pairs, require, io, os, setmetatable, pcall, ipairs, package, type, assert, tonumber, _VERSION

module("luarocks.cfg")
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top