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