[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ejecutar un script desde postinst



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.


-- 
xve


Reply to: