Re: problème avec sh, ln et postinst
Laurent COOPER <[email protected]> Fri, 30 Jan 2015 15:41:38 +0100
| Newsgroups | gmane.linux.debian.devel.french |
|---|---|
| Message-ID | <[email protected]> |
-----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 <[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. > 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-----