2012-09-03 5 views
6

Ich jagte herum, aber ich konnte nicht feststellen, ob das möglich ist.Lua: Installiere einen Stein mit Luarocks von einem lokal installierten Stein (oder von einem .zip/.tar.gz)

Grundsätzlich http://luarocks.org ist down, und ich habe bereits eine Kopie von luafilesystem auf einer anderen Maschine lokal hier installiert. Mit Ruby ist es möglich, Ruby-Edelsteine ​​über den Befehl 'Gem' lokal zu installieren. Ich frage mich, ob das Gleiche mit Felsen und Luarocks möglich ist.

Gibt es eine Möglichkeit, einen Stein (zB luafilesystem) "quer zu installieren", indem man eine andere lokale Installation dieses Felsens benutzt?

Etwas wie:

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

ist, was ich zu tun in der Lage sein möchte.

UPDATE: Ich wäre sogar glücklich mit der Installation eines Rocks aus der .tar.gz oder .zip, zum Beispiel, wenn ich eines der Bilder von this location heruntergeladen habe (im Fall von LuaFileSystem).

In diesem Fall wäre/könnte die "Quelle" für die Installation lokal für die Maschine sein und nicht remote (und wäre nicht unbedingt bereits als Rock installiert).

Antwort

4

LuaRocks von der Quelle installieren hat eine pack subcommand, die einen binären Felsen schaffen (eine Zip-Datei alle Dateien für ein installiertes Modul enthält). Sie können diesen Binär-Rock verwenden, um das gleiche Modul auf einem anderen Computer zu installieren, vorausgesetzt, die Architektur stimmt überein.

z.

luarocks pack luafilesystem 

produziert luafilesystem-1.6.2-2.linux-x86_64.rock auf meiner Maschine und

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

notwendig luafilesystem ohne Internetverbindung neu installiert.

19

Wenn Sie die Quell-Zip haben, können Sie es entpacken und luarocks auf die Rockspec-Datei verweisen. Hier ist, wie ich 'busted' von der Quelle installiert habe.

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

Oder es direkt

cd busted 
luarocks make 
+0

Dank @Robert Wahler - Sie haben meine "UPDATE:" beantwortet, die Frage ist sehr hilfreich. Ich hatte gehofft, auch eine Antwort auf meine ursprüngliche Frage zu bekommen (nämlich einen Rock von einem zu installieren, der bereits installiert ist - aber vielleicht ist das nicht möglich). In jedem Fall bekommst du eine Erwähnung von mir! – likethesky

+0

Ich kenne keine automatische Möglichkeit, das zu tun, was Sie fragen, da die Code- und Bin-Wrapper bei der Installation an verschiedenen Orten landen können. Für Edelsteine ​​und Steine ​​erstelle ich einen Herstellerordner, der in jedes Projekt eingebettet ist, so dass Bereitstellungen nicht von gehosteten Diensten wie rubygems.org oder luarocks.org abhängen. –

2

Wenn jemand eine Installation von der lokalen Quelle Rock wollen.

Genau dies tun:

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

HINWEIS:

Verwenden make statt install. Der Grund ist here (unten zitiert).

LuaRocks bietet dieses:

make Compile-Paket in dem aktuellen Verzeichnis eine rockspec verwenden.

install Installieren Sie einen Stein.

Allerdings verwendet install nicht die vorliegende Marke. Es versucht , das gleiche Paket vom Server desjenigen herunterzuladen und neu zu kompilieren, das ich lokal besonders angefertigt habe.

Irgendwo um diese?

Der make Befehl tatsächlich bauen und installieren Sie Ihre maßgeschneiderte rockspec. Die schlechte Benennung Wahl verursacht hin und wieder Verwirrung, Ich weiß.