El Friday 07 November 2008, Alberto Vicat escribió: > xve escribió: > > El Friday 07 November 2008, Santiago Vila escribió: > >> On Fri, 7 Nov 2008, xve wrote: > >>> Hola a todos, > >>> > >>> dispongo de un paquete .deb realizado por nosotros, el cual queremos > >>> que al terminar de instalarse, ejecute un script, pero no lo > >>> conseguimos que nos funcione. > >>> > >>> El fichero postinst contiene: > >>> ---------------------------------- > >>> #!/bin/sh > >>> set -e > >>> > >>> echo "Restarting cron...." > >>> /etc/init.d/cron restart > >>> > >>> /etc/file.sh > >>> ---------------------------------- > >>> > >>> El cron lo realiza correctamente, pero el file.sh no lo ejecuta. > >>> El file.sh tiene derechos de lectura y ejecucion > >> > >> ¿Dónde tiene derechos de lectura y ejecución? ¿En el código fuente del > >> paquete o dentro del .deb? > > > > Los derechos de lectura y ejecucion estan en el fichero file.sh que esta > > dentro del paquete. Dentro del paquete, logicamente tiene derechos de > > ejecucion. > > > >> ¿Aparece como ejecutable al hacer "dpkg -c paquete.deb"? > > > > Me muestra todos los ficheros que contiene el paquete > > > >>> Hemos probado poniendo: > >>> ./etc/file.sh > >>> . /etc/file.sh > >>> /bin/sh /etc/file.sh > >>> sh /etc/file.sh > >>> > >>> Hemos puesto para ver si da algun resultado: > >>> /etc/file.sh > /etc/result > >>> > >>> Pero de ninguna manera conseguimos que se ejecute. > >> > >> ¿Cómo sabes que no se ejecuta? ¿Has puesto esto como primera línea? > > > > Sabemos que nos ejecuta, porque en su interior tiene puesto: > > echo "hola" > > echo "hola2" > /home/x > > > > no vemos hola en la pantalla, y no nos crea el fichero "x" dentro de > > "/home" > > > >> echo Hola. Soy /etc/file.sh > >> > >> ¿Qué sucede si además de usar "set -e" en el postinst pones "set -x" > >> para que te cuente su vida? > > > > He puerto tal como me comentas "set -x", y me indica que lo ejecuta: > > ---------------------------------- > > + echo "Restarting cron...." > > Restarting cron.... > > + /etc/init.d/cron restart > > Restarting periodic command sheduler: crond > > + /etc/file.sh > > ---------------------------------- > > aunque realmente no lo ejecuta si instalo el paquete con aptitude install > > ..., pero si instalo el paquete con dpkg -i sin coger el fichero de un > > repositorio si que me funciona... muestra lo mismo en pantalla, pero aqui > > si que lo ejecuta. No entiendo la diferencia¿? > > > >> ¿Tampoco funciona si lo pones en /usr/bin en lugar de /etc? > > > > Hace exactamente lo mismo... > > > >> [ Sólo unas cuantas ideas ] > > > > Muchas gracias por tu ayuda santiago. > > ¿Hiciste la prueba de ejecutarlo a manopla directamente, desde consola? > Digo para estar seguro de que no tiene algún errorcito que le impida > ejecutarse. > > Saludos
Si, si, lo he probado manualmente y funciona. Como comento arriba, si instalo el paquete con dpkg -i paquete.deb lo ejecuta. Si lo instalo con aptitude install desde el repositorio, no lo ejecuta. Es muy raro, y no se porque razon no lo hace. Un saludo -- xve -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

