# Paquet debian - un update dans le postinst

**URL:** <https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053 "2016-02-20T19:17:27Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![jobano](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/6de8d8/32.png) [@jobano](https://www.debian-fr.org/u/jobano)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/1 "2016-02-20T19:17:27Z")

</div>

Bonjour,

je cherche à mettre à jour les dépôts d’une machine via un paquet (pour ajouter un nouveau repository)  
et évidemment, mon paquet se bloque lui-même, je ne peux faire un “apt-get update” durant le postinst, le système dpkg étant ‘locké’.

j’ai pensé à un délock manuel (ça paraît sacrément moche), toujours est-il que je ne vois pas de solution.

quelqu’un a une idée ?

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/2 "2016-02-20T19:17:30Z")

</div>

Installation d’un script qui tourne en tache de fond et attend que le verrou soit parti pour lancer l’update…

---

<div class="post-metadata">

**Author:** ![jobano](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/6de8d8/32.png) [@jobano](https://www.debian-fr.org/u/jobano)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/3 "2016-02-20T19:17:31Z")

</div>

excellent !  
je n’y avais pas songé, certes, mais ça va pas le faire, mon paquet a besoin de dépendances de ce nouveau repository !

j’explique un peu plus:  
monPaquet a besoin de dépendancesX dispo sur un repository spécifique  
mon idée était de faire un PrePaquet, qui installe le dependancesX.list  
ce PrePaquet serait en Pre-Depends de monPaquet  
mais monPaquet a besoin de dépendancesX… d’où l’idée de faire un update dans le postinst de PrePaquet…

une autre idée ?

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/4 "2016-02-20T19:17:31Z")

</div>

Que je comprenne bien, tu as  
monpaquet qui a besoin de X  
X est sur depot  
depot est mis dans le sources.list de prepaquet

Si tu installes monpaquet, il en connait pas encore le dépot et X sera inaccessible… et l’installation sera refusé. Je te suggère d’installer

monpaquet et prepaquet avec un paquet X 'version 0, un «duimmy» paquet), avec un postinst de prepaquet qui attend que le verrou soit levé (en clair que l’installation soit fini) pour lancé un apt-get update et apt-get install X qui mettra à jour le paquet X et remplacera le paquet dummy par les bons paquets.

---

<div class="post-metadata">

**Author:** ![jobano](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/6de8d8/32.png) [@jobano](https://www.debian-fr.org/u/jobano)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/5 "2016-02-20T19:17:31Z")

</div>

tu as tout à fait raison, ça marche comme ça, mais c’est de la bidouille…  
j’aurai voulu une manière propre, à la debian !!

vu qu’on est dans le lock, ya sûrement moyen d’invoqué l’update (même forcé) en interne…

merci beaucoup pour tes idées en tout cas

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/6 "2016-02-20T19:17:32Z")

</div>

Pas sur que ça se passe bien si tu enlèves le lock, je ne crois pas qu’apt soit réentrant sur ce coup là…

---

<div class="post-metadata">

**Author:** ![jobano](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/j/6de8d8/32.png) [@jobano](https://www.debian-fr.org/u/jobano)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/7 "2016-02-20T19:17:33Z")

</div>

réentrant ?

je crois que finalement on va faire du mirroring de paquets sur les repositories locaux, point  
mais si je trouve la soluce, je viendrai fièrement la proclamer ici bas.

toujours ouvert aux propositions 🙂

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 7:17 UTC](https://www.debian-fr.org/t/paquet-debian-un-update-dans-le-postinst/19053/8 "2016-02-20T19:17:34Z")

</div>

Réentrant: apt-get qui appelle apt-get. Une fonction réentrante est une fonction qui peut s’appeler elle même… Idem pour un programme.

Une fonction ou un programme utilisant des variables globales en lecture/ecriture n’est en générale pas réentrante.
