UP | HOME

luarocks

Table of Contents

1 概述

luarocks 是 lua 的包管理库。类似与 python 的 pip。

2 安装

直接通过系统包管理工具进行安装:

apt install luarocks

3 使用

有如下命令行参数

luarocks --help

  LuaRocks 2.4.2, a module deployment system for Lua

  NAME
      /usr/bin/luarocks - LuaRocks main command-line interface

  SYNOPSIS
      /usr/bin/luarocks [--from=<server> | --only-from=<server>] [--to=<tree>] [VAR=VALUE]... <command> [<argument>]

  GENERAL OPTIONS
      These apply to all commands, as appropriate:

      --server=<server>      Fetch rocks/rockspecs from this server
                             (takes priority over config file)
      --only-server=<server> Fetch rocks/rockspecs from this server only
                             (overrides any entries in the config file)
      --only-sources=<url>   Restrict downloads to paths matching the
                             given URL.
      --tree=<tree>          Which tree to operate on.
      --local                Use the tree in the user's home directory.
                             To enable it, see '/usr/bin/luarocks help path'.
      --verbose              Display verbose output of commands executed.
      --timeout=<seconds>    Timeout on network operations, in seconds.
                             0 means no timeout (wait forever).
                             Default is 30.

  VARIABLES
      Variables from the "variables" table of the configuration file
      can be overriden with VAR=VALUE assignments.

  COMMANDS
      build
          Build/compile a rock.
      config
          Query information about the LuaRocks configuration.
      doc
          Show documentation for an installed rock.
      download
          Download a specific rock file from a rocks server.
      help
          Help on commands. Type '/usr/bin/luarocks help <command>' for more.
      install
          Install a rock.
      lint
          Check syntax of a rockspec.
      list
          List currently installed rocks.
      make
          Compile package in current directory using a rockspec.
      new_version
          Auto-write a rockspec for a new version of a rock.
      pack
          Create a rock, packing sources or binaries.
      path
          Return the currently configured package path.
      purge
          Remove all installed rocks from a tree.
      remove
          Uninstall a rock.
      search
          Query the LuaRocks servers.
      show
          Show information about an installed rock.
      unpack
          Unpack the contents of a rock.
      upload
          Upload a rockspec to the public rocks repository.
      write_rockspec
          Write a template for a rockspec file.

  CONFIGURATION
      Lua version: 5.1
      Configuration files:
          System: /etc/luarocks/config.lua (ok)
          User  : /home/lsl/.luarocks/config-5.1.lua (not found)

      Rocks trees in use:
          /home/lsl/.luarocks
          /usr/local

luarocks 默认安装在 /usr/ 目录下,但很多时候由于权限原因,需要另外指定安装位置,可通过全局参数 --tree 做到这点。

4 使用举例

4.1 显示子命令帮助

进一步显示 lua 子命令的参数和用法:

luarocks help <command>

4.2 查找包

luarocks search json

可以看到有各种版本的 json 实现。

4.3 安装包

luarocks intall lua-cjson

会安装 lua-cjson 到默认目录。

可以使用 =--local= 安装到用户目录,这样没有 root 权限的额问题。

4.4 查看安装路径

luarocks path
export LUA_PATH='/home/lsl/.luarocks/share/lua/5.1/?.lua;/home/lsl/.luarocks/share/lua/5.1/?/init.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua;./?.lua;/usr/local/lib/lua/5.1/?.lua;/usr/local/lib/lua/5.1/?/init.lua;/usr/share/lua/5.1/?.lua;/usr/share/lua/5.1/?/init.lua'
export LUA_CPATH='/home/lsl/.luarocks/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/?.so;./?.so;/usr/lib/x86_64-linux-gnu/lua/5.1/?.so;/usr/lib/lua/5.1/?.so;/usr/local/lib/lua/5.1/loadall.so'

打印结果可以直接在 shell 中执行以修改 LUA_PATHLUA_CPATH 两个环境变量。

如果不想修改环境变量,还可以只打印路径:

luarocks path --lr-path
/home/lsl/.luarocks/share/lua/5.1/?.lua;/home/lsl/.luarocks/share/lua/5.1/?/init.lua;/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/init.lua

然后添加到代码文件中的 luapath 和 luacpath 后就可以使用 require 进行调用。

4.5 查看安装后信息

luarocks show lua-cjson

安装完成以后,这样查看安装了哪些文件以及位置。

4.6 查看包帮助文档

luarocks doc lua-cjson

该命令会在浏览器中打开包的帮助文档。

4.7 查看已安装的包

luarocks list

会打印已经安装的所有包。使用 --outdated 仅打印可升级的软件包。

4.8 删除所有安装包

luarocks --tree /home/test purge

该命令中, --tree 是必需的,luarocks 不会默认指定要删除的位置。

5 制作 package

主要介绍如何安装,如何参考Documentation

Author: liushangliang

Email: phenix3443+github@gmail.com

Created: 2020-04-26 日 10:54