I’m not the only person affected by upgrade issues with dash /bin/sh diversion, but I thought I would document the behavior and quick fix for upgrading, since I just got bitten (again) by this on armel upgrading my sheevaplug this morning. See http://bugs.debian.org/538822 for lots of detail.
mshuler@sheeva:~$ sudo apt-get upgrade -V Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dash (0.5.5.1-6 => 0.5.5.1-7.2) 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/101 kB of archives. After this operation, 4,096 B of additional disk space will be used. Do you want to continue [Y/n]? Preconfiguring packages ... (Reading database ... 19484 files and directories currently installed.) Preparing to replace dash 0.5.5.1-6 (using .../dash_0.5.5.1-7.2_armel.deb) ... Unpacking replacement dash ... dpkg: error processing /var/cache/apt/archives/dash_0.5.5.1-7.2_armel.deb (--unpack): trying to overwrite '/bin/sh', which is also in package bash 4.1-3 configured to not write apport reports Processing triggers for man-db ... Errors were encountered while processing: /var/cache/apt/archives/dash_0.5.5.1-7.2_armel.deb localepurge: Disk space freed in /usr/share/locale: 0 KiB localepurge: Disk space freed in /usr/share/man: 0 KiB Total disk space freed by localepurge: 0 KiB E: Sub-process /usr/bin/dpkg returned an error code (1) mshuler@sheeva:~$ dpkg-divert --list /bin/sh local diversion of /bin/sh to /bin/sh.distrib mshuler@sheeva:~$ readlink -f /bin/sh /bin/dash mshuler@sheeva:~$ ls -l /bin/sh.distrib lrwxrwxrwx 1 root root 4 Sep 29 17:37 /bin/sh.distrib -> bash
remove the /bin/sh diversion and upgrade goes smoothly:
dpkg-divert --remove /bin/sh
mshuler@sheeva:~$ sudo dpkg-divert --remove /bin/sh Removing 'local diversion of /bin/sh to /bin/sh.distrib' mshuler@sheeva:~$ dpkg-divert --list /bin/sh mshuler@sheeva:~$ readlink -f /bin/sh /bin/dash mshuler@sheeva:~$ sudo apt-get upgrade -V Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be upgraded: dash (0.5.5.1-6 => 0.5.5.1-7.2) 1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/101 kB of archives. After this operation, 4,096 B of additional disk space will be used. Do you want to continue [Y/n]? Preconfiguring packages ... (Reading database ... 19483 files and directories currently installed.) Preparing to replace dash 0.5.5.1-6 (using .../dash_0.5.5.1-7.2_armel.deb) ... Adding 'diversion of /bin/sh to /bin/sh.distrib by dash' Unpacking replacement dash ... Processing triggers for man-db ... Setting up dash (0.5.5.1-7.2) ... Removing 'diversion of /bin/sh to /bin/sh.distrib by dash' Adding 'diversion of /bin/sh to /bin/sh.distrib by bash' localepurge: Disk space freed in /usr/share/locale: 0 KiB localepurge: Disk space freed in /usr/share/man: 0 KiB Total disk space freed by localepurge: 0 KiB mshuler@sheeva:~$