为什么从 Luarocks 安装时出现错误?

Why have I errors when installing from Luarocks?

我是这个小型库的开发者:https://github.com/martin-damien/babel 我对 Luarocks 版本有疑问。

来源

当我使用 Luarocks 从源代码安装时没有问题:

$ luarocks make --local rockspecs/babel-1.2-2.rockspec

来自互联网

但是在部署时(使用:标记 master,添加新的 rockspec 版本并发布到 Luarocks),我无法使用

安装
$ luarocks install --local babel

因为我遇到了如下错误:

Installing https://luarocks.org/babel-1.2-2.src.rock... Using https://luarocks.org/babel-1.2-2.src.rock... switching to 'build' > mode stat: malsukcesis eltrovi statinformon pri «locales/zh-HK.lua»: No such > file or directory

Error: Build error: Failed installing locales/zh-HK.lua in /home/damien/.luarocks/lib/luarocks/rocks/babel/1.2-2/lua/locales/zh-HK.lua: locales/zh-HK.lua: No such file or directory

正如您在 https://github.com/martin-damien/babel/issues/14 中看到的那样,错误发生在不同的文件上(但直到现在,只有语言环境文件,而不是 babel.lua 文件)。

我不知道为什么它会像这样随机崩溃,所以如果有人知道为什么或知道它可能来自哪里...

提前致谢,

达米恩

build.modules table 中文件的位置是(来自 the docs rockspec 格式):

relative to source.dir

其中 source.dir

source.dir (string) - the name of the directory created when the source archive is unpacked. Can be omitted if it can be inferred from the source.file field. Example: "luasocket-2.0.1"

并且source.file

source.file (string) - the filename of the source archive. Can be omitted if it can be inferred from the source.url field. Example: "luasocket-2.0.1.tar.gz"

您没有在 your rockspec 中指定 source.dirsource.file,但您确实设置了 source.url(因为您必须这样做)。

所以你有 source.url = https://github.com/martin-damien/babel/archive/v1.2-2.zip 这(大概)以 source.file = v1.2-2.zip 结束,然后是 source.dir = v1.2-2但是您的 zip 文件解压缩到 babel-1.2 中,因此 luarocks 无法找到您的源文件。 (链接问题中的屏幕截图似乎表明 luarocks 使用 source.file = v1.2.zip 并且存档提取到 babel-1.2 但我不确定这怎么可能。)

dir = "babel-1.2" 添加到您的 rockspec source table,我希望它会起作用。