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: