Re: problèm e avec sh, ln et postinst

Cyril Brulebois <[email protected]> Fri, 30 Jan 2015 15:34:57 +0100
Newsgroups gmane.linux.debian.devel.french
Organization Debian
Message-ID <[email protected]>
Hello,

Laurent COOPER <[email protected]> (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.
signature.asc (application/pgp-signature, 819 B)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBAgAGBQJUy5aRAAoJEP+RSvDCs1UgBAsP/2mr+INEyl7gtqmJbo+X2Ocp
ZQKWaBzaCm82d2v9veVeBaJ5OWJNX9znXkR622lNX1cQ7RfvoucYMD2viRyG9pYP
LFLLvDh5hUx3MKdKQDm4zbMG8/DVZfQQn5DcUSA+NVUcHQTFEovd7w2xF7TvvfUn
jdlkSuG8+rdLKhlXx+p2Bh4keFLz/L63I5jIJ8WrKou+IzhKXkCtZsOvM4C2Yn7A
wGKCREkMXYnkYoJqQkM/CtyhO+yxG7GMLTVyVak60vYWmHYsFTD6FnmZsUjx07BD
GRTAoK+uAMqLEspaxNYPGc4OtQqepN36pqtdGWDLO1db68WdN6YGvravZibMWbBj
VBfQ0jQGYEgDQpvE1cMIulMcoAq4E/Uhx8mwCimoLD4cMvT+CwJAksKg9z4a6Wv+
dsSr9zwY0Mo4aMvDJqqhf/pjtLiBrvKg6lVGfCYRJpMZkBd+Hm0ThqP+y54Q1yz1
iQvANyUU9CZ9PcMXrgeGJjwoR8OPr4vMoHp3KJ5vc+7+08xP7NZNNANM4C9spfLa
uMVhe3jkWq47KEvIaBraa+eEG4H2ls1L65qzmWIDmvhQ7UHk4nJR59MdSu06eGtu
/alg+qGuAkwLkrkyw29cdG+3GZwxurycq2k9JSOKuXXiB7CbFpciRbPRDkTuGIWV
U0eQYme4Das2iJGpTABL
=0Ofg
-----END PGP SIGNATURE-----