2012-09-03 10 views
6

Busqué pero no pude determinar si esto es posible.Lua: Instalar una roca usando luarocks de una roca instalada localmente (o de una .zip/.tar.gz)

Básicamente, http://luarocks.org está inactivo, y ya tengo aquí una copia de luafilesystem instalada en otra máquina localmente. Con Ruby, es posible realizar la instalación cruzada de las gemas de rubí usando localmente el comando 'gema'. Me pregunto si lo mismo es posible con rocas y luarocks.

¿Hay alguna forma de "realizar una instalación cruzada" de una roca (por ejemplo, luafilesystem), utilizando otra instalación local de esa roca?

Algo así como:

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

es lo que me gustaría ser capaz de hacer.

ACTUALIZACIÓN: incluso estaría contento con la forma de instalar una roca de .tar.gz o .zip, por ejemplo, si descargué una de las imágenes de this location (en el caso de LuaFileSystem).

En cuyo caso, la "fuente" para la instalación sería/podría ser local para la máquina, en lugar de remota (y no necesariamente ya estaría instalada como una roca).

Respuesta

4

LuaRocks tiene un subcomando pack que creará una roca binaria (un archivo zip que contiene todos los archivos de un módulo instalado). Puede usar esa roca binaria para instalar el mismo módulo en otra computadora, dado que la arquitectura coincide.

E.g.

luarocks pack luafilesystem 

produce luafilesystem-1.6.2-2.linux-x86_64.rock en mi máquina, y

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

volverá a instalar luafilesystem sin conexión a Internet es necesario.

19

Si tiene el código fuente de origen, puede descomprimirlo y apuntar luarocks al archivo rockspec. Aquí es cómo instalé 'reventado' de la fuente.

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

O instalarlo directamente desde la fuente

cd busted 
luarocks make 
+0

Gracias @Robert Wahler - Usted ha respondido mi "ACTUALIZACIÓN:" a la pregunta, que es bastante útil. Esperaba obtener también una respuesta para mi pregunta original (que es instalar una piedra de una que ya está instalada, pero quizás eso no sea posible). ¡En cualquier caso, obtienes un voto favorable de mí! – likethesky

+0

No conozco una forma automática de hacer lo que pide, ya que durante la instalación, el código y los contenedores de contenedores pueden terminar en diferentes ubicaciones. Tanto para las gemas como para las rocas, creo una carpeta de proveedores integrada en cada proyecto para que las implementaciones no dependan de los servicios alojados en 3dparty como rubygems.org o luarocks.org. –

2

Si Alguien quiere una instalación de la roca fuente local.

a hacer esto:

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

NOTA:

Uso make en lugar de install. El motivo es here (se cita a continuación).

LuaRocks ofrece esto:

make paquete de compilación en el directorio actual mediante un rockspec.

install Instalar una roca. Sin embargo, install no utiliza la marca actual. Intenta para descargar y recompilar el mismo paquete del servidor en su lugar del que he personalizado localmente.

¿Algún camino alrededor de esto?

El comando make realmente construir e instalar su personalizado rockspec. La elección de nomenclatura pobre causa confusión de vez en cuando, Lo sé.

Cuestiones relacionadas