2012-09-03 9 views
6

Ho cacciato in giro ma non sono riuscito a determinare se è possibile.Lua: Installa una roccia usando il luarock da una roccia installata localmente (o da un .zip/.tar.gz)

Fondamentalmente, http://luarocks.org non funziona, e ho già una copia di luafilesystem installata su un'altra macchina localmente qui. Con Ruby, è possibile eseguire l'installazione incrociata di ruby ​​gem usando il comando "gem" localmente. Mi sto chiedendo se lo stesso è possibile con rocce e luarocks.

C'è un modo per "eseguire l'installazione incrociata" di una roccia (ad esempio, luafilesystem), utilizzando un'altra installazione locale di tale roccia?

Qualcosa di simile:

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

è quello che mi piacerebbe essere in grado di fare.

AGGIORNAMENTO: Sarei persino contento di come installare una roccia da .tar.gz o .zip, ad esempio, se ho scaricato una delle immagini da this location (nel caso di LuaFileSystem).

In tal caso, la "sorgente" per l'installazione sarebbe/potrebbe essere locale alla macchina, piuttosto che remota (e non sarebbe necessariamente già installata come una roccia).

risposta

4

LuaRocks ha un sottocomando pack che creerà una roccia binario (un file zip contenente tutti i file di un modulo installato). Puoi usare quel binario rock per installare lo stesso modulo su un altro computer, dato che l'architettura corrisponde.

E.g.

luarocks pack luafilesystem 

produce luafilesystem-1.6.2-2.linux-x86_64.rock sulla mia macchina, e

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

sarà reinstallare luafilesystem senza connessione a internet necessaria.

19

Se si dispone del file zip sorgente, è possibile decomprimerlo e puntare il punto di collegamento sul file rockspec. Ecco come ho installato "busted" dalla fonte.

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

oppure installarlo direttamente dalla fonte

cd busted 
luarocks make 
+0

Grazie @Robert Wahler - Hai risposto al mio "AGGIORNAMENTO:" alla domanda, che è molto utile. Speravo di ottenere anche una risposta per la mia domanda iniziale (che è quella di installare un rock da uno già installato - ma forse non è possibile). In ogni caso, ottieni un preventivo da me! – likethesky

+0

Non conosco un modo automatico per fare quello che chiedi da quando, durante l'installazione, il codice e i wrapper bin possono finire in posizioni diverse. Per entrambe le gemme e le rocce, creo una cartella del fornitore che è incorporata in ogni progetto, quindi le distribuzioni non dipendono dai servizi in hosting di 3dparty come rubygems.org o luarocks.org. –

2

Se qualcuno desidera un'installazione dal rock di origine locale.

solo fare questo:

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

NOTA:

Usa make invece di install. Il motivo è here (citato sotto).

LuaRocks offre questo:

make pacchetto di compilazione nella directory corrente utilizzando un rockspec.

install Installare una roccia.

Tuttavia, install non utilizza la presente marca. Prova per scaricare e ricompilare lo stesso pacchetto dal server invece di quello che ho personalizzato localmente.

Un modo per aggirare questo?

Il comando make effettivamente costruire e installare il personalizzato rockspec. La scarsa scelta dei nomi causa confusione ogni tanto, lo so, .

Problemi correlati