本地安装 Lua 和 LuaRocks 的工具
项目描述
hererocks是一个单文件 Python 2.7/3.x 脚本,用于将Lua (或LuaJIT、moonjit或RaptorJIT)及其包管理器LuaRocks安装到本地目录中。它将 Lua 配置为仅查看由 LuaRocks 捆绑版本安装的包,因此安装是隔离的。
基本用法
hererocks lua53 -l5.3 -rlatest # Install Lua 5.3 with latest LuaRocks into 'lua53' directory.
source lua53/bin/activate # Run activation script, adding 'lua53/bin' to $PATH.
lua -v # Lua, LuaRocks, and programs
luarocks install luacheck # installed using LuaRocks
luacheck --version # can now be used.
deactivate-lua # Remove 'lua53/bin' from $PATH.
lua53/bin/lua -v # All the binaries can still be used directly.
有关更多信息,请参见下文或运行hererocks --help以获得完整的选项列表。
安装
使用pip:运行pip install git+https://github.com/luarocks/hererocks ,必要时使用sudo 。
手动:使用wget https://raw.githubusercontent.com/luarocks/hererocks/latest/hererocks.py下载 hererocks ,然后使用python hererocks.py ...运行它。
要求
Python 2.7 或 3.x
用于从 Git 存储库安装的 Git。
编译器:
Windows:MinGW,在 PATH 中使用gcc等工具,或者 Visual Studio 2008 或更高版本(请参阅--target的帮助消息)。
OS X:抄送。
其他系统:gcc。
激活脚本
hererocks将几个激活脚本写入安装目录的bin子目录。当来源(在 Windows 上:简单地执行)时,它们将该子目录的路径添加到PATH环境变量中。这允许人们直接使用安装在创建环境中的lua、luarocks和其他程序。此外,激活脚本使deactivate-lua命令可用。它从PATH中删除当前激活环境的路径。激活环境会自动停用前一个环境(如果存在)。
安装了多个版本的激活脚本以支持各种 shell:
视窗:
批处理:activate.bat。
PowerShell:激活.ps1。
其他系统:
Bash、Zsh、Dash:激活.
鱼:激活.fish。
Tcsh,csh:激活.csh 。
命令行选项
安装位置
hererocks命令的第一个参数应该是安装 Lua 和/或 LuaRocks 的目录的路径。如果它不存在,它将被创建。
如果安装目录已经安装了 Lua,则可以在其上安装新版本的 Lua 或 LuaRocks 作为无缝升级(使用 LuaRocks 安装的软件包将继续工作),前提是新旧 Lua 次要版本相同。例如 Lua 5.1.5 和 LuaJIT 2.1 可以安装在 Lua 5.1.1 上,但不能安装在 Lua 5.2.1 上。否则,在安装不兼容的 Lua 版本时,应在运行hererocks之前删除安装目录。如果hererocks检测到它已经将请求版本的 Lua 或使用相同选项构建的 LuaRocks 安装到目录中,它将跳过该程序的安装,除非使用--ignore-installed/-i。
安装后 Lua 和 LuaRocks 二进制文件将位于安装目录的bin子目录中。使用 LuaRocks 安装的脚本也会出现在那里。Lua 二进制文件总是被命名为lua,即使它在底层是 LuaJIT ,而 LuaRocks 二进制文件像往常一样被命名为luarocks。
版本选择
--lua/-l、 --luajit/-j、 --moonjit/-m、 --raptorjit和--luarocks/-r选项选择要安装的程序版本。有三种方法可以指定如何获取源:
使用版本号,例如5.1.5。如果补丁或次要版本被忽略,将使用最新的可能版本,例如 Lua 5.2目前等同于5.2.4而 LuaJIT 2.1等同于2.1.0-beta3。latest或^可用于选择最新的稳定版本。hererocks将从相应的下载位置获取并解压所选版本的源代码,验证其 SHA256 校验和。
使用 git URI 加上对结帐的引用,以@分隔。默认引用是master,Lua ( https://github.com/lua/lua )、LuaJIT ( https://github.com/luajit/luajit ) 和 LuaRocks ( https://github. com/luarocks/luarocks)。例如,--luajit @458a40b从 LuaJIT git 存储库的提交安装,-- luajit @从其主分支安装。hererocks将使用git命令进行克隆。
使用本地目录的路径。
兼容性标志
Lua 和 LuaJIT 有一些标志可以增加与其他 Lua 版本的兼容性。Lua 5.1 有几个与 Lua 5.0 兼容的选项(默认开启),Lua 5.2 有 5.1 兼容性标志(默认开启),Lua 5.3 - 5.1 和 5.2 兼容标志(只有 5.2 兼容性默认开启),LuaJIT 有5.2 标志(默认关闭)。当使用--compat选项时, herrocks可以在构建之前更改这些标志。可能的参数是default、none、all、5.1和5.2。
安装标准 PUC-Rio Lua
可用版本:5.1 - 5.1.5、5.2.0 - 5.2.4、5.3.0 - 5.3.6、5.4.0 - 5.4.4。latest和^ version 别名指向5.4.4。
使用5.1.0安装 Lua 5.1,由于某种原因发布了没有补丁版本的 Lua 5.1。
在构建 Lua 时,herrocks 会尝试模拟一个合理的make目标。默认值可以在hererocks --help打印的帮助消息中看到。要选择另一个目标,请使用--target选项。
安装 LuaJIT
可用版本:2.0.0 - 2.0.5、2.1.0-beta1 - 2.1.0-beta3。latest和^ version 别名指向2.0.5。
OpenResty fork 可以使用 git URI 选项安装:-- luajit https://github.com/openresty/luajit2.git@v2.1-agentzh。
安装moonjit
可用版本:2.1.1 - 2.2.0。latest和^ version 别名指向2.1.2。
安装 RaptorJIT
可用版本:1.0.0 - 1.0.3。latest和^ version 别名指向1.0.3。
Luarocks 从 3.2.0 开始支持 RaptorJIT。
安装 LuaRocks
可用版本:2.0.8 - 2.4.4、3.0.0 - 3.8.0。latest和^ version 别名指向3.8.0。
2.0.8 版不支持 Lua 5.2。版本 2.0.8 - 2.1.2 不支持 Lua 5.3。
使用 hererocks 设置自动化测试
Travis-CI和Drone.io等流行的持续集成服务不支持开箱即用的 Lua。只需几行代码,就可以使用 hererocks 解决这个问题。下面是一个 Travis-CI 配置文件 ( .travis.yml ) 的示例,使用 hererocks在 Lua 5.1、5.2、5.3、LuaJIT 2.0 和 2.1 下安装 Rock 并运行Busted测试套件:
language: python # Can use any language here, but if it's not 'python'
# it becomes necessary to pass '--user' to pip when installing hererocks.
env:
- LUA="lua 5.1"
- LUA="lua 5.2"
- LUA="lua 5.3"
- LUA="lua 5.4"
- LUA="luajit 2.0"
- LUA="luajit 2.1"
before_install:
- pip install hererocks
- hererocks env --$LUA -rlatest # Use latest LuaRocks, install into 'env' directory.
- source env/bin/activate # Add directory with all installed binaries to PATH.
- luarocks install busted
install:
- luarocks make # Install the rock, assuming there is a rockspec
# in the root of the repository.
script:
- busted
Appveyor的等效配置 ( appveyor.yml )允许在 Windows 上进行测试:
environment:
matrix:
- LUA: <s>"lua</s> <s>5.1"</s>
- LUA: <s>"lua</s> <s>5.2"</s>
- LUA: <s>"lua</s> <s>5.3"</s>
- LUA: <s>"lua</s> <s>5.4"</s>
- LUA: <s>"luajit</s> <s>2.0"</s>
- LUA: <s>"luajit</s> <s>2.1"</s>
before_build:
- set PATH=C:\Python27\Scripts;%PATH% # Add directory containing 'pip' to PATH
- pip install hererocks
- hererocks env --%LUA% -rlatest
- call env\bin\activate
- luarocks install busted
build_script:
- luarocks make
test_script:
- busted
项目详情
下载文件
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.