YUM vs Smart vs Apt-Get

Eli Wapniarski eli at orbsky.homelinux.org
Fri Dec 7 09:46:22 UTC 2007


I'm writing this in order to hopefully generate some genuine critical 
discussion and to jar away some possible group think.

I would venture to guess that most of us that need to use Windows for whatever 
reason do not accept the default browser installed with Windows and 
Immediately download and use Firefox. Why? Because we feel it is the better 
browser. Most Windows users seem to get get caught in the “because it comes 
with the installation then I'm all set,” and away they go. My feeling is that 
most Fedora users get caught in this mode of thinking as well. At least this 
seems to be the case when it comes to my cursive discussions regarding the 
primary way people seem to maintain their systems. That is, what defaults to, 
YUM.

With Fedora 8 I've run into a few minor but irritating snags. With Fedora 8 
one of these issues is currently irritating but, I can see this specific 
problem generating a genuine discouragement for maintainers and users of 3rd 
party repositories.

With no slight intended to Gnome users, I'm a KDE user. For us KDE user's 
Redhat 8 was a real dud. It was frustrating that in an effort to unify the 
users desktop experience Redhat broke an awful lot of functionality and it 
was genuinely frustrating to feel that us KDE users were being coerced into 
using Gnome. That's when I started experimenting with other distros. I 
dropped Mandrake because installations were flaky. I dumped Debian because 
hardware detection was flaky. I was disappointed by Suse because its 
Administration tools were slow and confusing. At least what did work in 
Redhat 8 worked. Even though I felt my desktop was crippled (using KDE). I 
still preferred my working computer. 

Then came Rex Dieter and KDE-Redhat and my introduction to Apt-Get. All I 
could say was wow. All of a sudden my desktop came alive again; bright and 
shiny. Everything started working the way it was supposed to. Menu editing, 
configuration of my desktop and I did not have to go and recompile source 
code to do the job. Thank you Rex.

This wonder of Apt-Get and 3rd party repositories made my life so much easier. 
Then I became aware of Freshrpms and Livna and Rpmforge and ATRpms. I'm using 
all of them for one application or another because, none of them including 
Fedora provide everything that I need or use.

Once I became relatively proficient with Apt-Get and thanks to Freshrpms which 
put under one roof, Fedora Core, Updates and Freshrpms I have not needed to 
use a CD to update my computers since Fedora 4. I have successfully managed 
to relatively smoothly upgrade my systems with Apt-Get from Fedora Core 4 to 
Fedora 8. Except for a few minor conflicts which have been easily fixed by 
manually forcing an upgrade of a few family of packages.

Now, because Matthias Saou of Freshrpms seems to be very busy with a new 3rd 
party repository called Rpmfusion combining Dribble, Livna and Freshrpms and 
the consequential disruptions that this is causing of the maintenance of 
Freshrpms I have been prompted to re-examine my options regarding package 
management.

After about a month of working with YUM and Smart, I have to conclude, at 
least from a user's perspective, that Apt-Get is still the superior package 
management solution. Allow me to explain.

YUM has come along way since its introduction including prioritized 
repositories. This works if your configuration stays static. If you have had 
packages installed from one 3rd party repository and then decide to switch 
priority to a different one there does not seem to be anyway to enforce this 
switch by automatically downgrading packages to conform to that decision. 
What I mean by downgrading is that even though two different 3rd party 
repositories might have the same application version packaged their filenames 
will be different. If YUM decides that a package currently installed is newer 
than the package from a newly prioritized repository YUM will not install the 
package from the prioritized repository.

With Apt-Get and Smart, if priorities are configured correctly, then the 
downgrade will occur. The nice thing with Smart is that it will do this with 
repomd (YUM configuration) while Apt-Get still can not do this with repomd.

I did not try to upgrade a system using YUM because Fedora does not recommend 
it. I did try to upgrade a system using Smart. Everything came in and 
installed except for a couple of minor problems with post processing scripts 
which left behind duplicate packages. One of these scripting issues was a 
problem with the kernel that was to be installed with Fedora 8. Fortunately 
my newly installed Fedora 8 did not panic with the Fedora 7 kernel. So I 
issued an apt-get reinstall kernel and Apt-Get indicated that there were 
duplicate packages because of post processing of scripts which left behind 
Fedora 7 packages in the RPM database. The duplicate packages were not 
indicated by Smart or YUM. Apt-Get instructed me to on how to fix the 
configuration or fix my system. I elected to fix my system and then reissued 
the apt-get reinstall kernel command. I rebooted by my computer and all was 
well.

The current problem with Apt-Get is that while it supports repomd format of 
YUM which most 3rd party repositories support exclusively it cannot 
prioritize them. If you use one or two repositories then prioritizing them 
does not seem necessary. However, if you are like me and you use multiple 
repositories then enforced prioritizing becomes essential. It is the only way 
to ensure predictable behavior from package management.

I am guessing that package managers use repomd because for them its easier 
then Apt-Get. I'm only guessing. Apt-Get enforces priorities. So does Smart. 
Smart also does this with repomd repositories as well as apt repositories 
while While Apt-Get will only do this apt repositories even though it does 
support repomd. YUM's priority feature is incomplete and does not handle apt 
repositories at all.

All three applications once configured correctly excel at maintaining your 
system; once the  dust is settled and all the packages are coming from where 
they're supposed to. However, only one of these applications allows me to 
smoothly upgrade full release installations. This is Apt-Get.

The last point is, in my opinion, what makes Apt-Get the best tool for the 
job. Why? Because, Fedora upgrades come fast and furious. For a lot us, 3rd 
party repositories are essential to add features and applications that are 
not included in Fedora's releases. If I were to rely only on removable media 
I could not predict what would or would not be removed or stop working due to 
the upgrade from one release to the next. Apt-Get is the only package manager 
that allows for relatively smooth upgrades from one release to another 
without giving up the benefits provided by 3rd party repositories.

And this becomes even more important if you need to maintain an older computer 
in a remote location that you can only upgrade during non-business hours. It 
can take all day, and this is a terrible way to spend the weekend. With 
apt-get after proper prioritization I tell it to get the files from the new 
release and then do the following

connect to remote computer with ssh
su -
backup any essential configuration files
apt-get update
apt-get -df dist-upgrade
(go do something else while everything downloads)
apt-get -f dist-upgrade
(fix conflicts)
apt-get -f upgrade
(go do something else while everything gets installed)
reboot
ta-da new release installed and working.
Recompile anything that I had to compile manually to have it work more 
effeciently with the newly installed libraries.

I simply cannot do this with any other package manager and this is why I like 
and rely on Apt-Get. I open the floor to everyone.

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.





More information about the Fedora-news-list mailing list