which-pkg-broke my important application‽
Posted by JoshTriplett on Wed 1 Nov 2006 at 13:32
Upgraded recently, and an important package broke? Not sure which of the upgrades to roll back to an earlier snapshot? Use which-pkg-broke, from the debian-goodies package.
When a package breaks after an upgrade, the most likely culprit resides somewhere in the dependency tree of the package. To figure out exactly which package, run which-pkg-broke $the-package-name. This will show you a list of all the packages in the dependency tree, sorted by the last time they got upgraded. For example, if network-manager started acting odd recently, you might run which-pkg-broke network-manager, and the upgrades in the last month look like:
debianutils Sun Oct 1 19:36:49 2006 readline-common Sun Oct 1 19:37:56 2006 libreadline5 Sun Oct 1 19:37:56 2006 libssl0.9.8 Wed Oct 4 01:07:09 2006 libglib2.0-0 Wed Oct 4 01:07:22 2006 wpasupplicant Fri Oct 6 11:19:55 2006 usbutils Tue Oct 10 18:50:38 2006 libx11-data Sat Oct 14 10:55:50 2006 libx11-6 Sat Oct 14 10:55:51 2006 adduser Sat Oct 14 10:55:56 2006 iputils-arping Mon Oct 16 11:43:49 2006 libvolume-id0 Tue Oct 17 03:38:23 2006 udev Tue Oct 17 03:38:28 2006 dhcp3-client Wed Oct 18 22:59:49 2006 dhcp3-common Wed Oct 18 22:59:50 2006 ncurses-bin Fri Oct 20 14:15:26 2006 libncurses5 Fri Oct 20 14:15:31 2006 libhal1 Fri Oct 20 14:17:35 2006 libhal-storage1 Fri Oct 20 14:17:35 2006 hal Fri Oct 20 14:17:36 2006 libnl1-pre6 Fri Oct 20 14:18:07 2006 x11-common Sat Oct 21 14:11:23 2006 libsepol1 Sat Oct 21 14:11:29 2006 libselinux1 Sun Oct 22 00:52:59 2006 libc6 Mon Oct 23 13:44:57 2006 login Mon Oct 23 13:45:46 2006 passwd Mon Oct 23 13:46:02 2006This might suggest a problem with
libnl1-pre6, hal, dhcp3-client, udev, or wpasupplicant, in about that order.
as the possible pkg breaker ?
[ Parent | Reply to this comment ]
All the packages more recent than that seem like far less likely suspects. libc6 doesn't break often, and if it did, you would expect more packages to break than network-manager. selinux-related libraries seem unlikely if you don't run selinux. login and password seem unlikely to affect network-manager, and shouldn't break often.
[ Parent | Reply to this comment ]
[ Parent | Reply to this comment ]
File "/usr/bin/which-pkg-broke", line 20
if how in ('Depends', 'PreDepends'):
^
SyntaxError: invalid syntax
?? Surely "for" ?!
Am I having one of those "unstable" moments?
[ Parent | Reply to this comment ]
And no, that really should read "<code>if</code>"; python has an operator "<code>in</code>", meaning "element of", so <code>if how in ('Depends', 'PreDepends'):</code> means "if the tuple ('Depends', 'PreDepends') contains how, then...", a shorthand for <code>if how == 'Depends' or how == 'PreDepends':</code>.
- Josh Triplett
[ Parent | Reply to this comment ]
[ Parent | Reply to this comment ]