Sven Joachim wrote: > On 2009-08-07 17:39 +0200, Luk Claes wrote: > >> Sven Joachim wrote: >>> Here is a scenario in which I could reproduce this bug. In a Lenny >>> chroot, I installed mksh and ran "dpkg-reconfigure mksh" to let it point >>> at /bin/sh. Upgrading to Squeeze, I confirmed the question to let dash >>> provide /bin/sh. This brought up another debconf screen: >>> >>> >>> ┌─────────────────────────────────────┤ Configuring mksh >>> ├──────────────────────────────────────┐ >>> │ >>> │ >>> │ Cannot install mksh as /bin/sh! >>> │ >>> │ >>> │ >>> │ Because dash has already been configured to be installed as /bin/sh, >>> mksh cannot be │ >>> │ installed as /bin/sh. Use "dpkg-reconfigure dash" to change dash to not >>> install as /bin/sh, │ >>> │ then "dpkg-reconfigure mksh" to install mksh there. >>> │ >>> │ >>> │ >>> │ <Ok> >>> │ >>> │ >>> │ >>> >>> └───────────────────────────────────────────────────────────────────────────────────────────────┘ >>> >>> Unpacking dash failed then: >>> >>> ,---- >>> | Unpacking dash (from .../dash_0.5.5.1-2.3_i386.deb) ... >>> | dpkg: error processing /var/cache/apt/archives/dash_0.5.5.1-2.3_i386.deb >>> (--unpack) >>> | trying to overwrite `/usr/share/man/man1/sh.1.gz', which is also in >>> package bash >>> `---- >> Because mksh apparently does not divert the manpage... > > It does: > > ,---- > | # LANG=C dpkg -S man1/sh.1 > | diversion by mksh from: /usr/share/man/man1/sh.1.gz > | diversion by mksh to: /usr/share/man/man1/sh.distrib.1.gz > | bash: /usr/share/man/man1/sh.1.gz > `---- > >>> And /bin/sh still pointed at mksh. The only way to resolve this was to >>> "dpkg-reconfigure mksh" again to let it _not_ provide /bin/sh, after >>> which the upgrade succeeded. >> The postinst did not even run because the unpack failed... > > True. > >>> I haven't analyzed this in detail, but I suppose this situation will >>> occur whenever /bin/sh is diverted and points to something else than >>> dash. >> It's something fishy with the manpage, apparently it did not run the >> preinst of dash next to mksh not diverting the manpage or something like >> that? > > I suppose dash's preinst ran, because dpkg tried to unpack dash after > all...
dash's preinst guarantees that there is a diversion so that the unpack always succeeds... Cheers Luk -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected]

