2011-07-11 15 views
16

Necesito instalar el motor Spidermonkey JS en mi máquina de trabajo. El proyecto en el que estoy trabajando tiene un script jslint que requiere Spidermonkey o un js binario similar. Intenté compilar Spidermonkey desde la fuente y me quedé atrapado en el infierno de la dependencia. Intenté instalar el paquete de rhino desde los repositorios de Ubuntu, y resultó ser lento y roto. Esta mañana, he compilado correctamente motor V8 de Google y v8jslint construido siguiendo las instrucciones aquí:¿La mejor manera de obtener spidermonkey js en Ubuntu?

http://blog.stevenreid.co.uk/2011/06/27/jslint-command-line-tool-powered-by-v8/

obras v8jslint, pero sólo se pelusas un archivo a la vez. Por ejemplo,

$ v8jslint foo/*.js 

si tengo a.js, b.js y c.js bajo foo, v8jslint sólo se a.js. pelusa Solución fácil: podría escribir un script bash para esto. Un problema mayor es que v8jslint no es compatible con el jslint de Spidermonkey en nuestro servidor de compilación. ¿Alguien ha tenido éxito construyendo Spidermonkey en una versión reciente de Ubuntu, o sabe una buena solución?

+0

¿Puedo preguntar qué quiere decir con "v8jslint no es compatible con el Spidermonkey jslint" por favor ?. – Steve

+0

"v8jslint no es compatible con el jslint de Spidermonkey en nuestro servidor de compilación". Es decir, la pelusa de Spidermonkey detectará ciertos errores que v8 pierde y viceversa. Así que no sé si la construcción pasará si tengo v8 y el servidor ejecuta spidermonkey. – ovrkenthousand

Respuesta

16

arreglaron. Necesitas el paquete 'autoconf2.13'. Instalarlo con apt-get. Vaya a la página de códigos fuente de SpiderMonkey en Mozilla. Encuentre el repositorio de hg (vinculado a continuación) y descargue una instantánea del árbol de Mozilla. No lo clones, solo consigue el archivo como .tar.gz o .tar.bz2 en la barra superior.

http://hg.mozilla.org/index.cgi/mozilla-central/file/tip

descomprimir el archivo y cd en el directorio raíz.

$ cd js/src 
$ autoconf2.13 
$ ./configure 
$ make 

Esto debería hacer un binario llamado js. Por alguna razón, cuando ejecuté make install, no copió js en/bin /. Acabo de enlazar simbólicamente/bin/js para apuntar a ~ /.../ mozilla/js/src/js. guiones pelusa trabajar ahora y no tener que empezar una acumulación de pelusa para corregir los errores más: P

Fuente:

https://developer.mozilla.org/en/SpiderMonkey_Build_Documentation

Nota: las anteriores llamadas de enlace para el comando autoconf-2.13. Creo que esto es un error tipográfico; desea usar autoconf2.13 como escribí en el código.

+0

No es un error tipográfico, en ArchLinux se llama 'autoconf-2.13'. Depende de tu distribución, supongo. –

5

También, (través #2: spidermonkey-bin not availble in Ubuntu Lucid - Issues - hallettj/jslint.vim - GitHub), se puede utilizar PPA for Launchpad Engineering : “Canonical Launchpad Engineering” team:

sudo add-apt-repository ppa:launchpad/ppa 
sudo apt-get update 
sudo apt-get install spidermonkey-bin 
apt-cache show spidermonkey-bin 
sudo apt-get install spidermonkey-bin # also installs extra: libmozjs2d 

# .. and then: 
$ js --help 
JavaScript-C 1.8.0 pre-release 1 2007-10-03 
usage: js [-zKPswWxCij] [-t timeoutSeconds] [-c stackchunksize] [-o option] [-v version] [-f scriptfile] [-e script] [-S maxstacksize] [scriptfile] [scriptarg...] 
$ js 
js> var f = function(){ print("the answer is " + 42); }; 
js> f(); 
the answer is 42 
js> ^C 
$ 
+1

No veo spidermonkey-bin enumerado allí. ¿Lo dejaron caer, o me estoy perdiendo algo? – nealmcb

+1

@nealmcb Parece que se ha eliminado. – drusepth

6

actualización:

parece spidermonkey-bin ya no está disponible a través de la PPA plataforma de lanzamiento

más el v8jslint Repo estaba caído cuando intenté clonarlo.

18

Usted puede construir desde el código fuente, pero mono araña aún está disponible en Ubuntu, que sólo ha sido renamed to "libmozjs". Instalar "libmozjs-24-bin" y luego o bien se refieren a ella como "js24" o enlace simbólico/usr/bin/js24 a "js", así:

sudo apt-get install libmozjs-24-bin; sudo ln -sf /usr/bin/js24 /usr/bin/js 
+0

Gracias por su respuesta reciente. –

+5

'sudo apt-get install libmozjs-24-bin; sudo ln -sf/usr/bin/js24/usr/bin/js' –

+1

@CameronTaggart Muchas gracias, agregué su comentario a la respuesta. – iFreilicht

3

instalar el paquete libmozjs-24-bin. Contiene el código binario de shell JavaScript de Spidermonkey /usr/bin/js24 que se puede instalar como alternativa para el comando js.

sudo apt-get install libmozjs-24-bin 
sudo update-alternatives --install /usr/bin/js js /usr/bin/js24 10 
Cuestiones relacionadas