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

Re: problème avec sh, ln et postinst



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Bonjour

Avant toute chose, merci d'avoir pris le temps de me répondre

Le 30/01/2015 15:34, Cyril Brulebois a écrit :
> Hello,
> 
> Laurent COOPER <laurent.cooper@ac-grenoble.fr> (2015-01-30):
>> J'ai un comportement qui me semble étrange dans le postinst d'un
>> paquet, et vous aurez peut être une idée
>> 
>> Je fais un test avant de créer un lien symbolique
>> 
>> [ ! -e /mon/fichier ] && ln -s /cible /mon/fichier
>> 
>> normalement, si /mon/fichier n'existe pas, la commande ln n'est
>> pas faite.
>> 
>> Le comportement attendu ne se produit pas
>> 
>> * Le test avec le -e semble ne pas fonction si /mon/fichier est
>> un lien symbolique. J'ai cru que c'était lié au fait que sh soit
>> en fait dash, j'ai essayé avec bash, même problème
> 
> Au hasard, ça fonctionne si le lien symbolique pointe vers quelque
> chose qui existe, et pas si ça pointe dans le vide. Il suffit de
> lire la page de manuel :
> 
> Except for -h and  -L,  all  FILE-related  tests  dereference
> symbolic links.
> 

effectivement, je venais d'en arriver à la même conclusion. Le fichier
cible n'a pas été copié correctement à la création du paquet, alors
que j'étais persuadé qu'il existait.

Mea Culpa

>> * Du coup la commande ln se lance, mais me pête une erreur : le
>> fichier existe déjà
>> 
>> * et là, le postinst reste bloqué dans un état zombi, dont je ne
>> sors qu'en faisant un killall frontend
> 
> C'est difficile de savoir ce qui peut se passer quand tu donnes
> aussi peu d'informations (script complet ? processus en cours ?)…
> 
>> J'ai pu tester ...
>> 
>> si je remplace -e par -h, il a le comportement attendu
>> 
>> si je remplace ln par ln /cible /mon/fichier || true ça ne me
>> plante plus le postins (mais POURQUOI ????)
> 
> Parce que tu viens d'essayer avec -h juste avant ?
> 

Non, c'est bien sans le -h

le seul process qui tourne, mis à part les daemons, c'est mon dpkg -i
paquet.deb

Et il bloque sur le ln qui fait une erreur....

Il y a bien le set -e au début du script de postinst, mais iul devrait
normalement s'arréter avec une erreur et pas rester frozen ?

> Mraw, KiBi.
> 
Merci encore

Laurent
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
Comment: GPGTools - https://gpgtools.org

iEYEARECAAYFAlTLmCIACgkQuB19dK89d+D8+wCcCFf7+Rswe1TmvOfdAKeGE7v3
114AoLmgyOoDulwO6fD66Y6069mmfyvY
=nWv2
-----END PGP SIGNATURE-----


Reply to: