如何在没有互联网的情况下安装luarocks包?

时间:2016-11-28 13:15:38

标签: lua torch luajit luarocks

我在github上使用了火炬发行版存储库并安装了LuaJIT和luarocks。

我想从源代码安装luarocks软件包,即下载软件包(.zip文件)并从源代码构建它们。

我尝试通过从github下载软件包然后运行luarocks install modulename.rockspec来实现。但是在这里它再次从github开始克隆。

有谁能告诉我这样做的确切程序?

1 个答案:

答案 0 :(得分:1)

您可以使用source rocks or binary rocks

使用源岩

源摇滚是包含.src.rock扩展名的包,其中包含来源。你创建它包装rockspec:

luarocks pack bla-1.0-1.rockspec     # uses the network

这会产生bla-1.0-1.src.rock。运行luarocks build bla-1.0-1.src.rock不会使用网络来构建bla,但如果需要,它将访问网络以获取依赖项。因此,您需要事先打包并安装所有依赖项。

使用二进制岩石

二进制摇滚是一个编译包,其.PLATFORM.rock扩展名包含.lua或.so / .dll模块。您创建它构建一个模块,然后打包您构建的代码:

luarocks build bla-1.0-1.rockspec     # uses the network
luarocks pack bla                     # doesn't use the network

这会产生二元摇滚,比如bla-1.0-1.linux-x86.rock。但请注意,要将其安装在另一台计算机上,目标计算机需要完全兼容ABI,即源计算机和目标计算机中所有已安装的库都需要兼容(例如,相同的OS /发行版本)。因此,这对于将岩石部署到服务器场中的多台计算机非常有用,但通常不会为最终用户分发二进制包。

将打包的岩石分组到本地服务器

使用上述方法之一打包所需的所有岩石(及其依赖项)后,您可以将它们全部放在目录中,然后将其转换为本地服务器":

mkdir my_rocks
mv *.rock my_rocks     # suppose we have some packed .rock files here
cd my_rocks
luarocks-admin make-manifest my_rocks

这适用于源和二进制岩石。然后你就可以从那里建造岩石而无需获取网络。

luarocks install bla --only-server=/home/YOURNAME/my_rocks