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

Re: problème avec sh, ln et postinst



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.

> * 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 ?

Mraw,
KiBi.

Attachment: signature.asc
Description: Digital signature


Reply to: