Since I reviewed Fedora Core 5 back in April I’ve become increasingly frustrated with one aspect of what is otherwise a very well done distribution: package management and keeping my system secure and up to date. I’ve run into repeated instances of yum deciding I needed a lot of new packages and promptly failing over just one. pup, which is really just a pretty but somewhat crippled front end to yum, also fails in the same way. What I’ve discovered is that pup and yum aren’t broken at all. The code is doing precisely what it was designed to do.
Let’s look at today’s failure as an example. I had been on vacation and my system was probably 10 days behind on updates. yum decided I needed to upgrade some 166 packages and add 2 more for dependencies. Fine, go do it. No chance. Here is the error message:
Error: Missing Dependency: libecal-1.2.so.3 is needed by package gnome-panel
That seems clear enough but it really isn’t. gnome-panel wasn’t being upgraded. Rather the package that contained libecal-1.2.so.3 was and doing the upgrade would break gnome-panel. Typing in:
yum whatprovides libecal-1.2.so.3
reveals that it is part of the evolution-data-server package. A new version of that package was rolled out without checking to see if any other package had a dependency on the old version. That is just plain sloppy package and repository management on the part of the Fedora Project people at Red Hat. If this happened just once it would be forgivable but this sort of failure has happened repeatedly over the past two months. To their credit the Fedora Project has, in each case, rolled out a new package for whatever they’ve broken in a day or two. Still, it shouldn’t happen in the first place.
Even worse, for Joe or Jane average desktop user who wants to click on the pretty pup icon and not think about what lies beneath this likely means that their system will remain unpatched and/or they will conclude that Fedora, or worse, Linux in general. is broken and unreliable despite the lack of any bug in the code. Remember that pup, unlike the up2date program it replaced, has no provision for choosing what to update and what to skip. To fix this you have to work at the command line, period.
Oh, yeah, the workaround is to run your yum update or upgrade as follows:
yum --exclude=<package name> update
In the example above you’d replace <package name> with evolution-data-server and the rest of the updates would work provided there are no dependencies on the new package. Yes, you can have conflicting and truly unresolvable dependencies, much like the bad old days of rpm hell circa 1998 or so.
Some of you people who have been reading my articles know that I’ve given up on Gnome for now. Why not simply uninstall gnome-panel? Well… while I clearly don’t need the panel itself the package gnome-panel contains a library needed by gtk-sharp2. Yep, removing the panel breaks mono. If I try and remove the gtk-sharp2 package as well I break other apps, such as f-spot. This is why I generally end up with lots of extra cruft on a Fedora or Red Hat installation: lots of interlinking dependencies.
This truly is reminiscent of rpm hell except that this time rpm really and truly isn’t to blame. rpm really works well nowadays and yum is a decent tool for automating package management. The good folks at Red Hat need to realize that while Fedora doesn’t generate revenue in and of itself it is the test bed for Red Hat Enterprise Linux (RHEL) and they really need a large user base pounding on it. If basic functionality is managed so poorly as to make the distribution a pain to administer people will choose to run something else. Getting Fedora Core packages that work together out at the same time is an absolute must.


Thanks for writing this. And I thought I was the only one having this problem. Is anyone else? One question for you: did you remove evolution before this all happened? Yes, "yum -exclude=evolution-data-server" update is the workaround. As you can imply from the package name, libecal is the API for the calendar stuff in Evolution (http://www.gnome.org/projects/evolution/developer-doc/libecal/index.html) . Reinstalling evolution-data-server does no good. Worst of all, you can't remove it: a number of things including GAIM, gnome, evolution depends on it!
You are very welcome. I seriously doubt we are the only two who've run into this. I do suspect inexperienced users who find pup or yum broken may try it again, find that things then work, and assume the problem was fixed on Red Hat's end which, in fact, is the correct answer.
No, I didn't try removing evolution. While I generally don't like it as an e-mail client I still need it. So long as I have clients who insist that I have an e-mail account on their Exchange server I need to use evolution's Exchange connector which is slightly less painful than using the OWA directly.
BTW, one clue for people in the same situation I am: While the OWA tries to be Internet Explorer specific it *DOES* work in Opera provided Opera reports itself as IE 6. It is indeed possible to access the OWA directly from a Linux box without installing anything Microsoft on your system.
Yum is still a baby, compared to Debian's aptitude. Debian has a long history of strict quality control on packages in the official repositories, while the RPM world has always been more of a free-for-all, with all manner of half-baked RPMs spewing forth from myriad sources. A major contributor to RPM hell was poo packaging.
Yes, if they really want Fedora to be a true model of "excellence" (http://fedora.redhat.com/About/) the packaging and dependency-resolving system is going to have to improve a lot. I think it will.
Another good article and you are definately right on when it comes to the question of why this must be addressed.
I'm running FC5 on a large number of systems and I'm also teaching it at Seneca College, Toronto. I'm not encountering these types of problems on most of the systems and I think that it's largely due to the fact that they're running a superset of one of the package-sets offered during installation, as opposed to a subset. So taking a standard system and adding to it causes few problems, but taking a standard system and subtracting from it leads to grief. This obviously makes it a pain to slim a system down.
Let's face it -- solving these problems is a big task. The situation with Extras is even bigger than the one with Core, but there are folks actively working on it.
My biggest complaint about the repositories these days is the lag between kernel updates and the nVidia driver updates on Livna (I suspect the ATI users have a similar complaint). These delays often block my (scheduled) daily yum updates. (It would be really nice to see the nVidia driver builds automated so they happen within hours of a kernel update!)
While the Fedora dev teams sort these things out: are you filing bugzilla reports against the issues you encounter?
Most of these are part of running a bleeding edge distribution. "basic functionaly being managed poorly" is an overstatement. In most distributions including fedora, certain breakages occur from time to time.
Carla: Despite it's relative youth I actually think yum is quite good. Perfect? Nope, but neither is apt. Apt is perhaps a bit better at odd dependency issues. The problem isn't yum. The problem is rolling out new packages without checking what the consequences will be.
Chris: I must disagree with you. My install is pretty much kitchen sink, not a subset. It really doesn't matter what you have installed. yum is truly excellent at installing missing bits for you. Basically if you don't run yum update almost daily you won't see these issues because they do get corrected rather quickly. Again, the issue is having different packages requiring different, conflicting libraries. It's a matter of not being thorough in checking what might break when you upgrade a piece of a distro. That it has happened repeatedly is pretty inexcusable.
sys0p: The problem is not that breakage happens from time to time. It is happening with disturbing regularity. It's sloppy management and it is pretty inexcusable for it to happen on so regular a basis. You do hit the nail on the head with one point: Fedora, as a test bed for future RHEL technology is bleeding edge and that does cause issues in and of itself from time to time. As Carla correctly pointed out, though, Fedora is making claims of excellence. The current situation isn't excellent, is it?
Well apparently, the problem has been solved:
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Updating:
evolution-data-server i386 1.6.2-1.fc5.1 updates 4.2 M
gdm i386 1:2.14.4-1.fc5.3 updates 3.6 M
gnome-panel i386 2.14.2-1.fc5.1 updates 3.1 M
gnome-panel-devel i386 2.14.2-1.fc5.1 updates 50 k
planner i386 0.13-4.4 updates 2.0 M
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 5 Package(s)
Remove 0 Package(s)
Total download size: 13 M
Is this ok [y/N]: y
Downloading Packages:
Yes, indeed, it's fixed this time. As I said in the article the Fedora Project always gets this issue fixed in a day or two. Then, a week or two later it happens again with different packages. Hopefully that's coming to an end.
The purpose of the article wasn't to document one failure or just to rant about FC5, a distro that, overall, I like quite well. It was also to show why this happens and provide a workaround for users who might not be familiar with the ins and outs of this issue.
BTW, I've been playing with Xubuntu Dapper for a few days now and I did run into a dependency issue withthat distro as well. However, it was with Universe packages (equivalent to Fedora Extras) while the Fedora issues have been with Core packages, which I view as far more serious.
Try using yumex. It is a simple but powerful gui for using yum.
yum install yumex
You can see/select what needs updating and change selection after it tells you what additional dependancies are required. I don't use pup at all. You can also see everything available for install and removal that's controlled by yum.
As was mentioned before, try yumex. I don't understand why the Fedora people are so determined to push pup and ignore yumex; yumex feels much more complete (more like synaptic) than pup. Actually, pup reminds me of the Windows Control Panel's Add/Remove Programs section... which probably isn't good, considering the WCP sucks to begin with.
I find smart package manager to be superior to yum or apt.