Wednesday 26th August 2009
Dependency Hell
Came to do a yum update on my Internet-facing server this morning (it's basically a minimal install with a few server packages added) and was presented with this:
# yum update Setting up Update Process Resolving Dependencies --> Running transaction check --> Processing Dependency: libpolkitkdeprivate.so.4 for package: kdebase-workspace-4.3.0-9.fc11.i586 ---> Package dhclient.i586 12:4.1.0p1-2.fc11 set to be updated ---> Package kdebase-workspace.i586 0:4.3.0-9.fc11 set to be updated --> Processing Dependency: ksysguardd = 4.3.0-9.fc11 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: kdm = 4.3.0-9.fc11 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: kdebase-runtime >= 4.3.0 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libxklavier.so.12 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: xorg-x11-apps for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: xorg-x11-utils for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libsyndication.so.4 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libeet.so.1 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libqedje.so.0 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libgps.so.18 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libXss.so.1 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: kio_sysinfo for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libqzion.so.0 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libqimageblitz.so.4 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Processing Dependency: libknotificationitem-1.so.1 for package: kdebase-workspace-4.3.0-9.fc11.i586 --> Running transaction check ---> Package eet.i586 0:1.1.0-2.fc11 set to be updated ---> Package gpsd.i586 0:2.39-3.fc11 set to be updated ---> Package kdebase-runtime.i586 0:4.3.0-4.fc11 set to be updated --> Processing Dependency: kdebase-runtime-libs(x86-32) = 4.3.0-4.fc11 for package: kdebase-runtime-4.3.0-4.fc11.i586 --> Processing Dependency: htdig for package: kdebase-runtime-4.3.0-4.fc11.i586 --> Processing Dependency: libkwalletbackend.so.4 for package: kdebase-runtime-4.3.0-4.fc11.i586 --> Processing Dependency: libmolletnetwork.so.4 for package: kdebase-runtime-4.3.0-4.fc11.i586 ---> Package kdebase-workspace-libs.i586 0:4.3.0-9.fc11 set to be updated ---> Package kdelibs-experimental.i586 0:4.3.0-1.fc11 set to be updated ---> Package kdepimlibs.i586 0:4.3.0-2.fc11 set to be updated --> Processing Dependency: libical.so.0 for package: kdepimlibs-4.3.0-2.fc11.i586 --> Processing Dependency: libicalss.so.0 for package: kdepimlibs-4.3.0-2.fc11.i586 ---> Package kdm.i586 0:4.3.0-9.fc11 set to be updated --> Processing Dependency: kde-settings-kdm for package: kdm-4.3.0-9.fc11.i586 ---> Package kio_sysinfo.i586 0:20090620-1.fc11 set to be updated ---> Package ksysguardd.i586 0:4.3.0-9.fc11 set to be updated ---> Package libXScrnSaver.i586 0:1.1.3-2.fc11 set to be updated ---> Package libxklavier.i586 0:3.9-1.fc11 set to be updated --> Processing Dependency: libxkbfile.so.1 for package: libxklavier-3.9-1.fc11.i586 ---> Package qedje.i586 0:0.4.0-1.fc11 set to be updated ---> Package qimageblitz.i586 0:0.0.4-0.5.svn706674.fc11 set to be updated ---> Package qzion.i586 0:0.4.0-1.fc11 set to be updated ---> Package xorg-x11-apps.i586 0:7.3-8.fc11 set to be updated ---> Package xorg-x11-utils.i586 0:7.4-4.fc11 set to be updated --> Processing Dependency: libdmx.so.1 for package: xorg-x11-utils-7.4-4.fc11.i586 --> Processing Dependency: libXxf86dga.so.1 for package: xorg-x11-utils-7.4-4.fc11.i586 --> Running transaction check ---> Package htdig.i586 4:3.2.0-0.6.b6.fc11 set to be updated ---> Package kde-settings-kdm.noarch 0:4.2-12 set to be updated --> Processing Dependency: xterm for package: kde-settings-kdm-4.2-12.noarch --> Processing Dependency: xorg-x11-xdm for package: kde-settings-kdm-4.2-12.noarch ---> Package kdebase-runtime-libs.i586 0:4.3.0-4.fc11 set to be updated --> Processing Dependency: libslp.so.1 for package: kdebase-runtime-libs-4.3.0-4.fc11.i586 --> Processing Dependency: libsmbclient.so.0 for package: kdebase-runtime-libs-4.3.0-4.fc11.i586 ---> Package libXxf86dga.i586 0:1.0.2-4.fc11 set to be updated ---> Package libdmx.i586 0:1.0.2-9.fc11 set to be updated ---> Package libical.i586 0:0.43-4.fc11 set to be updated ---> Package libxkbfile.i586 0:1.0.4-7.fc11 set to be updated --> Running transaction check ---> Package libsmbclient.i586 0:3.3.2-0.33.fc11 set to be updated --> Processing Dependency: libtdb.so.1 for package: libsmbclient-3.3.2-0.33.fc11.i586 --> Processing Dependency: libwbclient.so.0 for package: libsmbclient-3.3.2-0.33.fc11.i586 --> Processing Dependency: libtalloc.so.1 for package: libsmbclient-3.3.2-0.33.fc11.i586 ---> Package openslp.i586 0:1.2.1-11.fc11 set to be updated ---> Package xorg-x11-xdm.i586 1:1.1.6-10.fc11 set to be updated ---> Package xterm.i586 0:242-3.fc11 set to be updated --> Running transaction check ---> Package libtalloc.i586 0:1.3.1-0.fc11 set to be updated ---> Package libtdb.i586 0:1.1.5-0.fc11 set to be updated ---> Package samba-winbind.i586 0:3.3.2-0.33.fc11 set to be updated --> Processing Dependency: samba-common = 3.3.2-0.33.fc11 for package: samba-winbind-3.3.2-0.33.fc11.i586 --> Running transaction check ---> Package samba-common.i586 0:3.3.2-0.33.fc11 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================= Package Arch Version Repository Size ============================================================================================================================= Installing: kdebase-workspace i586 4.3.0-9.fc11 updates-local 14 M replacing PolicyKit-kde.i586 4.2.90-1.fc11 Updating: dhclient i586 12:4.1.0p1-2.fc11 updates-local 347 k Installing for dependencies: eet i586 1.1.0-2.fc11 fedora-dvd 44 k gpsd i586 2.39-3.fc11 fedora-dvd 249 k htdig i586 4:3.2.0-0.6.b6.fc11 fedora-dvd 1.0 M kde-settings-kdm noarch 4.2-12 updates-local 25 k kdebase-runtime i586 4.3.0-4.fc11 updates-local 7.6 M kdebase-runtime-libs i586 4.3.0-4.fc11 updates-local 1.8 M kdebase-workspace-libs i586 4.3.0-9.fc11 updates-local 905 k kdelibs-experimental i586 4.3.0-1.fc11 updates 38 k kdepimlibs i586 4.3.0-2.fc11 updates-local 2.4 M kdm i586 4.3.0-9.fc11 updates-local 1.9 M kio_sysinfo i586 20090620-1.fc11 updates-local 363 k ksysguardd i586 4.3.0-9.fc11 updates-local 76 k libXScrnSaver i586 1.1.3-2.fc11 fedora-dvd 18 k libXxf86dga i586 1.0.2-4.fc11 fedora-dvd 17 k libdmx i586 1.0.2-9.fc11 fedora-dvd 14 k libical i586 0.43-4.fc11 fedora-dvd 220 k libsmbclient i586 3.3.2-0.33.fc11 fedora-dvd 1.5 M libtalloc i586 1.3.1-0.fc11 updates-local 18 k libtdb i586 1.1.5-0.fc11 updates-local 27 k libxkbfile i586 1.0.4-7.fc11 fedora-dvd 76 k libxklavier i586 3.9-1.fc11 fedora-dvd 59 k openslp i586 1.2.1-11.fc11 fedora 61 k qedje i586 0.4.0-1.fc11 fedora-dvd 93 k qimageblitz i586 0.0.4-0.5.svn706674.fc11 fedora-dvd 59 k qzion i586 0.4.0-1.fc11 fedora-dvd 64 k samba-common i586 3.3.2-0.33.fc11 fedora-dvd 13 M samba-winbind i586 3.3.2-0.33.fc11 fedora-dvd 3.2 M xorg-x11-apps i586 7.3-8.fc11 fedora-dvd 270 k xorg-x11-utils i586 7.4-4.fc11 fedora-dvd 116 k xorg-x11-xdm i586 1:1.1.6-10.fc11 updates-local 139 k xterm i586 242-3.fc11 fedora-dvd 368 k Transaction Summary ============================================================================================================================= Install 32 Package(s) Upgrade 1 Package(s) Total download size: 49 M Is this ok [y/N]: n Exiting on user Command Complete!
Well something had gone badly wrong there as there was certainly no way I was going to install all of that bloat on the server. In fact I was mystified as to why PolicyKit-kde was there in the first place, so I thought I'd get rid of it:
# rpm -e PolicyKit-kde error: Failed dependencies: PolicyKit-authentication-agent is needed by (installed) gnome-mount-0.8-5.fc11.i586 #
Ah, now gnome-mount does provide some useful functionality even on a server with just the command line, but why had it pulled in PolicyKit-kde? The answer was that it required PolicyKit-authentication-agent, a "virtual provide" that's provided by a number of different packages, and any one will do:
# repoquery --whatprovides PolicyKit-authentication-agent PolicyKit-kde-0:4.2.0-3.fc11.i586 PolicyKit-kde-0:4.2.90-1.fc11.i586 kdebase-workspace-0:4.3.0-9.fc11.i586 PolicyKit-gnome-0:0.9.2-3.fc11.i586 #
PolicyKit-kde had apparently been chosen on the basis of having the shortest name. I could avoid the bloat by selecting a more lightweight provider of PolicyKit-authentication-agent for gnome-mount, and PolicyKit-gnome looked like the obvious choice:
[root@goalkeeper mail]# yum install PolicyKit-gnome Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package PolicyKit-gnome.i586 0:0.9.2-3.fc11 set to be updated --> Processing Dependency: libpolkit-gnome.so.0 for package: PolicyKit-gnome-0.9.2-3.fc11.i586 --> Running transaction check ---> Package PolicyKit-gnome-libs.i586 0:0.9.2-3.fc11 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================= Package Arch Version Repository Size ============================================================================================================================= Installing: PolicyKit-gnome i586 0.9.2-3.fc11 fedora-dvd 142 k Installing for dependencies: PolicyKit-gnome-libs i586 0.9.2-3.fc11 fedora-dvd 22 k Transaction Summary ============================================================================================================================ Install 2 Package(s) Upgrade 0 Package(s) Total download size: 165 k Is this ok [y/N]: y Downloading Packages: (1/2): PolicyKit-gnome-libs-0.9.2-3.fc11.i586.rpm | 22 kB 00:00 (2/2): PolicyKit-gnome-0.9.2-3.fc11.i586.rpm | 142 kB 00:00 ----------------------------------------------------------------------------------------------------------------------------- Total 328 kB/s | 165 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing : PolicyKit-gnome-libs-0.9.2-3.fc11.i586 1/2 Installing : PolicyKit-gnome-0.9.2-3.fc11.i586 2/2 Installed: PolicyKit-gnome.i586 0:0.9.2-3.fc11 Dependency Installed: PolicyKit-gnome-libs.i586 0:0.9.2-3.fc11 Complete! #
That was more like it, and I'd now be able to remove PolicyKit-kde:
# rpm -e PolicyKit-kde #
I could now do the rest of the updates:
# yum update Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package dhclient.i586 12:4.1.0p1-2.fc11 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================================================================= Package Arch Version Repository Size ============================================================================================================================= Updating: dhclient i586 12:4.1.0p1-2.fc11 updates-local 347 k Transaction Summary ============================================================================================================================ Install 0 Package(s) Upgrade 1 Package(s) Total download size: 347 k Is this ok [y/N]: y Downloading Packages: dhclient-4.1.0p1-2.fc11.i586.rpm | 347 kB 00:00 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Updating : 12:dhclient-4.1.0p1-2.fc11.i586 1/2 Cleanup : 12:dhclient-4.1.0-23.fc11.i586 2/2 Updated: dhclient.i586 12:4.1.0p1-2.fc11 Complete! #
Much better!
Local Packages
Updated xv to merge patches from RPM Fusion and translations from PLD Linux, plus fix some potential buffer overflows and some compiler warnings. I'll try getting my changes merged into RPM Fusion soon.