• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

What's the problem with RPM's??

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

TeuffelHunden

Member
Joined
Jun 12, 2001
Location
I move to often to say for sure :)
I've read a bunch of posts lately that condemn distros that rely on RPM's. I've dabbled in linux for a few years, but still consider myself a noob, since I've never really committed.

Most of the distros I've used, and the one I currently use (SUSE10, which I love) are RPM reliant, and I've never had trouble installing or updating programs.

So my question is...what's wrong with RPM's, what's the better alternative, and why?
 
RPMs have a very evil side, called "dependancy hell". If you want to see it, try going to rpmfind.net, look around, find a program that you like and want to install, download the RPM and try to install it. With any luck, it will have unmet dependancies.

Before package managers, you had to manually hunt around and find the dependancies to satisfy the package you are trying to install (and, of course, those would have depenancies), and you would end up spending an hour or so installing RPMs just to find out you can't solve one of the dependancies.

Recent package managers have taken a big bite out of this problem by solving these issues for you, however, some distros still don't have proper package managers (Slackware comes to mind), or really crummy package managers.

There are several different attempts at solving this issue:

*FreeBSD (not linux) has a system called ports that will download the source, compile and install all requirements for an application. It also has a package manager which just snaps in the binary packages from a central repository.

*Gentoo has a similar system to FreeBSD ports, where source is downloaded and compiled. No large binary package repositories exist that I know of though.

*Debian based systems use DEB's, and easily connect to repositories which carry a wide selection of packages.
 
yeah, i use suse 9.2 and that's a big problem. looking for libraries that program needs, takes much timem specially if a program is not very popular in rpm download sites.. i'm afraid installing another distro cause i think i'm not ready... As soon as i'll have second pc, curently will install debian or gentoo ;)
 
RPM's are simply too difficult to use for me. I get frustrated out out of my mind when I have to spend hours or even days hunting down dependencies in order to get an application to install. With gentoo, I just type in one command and it handles all dependencies.

It took me 3 days to get VLC to install in redhat. It took me one short command to accomplish the same in gentoo. Once I installed gentoo, I never looked back. After about a year of never booting into red hat, I just deleted it.

Because dependency hell can be so offputting for new linux users, I always recommend a distro where it will not be an issue.
 
I'm confused. If RPMs suffer this "dependency hell", then why hasn't Redhat resolved the issue? Why wouldn't the package manager (Redhat Package Manager, right?) automatically determine which dependencies were required, before installation began? What is the reason behind their madness?
 
JerMe said:
I'm confused. If RPMs suffer this "dependency hell", then why hasn't Redhat resolved the issue? Why wouldn't the package manager (Redhat Package Manager, right?) automatically determine which dependencies were required, before installation began? What is the reason behind their madness?
Redhat Package Manager (RPM) is doing the only responsible thing.. when you hand it a package that has unmet dependancies, it does not install it. (If it did, it would be worse). The issue is that it doesn't connect to a repository, so the dependancies can't be found automatically.

RedHat has a few solutions for this, for all packages that RedHat supports, you can use up2date to update them. Yum is installed on fedora to do much the same thing.

Even SuSE goes this method: install the package off the CD, then update it to current (or, run your own repository and connect to that). Red Carpet allows an install-on-demand style package manager with repository, but it's a pay-update service through Novell.

Either way, there is no central repository for RPMs, besides Red Carpet, that I know of, just little ones scattered all over the place and not officially supported.
 
That may have been the way it was, but with SUSE 9.3, and now 10, I think they may have resolved the problem you're describing. I've never had trouble installing an RPM. Just click it open and suse asks for root pasword to install. Using Yast, it automatically checks for dependencies and tells you if you need to install anything other packages. It will also install the needed stuff for you if you want, or not install the package if you don't have the right dependencies. I've never had a problem installing using RPM's this way. I'm not too familiar with how RPM's used to be, because I'm still a linux novice. But using RPM's seems the easiest way I've found to install programs, and the current method with Yast2 is very user friendly.
 
I've never used suse/yast.

Say you want to install package, and it has dependencies. Does yast go and find and download all the packages you need? Is there some single central repository now that contains every package you could need? Does yast always know where to find all the dependencies, or do you have to supply the info or download them yourself?

The difficulty for me in the past with rpm when I used red hat wasn't knowing which packages to install, but finding them, and finding them in exactly the right versions. Plus I found that dependencies in red hat were very often contradictory. For example, 2 versions of a certain piece of software would refuse to coexist, but one piece of software I wanted to install required version a and the other required version b, so I couldn't install both.

God, I shiver just thinking about those days. I nearly gave up on linux thanks to rpm.
 
With SuSe/Yast your default 'repository' is your CD's. If you want to install a prog (as Yast knows) it will prompt for cd's as needed. Waver from Yast, then you can be in RPM dependecies.
 
Thanks. So yast is still very much inferior to apt-get. apt-get connects to an enormous repository of ~15,000 different packages maintained by the debian servers and used to resolve any potential dependency issues. With suse, you just get a couple cd's. Beyond that point, you're in rpm dependency hell.

I hate rpms!
 
I've been using gentoo for a while, and returned to fedora due to the need to know it well in a job I'm switching to. I got so annoyed by this issue yesterday while trying to install mplayer.

1. Try to install mplayer -> asks for cd. I can't insert the cd because my only optical drive is a plextor with a sata interface, and I did'nt figure out how to get it to work under linux.
2. Found a webpage that shows dependences for packages. Found I'm missing about 10
3. Searched for the 10 packages, and occasionally they had dependencys too...
4. Got really angry

I miss gentoo, but I do understand it's not the best option for running in servers. I would just love to go: '$sudo emerge mplayer' and sit back. :)
 
dropadrop said:
I miss gentoo, but I do understand it's not the best option for running in servers. I would just love to go: '$sudo emerge mplayer' and sit back. :)

Better than Fedora ;)
 
There's nothing wrong with running gentoo on servers, I'd pick it over fedora any day. However, Debian is probably the best server distro. That also has apt-get, which is an excellent package manager.
 
SuSE's YaST has mirrors with many thousands of packages, and you can add your own to the list. You then select order preference, so can tell it to look first on CD, then in URL A, URL B, etc. It's basically like apt-get, but it's all GUI and RPM. It also can download the full lists of available RPMs on repositories and give you descriptions/categories, etc. When I used SuSE, I never had a single problem with dependencies. Now I use Gentoo, though, and will never use pre-compiled again.
 
Does suse run a large central repository? Or is it just user repositories?
 
Both. But SuSE's is just the packages that are in the distro, and a few others they can't include on the CD/DVD because of legal crap.
 
I won't use a distro that doesn't have a single, standardized, and very large repository of pretty much any package one could need (gentoo, debian, etc.) I want to know I can trust the source I'm installing from, and the few packages suse includes on cd are insufficient to meet my needs.

If suse wants to really compete with distros like gentoo and debian, they need to set up their own enormous repository of software.
 
The main thing that turned me away from an RPM-Based Linux distribution [started w/ Fedora Core 4] is the fact that for the most part you have to install the source files PLUS the dependencies manually. The advantage to using a Debian-Based Linux Distribution is the fact that there is a huge repository where you can download and install applications using Apt-Get. It automatically determines what the dependencies are, and installs them for you. Plus, on top of that, Debian-Based distributions are overall for any Linux user...n00b, intermediate, or master, doesn't matter.
 
Back