Problema con yui-compressor

Hola gente,
No encuentro en la documentacion donde y de que forma debe instalarse el yui-compressor.
Lo he descargado y copiado el .jar a /usr/share/java pero aparentemente la aplicacion no lo esta encontrando ya que obtengo estos mensajes al querer compilar:
sh: yui-compressor: command not found
sh: yui-compressor: command not found
sh: yui-compressor: command not found
sh: yui-compressor: command not found
sh: yui-compressor: command not found

Gracias

Hola… no se si te sirve mi post. Pero a mi me pasó lo mismo pero en Windows.

http://foro.comunidad.siu.edu.ar/index.php?topic=7173.msg30417

Saludos, Diego.

Hola Claudio:

 Buscando por la web encontré varias maneras de instalarlo http://g33kinfo.com/info/archives/4284, yo en mi ubuntu, particularmente lo instale con:

sudo apt-get install yui-compressor

Saludos
Sergio

Si lo vi, nos tendrían que confirmar si para Linux es lo mismo.

“SH” yui-compressor: command not found.

Ojo que dice el interprete de comandos, lo lo que veo dice SH y no BASH.
Por otro lado te adjunto una info del yuicompressor, si te animas a compilarlo te dejo el source https://github.com/yui/yuicompressor/downloads, e info en https://github.com/yui/yuicompressor

El yuicompressor está instalado y funciona cuando lo llamo. Lo que no está funcionando aparentemete es la llamada desde la aplicación. Habría que ver el path donde lo intenta buscar.

Hola Claudio. Una pregunta: el comando lo estás corriendo con el mismo usuario que puede acceder al yui-compressor?
la ejecución del comando se hace en el archivo src/siu/lib/kernel/consola/comandos/compilar_recursos.php . Si mirás las líneas 162 y 163 se puede ver lo siguiente:


$cmd = "yui-compressor $archivo --charset $encoding -o $path_nuevo";
exec($cmd);

Esto ejecuta el programa definido en $cmd como el usuario que ejecutó el comando (en este caso guarani compilar_recursos)

Una prueba que podés realizar es poner un echo entre esas dos líneas para ver que se está ejecutando efectivamente y luego tratar de ejecutar manualmente alguno de los comandos que salieron en el output para ver cuál es el problema. Te dejo el código con el echo y esperamos tu respuesta:


$cmd = "yui-compressor $archivo --charset $encoding -o $path_nuevo";
echo "$cmd\n";
exec($cmd);

Saludos

Bueno ahi lo hice, pero lo que veo que esta mal es como invoca al comando yui-compressor, ya que no existe como tal.
El yui compressor cuando se instala, por le menos en Linux, no te crea un ejecutable, es un .jar que debe ser invocado con Java. Eso lo solucione con un script, el tema es que ahora aparecen nuevos errores:

yui-compressor /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css
java.io.FileNotFoundException: /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css (No such file or directory)
   at gnu.java.nio.channels.FileChannelImpl.open(libgcj.so.10)
   at gnu.java.nio.channels.FileChannelImpl.<init>(libgcj.so.10)
   at gnu.java.nio.channels.FileChannelImpl.create(libgcj.so.10)
   at java.io.FileInputStream.<init>(libgcj.so.10)
   at java.io.FileInputStream.<init>(libgcj.so.10)
   at com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:118)
   at java.lang.reflect.Method.invoke(libgcj.so.10)
   at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21)

El directorio _comp existe y los permisos estan para apache y root

Hola, ahí el problema es que el archivo /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css no existe, chequea bien si existe o si el path que apunta al archivo esta mal.

Para saber si tenes yui-compressor instalado, vas a la consola y corres

yui-compressor

, si esta instalado te debería traer información sobre las opciones disponibles, etc. Para instalarlo es

sudo apt-get install yui-compressor

A mi me compila bien los recursos, pero el comando lo debo correr como sudo para que funcione (Habría que verlo):

sudo bin/guarani compilar_recursos

saludos, Leonel.

Mi experiencia fue la siguiente:

  1. me paro sobre el proyecto:
cd /home/leonel/php_projects/g3w2/trunk3/
  1. corro el comando para compilar recursos:
bin/guarani compilar_recursos

esto me tira un montón de errores en la consola.

  1. corro de nuevo el comando pero con sudo:
sudo bin/guarani compilar_recursos

ahora me tira lo mismo que a Claudio:


....
sh: yui-compressor: command not found
sh: yui-compressor: command not found
sh: yui-compressor: command not found
...

  1. luego instale yui-compressor:
sudo apt-get install yui-compressor
  1. vuelvo a correr el comando:
sudo bin/guarani compilar_recursos

y funciono.

espero que esto sirva, saludos.

Hola, el archivo origen existe: /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css

java.io.FileNotFoundException: /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css (No such file or directory)
   at gnu.java.nio.channels.FileChannelImpl.open(libgcj.so.10)
   at gnu.java.nio.channels.FileChannelImpl.<init>(libgcj.so.10)
   at gnu.java.nio.channels.FileChannelImpl.create(libgcj.so.10)
   at java.io.FileInputStream.<init>(libgcj.so.10)
   at java.io.FileInputStream.<init>(libgcj.so.10)

Ahi esta diciendo como que el destino no existe…no es lo que debería general del yui compressor?

Cuando lo ejecuto solo me tira:

[root@g3w2-nodo1 2.8.1]# yui-compressor

Usage: java -jar yuicompressor-x.y.z.jar [options] [input file]

Global Options
  -h, --help                Displays this information
  --type <js|css>           Specifies the type of the input file


probra corriendo en la consola ese comando solo y mostrame lo que devuelve y fíjate si lo comprime a pesar de lo que devuelva:

yui-compressor /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css
[root@g3w2-nodo1 bin]# yui-compressor /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css
java.io.FileNotFoundException: /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css (No such file or directory)
   at gnu.java.nio.channels.FileChannelImpl.open(libgcj.so.10)
   at gnu.java.nio.channels.FileChannelImpl.<init>(libgcj.so.10)
   at gnu.java.nio.channels.FileChannelImpl.create(libgcj.so.10)
   at java.io.FileInputStream.<init>(libgcj.so.10)
   at java.io.FileInputStream.<init>(libgcj.so.10)
   at com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:118)
   at java.lang.reflect.Method.invoke(libgcj.so.10)
   at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:21)
[root@g3w2-nodo1 bin]#

si corres esto que te trae?:

gedit /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css

el problema es que no existe la carpeta /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/. Momentáneamente créala a mano, luego nosotros veremos de corregir el comando.

decime si con eso funciona. Leonel.

Si la carpeta existe, hasta crea los archivos pero con tamaño 0

[root@g3w2-nodo1 css]# ls -l
total 0
-rw-r--r-- 1 apache root 0 Aug 12 11:39 bootstrap.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 bootstrap-responsive.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 coda-slider.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 dev_bar.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 facebox.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 guarani.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 guarani_mash.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 guarani_mash_not_browser.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 guarani-responsive.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 jqueryui.css
-rw-r--r-- 1 apache root 0 Aug 12 11:39 media_querys.css
[root@g3w2-nodo1 css]#

Otra opción que tenés es probar el yui-compressor con algún archivo css que sepas que exista y que el destino esté también en una carpeta que exista para descartar problemas de path. Por ejemplo, probá lo siguiente:

cp /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css /tmp
cd /tmp
yui-compressor guarani.css -o out.css

Si esto tira un error, quizá haya un error en el script q creaste para ejecutar el comando como ‘yui-compressor’. Si es así por favor posteá ese script.

Saludos!

Bueno ahi hice la prueba. Finalmente el problema era mi script que no se porque falla.

#!/bin/sh
YUI_JAR=/usr/share/yui-compressor/yui-compressor.jar
java -jar $YUI_JAR "$*"

Intente invocando al yui-compressor de esta forma:

java -jar /usr/share/yui-compressor/yui-compressor.jar guarani.css -o out.css

y funciono OK

El tema es que la aplicación llama al comando yui-compressor, y el comando no existe, ya que es un .jar. Uds como lo invocan?

Hola, lo invocamos de la siguiente manera:

yui-compressor /usr/local/proyectos/3w/2.8.1/src/siu/www/css/guarani.css --charset iso-8859-1 -o /usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/guarani.css

donde el primer path es el archivo de origen (sin comprimir) y el segundo path es el archivo destino (comprimido).

yo te había dicho que chequees que exista el archivo de origen y la carpeta final de destino (/usr/local/proyectos/3w/2.8.1/src/siu/www/_comp/siu/css/), ya que si no existen lanza el error ese que pusiste (No such file or directory).

no se como instalaste el yui-compressor, pero lo deberías haber instalado como te puse mas abajo:

sudo apt-get install yui-compressor

el comando por ahora correlo con sudo:

sudo bin/guarani compilar_recursos

saludos!

Evidentemente el problema es la instalación de yui-compressor. No puedo instalarlo de esa forma ya que no tengo Debian, estamos sobre CentOS y no esta en los repositorios

El problema no es la carpeta origina ni destino. Ambas existen, el problema es el script que invoca el .jar

De momento voy a modificar el fuente compilar_recursos.php para que lo invoque usando Java.

Slds