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
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:
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:
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):
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
[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]#
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.
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.
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:
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.