2012-09-03 22 views
6

我在附近寻找,但我无法确定这是否可行。Lua:使用来自本地安装的岩石(或.zip/.tar.gz)的luarocks安装岩石

基本上,http://luarocks.org已关闭,我已经在本地安装了另一台机器上的luafilesystem副本。使用Ruby,可以在本地使用'gem'命令交叉安装ruby gems。我想知道是否可以用岩石和吊袜扣。

是否有任何方法通过使用另一个本地安装的岩石来“交叉安装”岩石(例如,luafilesystem)?

喜欢的东西:

luarocks install //10.0.1.123/machine/path/to/luafilesystem/on/other/machine

是想我是能够做到的。

更新:如果我从this location(在LuaFileSystem的情况下)下载了其中一个图像,我甚至会对如何从.tar.gz或.zip安装岩石感到满意。

在这种情况下,安装的'源'可能是机器本地的,而不是远程的(并且不一定已经被安装为摇滚)。

回答

4

LuaRocks有pack子命令,将创建一个二进制岩(包含所有文件的安装模块中的zip文件)。考虑到架构匹配,您可以使用该二进制文件在另一台计算机上安装相同的模块。

E.g.

luarocks pack luafilesystem 

产生luafilesystem-1.6.2-2.linux-x86_64.rock我的机器上,并

luarocks install luafilesystem-1.6.2-2.linux-x86_64.rock 

将重新安装luafilesystem必要没有互联网连接。

19

如果您有源zip文件,您可以将其解压并将luarocks指向rockspec文件。这里是我如何从源代码安装'破解'。

git clone https://github.com/Olivine-Labs/busted.git 
luarocks install busted/busted-1.3-1.rockspec 

,或者直接从源代码安装这

cd busted 
luarocks make 
+0

Thanks @Robert Wahler - 你已经回答了我的“UPDATE:”这个问题,这很有帮助。我也希望能得到我原来的问题的答案(即从已经安装的岩石上安装岩石 - 但也许这是不可能的)。无论如何,你从我这里得到赞扬! – likethesky

+0

我不知道自动的方式来做你自问安装后,代码和bin包装可能会在不同的位置。对于宝石和岩石,我创建了一个嵌入到每个项目中的供应商文件夹,因此部署不依赖于3dparty托管的服务,如rubygems.org或luarocks.org。 –

2

如果有人想从本地源代码安装。

只是这样做:

cd /path/to/source-rock 
luarocks make source-rock.rockspec 

注:

使用make,而不是install。原因是here(下面引用)。使用rockspec在当前目录

make编译软件包:

LuaRocks提供这一点。

install安装一块石头。

但是,install不利用现在的制造。它会尝试 从服务器上下载并重新编译相同的软件包,而不是我在本地自定义的软件包中的 。

任何方法吗?

make命令将实际构建并安装您的定制 rockspec。可怜的命名选择偶尔会引起混淆,我知道。