Hacker News new | ask | show | jobs
by creshal 4030 days ago
One example I vividly remember was Lenny → Squeeze.

• Apache was installed, but stopped for the upgrade (resource-constrained device, I figured I'd better free up the memory up front).

• Apache's preinstall script tried to stop it anyway

• The old init script returned exit code 1 when trying to stop an already stopped service (PID not found, well duh)

• …and the preinstall script used set -e

• …and was called in the middle of a full dist-upgrade, that among other things installed binary-incompatible library upgrades, so after apt bailed out, it wouldn't start any more.

In the end I just wiped the machine. Haven't seen it happening since, but apt/dpkg is way, way more anal than pacman when it detects problems, which usually gets in the way of fixing them (ex.: package didn't list a dependency it needs in its pre-/post-install-script → dpkg gets in an endless loop where it tries to re-execute said script and dies before it gets to installing the dependency).