Windows 平台 Luarocks 3.0.2 编译安装

目标

完成 Windows 10 平台下的 Luarocks 3.0.2 编译安装。

环境

  • Microsoft Windows 10 企业版 10.0.14393 版本 14393

方法

  1. 安装配置 MinGW。(MinGW 快捷安装方法参见Windows 平台 MinGW 安装)
  2. 编译安装 Lua。(Lua 编译安装方法参见Windows 下编译安装 Lua 5.3.5
  3. 下载 Luarocks 源码。官方列表 此处选择 http://luarocks.github.io/luarocks/releases/luarocks-3.0.2-win32.zip
  4. 解压 luarocks-3.0.2-win32.zip 到 C:\local
  5. 在此路径下打开命令提示符,输入命令

    1
    install.bat /F /MW /LUA C:\local\lua-5.3.5\dist /P C:\local\LuaRocks-3.0.2 /NOADMIN /SELFCONTAINED /Q

    参数说明(参照官网相关说明

    |参数|作用|
    | – | – |
    |/F|如果安装目的地已经有过安装,强制覆盖|
    | /MW | 使用 MINGW 编译|
    | /LUA | 指定 lua 编译器所在路径 |
    | /P | 指定 luarocks 安装路径 |
    | /NOADMIN | 不使用管理员权限 |
    | /SELFCONTAINED | 将 luarocks 建立的各种目录集中到安装路径下 |
    | /Q | 不提示确认操作 |

  6. 上述命令运行成功后显示如图
    文字版:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ============================
    == LuaRocks is installed! ==
    ============================


    You may want to add the following elements to your paths;
    Lua interpreter;
    PATH : C:\local\lua-5.3.5\dist\bin
    PATHEXT : .LUA
    LuaRocks;
    PATH : C:\Program Files (x86)\LuaRocks
    LUA_PATH : C:\Program Files (x86)\LuaRocks\lua\?.lua;C:\Program Files (x86)\LuaRocks\lua\?\init.lua
    Local user rocktree (Note: %APPDATA% is user dependent);
    PATH : %APPDATA%\LuaRocks\bin
    LUA_PATH : %APPDATA%\LuaRocks\share\lua\5.3\?.lua;%APPDATA%\LuaRocks\share\lua\5.3\?\init.lua
    LUA_CPATH: %APPDATA%\LuaRocks\lib\lua\5.3\?.dll
    System rocktree
    PATH : c:\local\lua-5.3.5\dist\\bin
    LUA_PATH : c:\local\lua-5.3.5\dist\\share\lua\5.3\?.lua;c:\local\lua-5.3.5\dist\\share\lua\5.3\?\init.lua
    LUA_CPATH: c:\local\lua-5.3.5\dist\\lib\lua\5.3\?.dll
  7. C:\local\LuaRocks-3.0.2 加入环境变量 ,成功后打开命令行输入 where luarocks 会输出 C:\local\LuaRocks-3.0.2\luarocks.bat(环境变量设置方法参见Windows 10 设置环境变量)

  8. 打开 C:\local\LuaRocks-3.0.2\config-5.3.lua 文件,将内容替换为以下内容(此处主要对各个编译器位置进行了设置,如果你的配置与这里不同,请对路径进行相应修改,格式参见官网说明):

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    rocks_trees = {
    { name = [[user]],
    root = home..[[/luarocks]],
    },
    { name = [[system]],
    root = [[C:\local\LuaRocks-3.0.2\systree]],
    },
    }
    variables = {
    MSVCRT = 'm', -- make MinGW use MSVCRT.DLL as runtime
    LUALIB = 'lua53.dll',
    CC = [[C:\local\MinGW-16.0\MinGW\bin\gcc.exe]],
    MAKE = [[C:\local\MinGW-16.0\MinGW\make.exe]],
    RC = [[C:\local\MinGW-16.0\MinGW\bin\windres.exe]],
    LD = [[C:\local\MinGW-16.0\MinGW\bin\gcc.exe]],
    AR = [[C:\local\MinGW-16.0\MinGW\bin\ar.exe]],
    RANLIB = [[C:\local\MinGW-16.0\MinGW\bin\ranlib.exe]],
    }
    verbose = false -- set to 'true' to enable verbose output
  9. 打开命令行,输入 luarocks install busted,如果能正常安装(示例如图),则所有配置都正确。

  10. C:\local\LuaRocks-3.0.2\systree\bin 加入环境变量,这样才能使用 luarocks 安装的可执行文件。例如上面安装的 busted 可以在命令行中直接输入 busted 使用。输出为

    1
    2
    3
    4
    5
    6
    0 successes / 0 failures / 2 errors / 0 pending : 0.0 seconds

    Error 鈫?Cannot find file or directory: spec


    Error 鈫?No test files found matching Lua pattern: _spec

参考