你如何安装 Luarocks 中列出的依赖项?

Posted

技术标签:

【中文标题】你如何安装 Luarocks 中列出的依赖项?【英文标题】:How do you install dependencies listed in Luarocks? 【发布时间】:2019-08-20 18:54:42 【问题描述】:

我有以下 luarocks:

package = "project-name"
version = "1.0-1"
source = 
   url = "..."

description = 
   summary = "etc"
   detailed = [[]],
   homepage = ""

dependencies = 
   "lua >= 5.1, < 5.2",
   "busted >= 2.0.rc12",
   "lua-requests >= 1.1",
   "json-lua >= 0.1",
   "lua-resty-dogstatsd >= 1.0.1"

build = 
    type = "builtin",
    modules = 
        ["project-name"] = "project/init.lua"
    

如何安装依赖项?做luarocks install 说我缺少论点。不知道在这里做什么。

【问题讨论】:

luarocks install 单独不会做任何事情。您必须提供模块名称 @Piglet 是的,我已经说过了,因此问题:P 【参考方案1】:

要手动安装单个依赖项,可以运行

luarocks install <dep-name>

您可以附加可选版本,例如

luarocks install lua-resty-jwt 0.1.11-0

要安装 Rockspec 文件中列出的所有依赖项,

luarocks install --only-deps <rockspec_file>

来自luarocks install的手册:

--only-deps 只安装rock的依赖。

或者,您可以简单地运行

luarocks make

它还会为您安装缺少的依赖项。但是,请注意,根据您的需要,它可能不是您想要的:

此命令可用作调试rockspecs 的工具。 要安装岩石,您通常需要使用“安装”和 “构建”命令。有关详细信息,请参阅这些帮助。

注意:如果要安装,请使用 luarocks install--only-deps 标志 只有 rockspec 的依赖项(参见 luarocks help install)。

【讨论】:

【参考方案2】:

luarocks build 将安装 rockspec 中列出的所有依赖项。如果您首先执行luarocks init project_name,您将获得一个本地 luarocks 命令,该命令会将模块本地安装到项目中。只在windows上测试过。我假设其他平台的行为类似

【讨论】:

【参考方案3】:

据我了解,问题是尽管您使用该 Rockspec 进行安装,但它不会安装依赖项中声明的 Rocks。 首先,您可以执行以下命令来检查上述依赖项是否存在?

命令:luarocks list | grep [dependency_name]

例如:luarocks list | grep json-lua

(luarocks list 列出所有要安装的rocks)

【讨论】:

【参考方案4】:

好的,有什么问题

luarocks install busted
luarocks install lua-requests
luarocks install json-lua
luarocks install lua-resty-dogstatsd

【讨论】:

当您使用npmpython 时,您是使用npm install package1 package2 package3 还是pip install package1 package2 package3 还是保留一个依赖文件,如package.jsonrequirement.txt,然后运行安装所有这些? 你为什么要把 python 带到 lua 讨论中?如果你没有得到你想要的答案,可能是因为问题的格式不正确。您询问了如何使用“luarocks install”命令行安装这些依赖项,并且已向您解释过。 依赖管理的重点是我不必手动运行install package1 &amp;&amp; install package2 &amp;&amp; install package3,而是进行某种配置,其中定义了依赖关系,我只说install和它将为我安装所有这些依赖项。确切地说 Node、Python、Java、Go、php 和所有其他语言都是这样做的。 @Rick 问题的格式并不差。 OP 正在尝试了解如何使用单个命令安装文件中列出的所有依赖项,而无需手动指定它们。而且似乎 luarocks 不支持(?)。如果这是真的,我就像 OP 一样好奇为什么不呢。

以上是关于你如何安装 Luarocks 中列出的依赖项?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不安装的情况下列出python库的依赖项? [复制]

如何列出/下载 debian 包的递归依赖项?

如何卸载 package.json (NPM) 中列出的所有依赖项?

错误 - “没有为 fb.python 找到 LuaRocks 模块”

如何列出 JAR 的依赖项

如何列出 React 项目中未使用的节点模块/依赖项?