Skip to main content

本地安装 Lua 和 LuaRocks 的工具

项目描述

GitHub 工作流状态 编解码器

hererocks是一个单文件 Python 2.7/3.x 脚本,用于将Lua (或LuaJITmoonjitRaptorJIT)及其包管理器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环境变量中。这允许人们直接使用安装在创建环境中的lualuarocks和其他程序。此外,激活脚本使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-beta3latest^可用于选择最新的稳定版本。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可以在构建之前更改这些标志。可能的参数是defaultnoneall5.15.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-CIDrone.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.

Source Distribution

hererocks-0.25.1.tar.gz (36.6 kB view hashes)

Uploaded source

Built Distribution

hererocks-0.25.1-py3-none-any.whl (36.2 kB view hashes)

Uploaded py3