Advertisement

Dependencies

Started by January 25, 2005 10:19 AM
34 comments, last by metal leper 19 years, 10 months ago
I find that more often than not, dependancy issues are generated by the package managers a lot of people are touting as a solution.

Too often people who maintain repositories and build the packages placed in them don't pay attention to dependancy issues when they're packaged. Many times I've attempted to install an .rpm which gives me dependancy issues before attempting to install, but those dependancies conflict with a couple other .rpm packages already installed (there's a definate parser error with rpm and apt-get where sometimes older versions parse as newer).

So instead... I download the source, compile and install no problem, no dependancy issues. The problem arises from the packagers tendancy to always maintaining bleeding edge libraries, and those versions are tagged as the dependancy. Dependancy issues at compile time happen much much less often.
Quote: Original post by metal leper
IIRC debian will uninstall packages that got installed as deps of of something else and are no longer needed automatically, but maybe not...

Yes, as long as you use aptitude or something based upon it (or similar). Personally, I just use the handy deborphan program whenever I think I've left some dependency no longer necessary behind (as I don't use aptitude). I'm pretty sure that aptitude is the "officially recommended" front end to apt in Debian now.
Advertisement
Quote: Original post by Kylotan
Quote: Original post by Doc
Quote: Original post by Kylotan
I was amazed that I was expected to download 136MB of kernel source just to compile a driver.


So... you'd like it to be more modular?

Quote: I have lots and lots of libraries that I had to install for individual programs that required them.


So... you'd like it to be less modular?


I'd like things to be appropriately modular. If you're developing software that uses a library which few others use, then think long and hard about whether to use that library, and consider statically linking it if it's not common. And if I need some source in order to recompile things, I shouldn't need absolutely every single piece of source. There's no contradiction in my two points.


I know. You exaggerated your two points, so I exaggerated the juxtaposition.

The kernel may do well to be more modular than it is - 36MB (!= 136) is a monster to download over my puny dial-up.

But with lots of small libraries, many of which are used by more than one package, an advanced package manager should cure your ails. See below.

Quote: I don't want to try and install a 2MB program and have it suck 100MB of libraries across the net, to be installed on my system automatically just for this one app. If I then remove that app, do the libraries remain? On Mandrake at least, they do. You end up with your system getting clogged up with libraries you don't use, or rarely use, when the application you were testing is long gone.


You WILL love aptitude.

I open up aptitude into its curses-based package browsing mode and hit 'u' to update the package list.
Then, if I want to install a package I do a search or something to locate it and hit '+'. (aptitude also works just like apt from the command line, if you know the name of the package your after. 'aptitude install thingy')
Then I hit 'g' (GO) and it gives me a (colour coded) list of all the packages it's going to install or update, tells me how big they are, and tells me if I selected them manually or it's installing them to satisfy dependencies.
Hit 'g' again and it gets them all, then installs them.

If I want to remove something, 'aptitude remove thingy' or go into aptitude's package browser, find it, hit '_', and the next time you do a 'g' sequence the package gets removed. Any package that is marked as having been installed automatically to satisfy its dependencies will be removed along with it.

aptitude really is wonderful. [grin]

PS: apt itself will actually stop and ask you if you really want to go ahead if it finds that the amount you'll have to download is quite large.

PPS: Don't judge good package management in Linux by RPMs, they are notorius for dependency hell.

[Edited by - Doc on February 3, 2005 1:05:49 AM]
My stuff.Shameless promotion: FreePop: The GPL god-sim.
Quote: Original post by Kylotan
Quote: Original post by metal leper
And you can't compare win98 to a version of mandrake released in 2004/2005 or whenever*. Compare a linux install from 98 to your win98 installation.


Why can't I make that comparison? I wanted about the same types and quantities of programs installed, to run on the same hardware. I don't mind the cd coming with loads of stuff, but I do object to not being able to remove most of it due to the tangled dependency trees. I expect some code bloat over time, maybe 2x or 5x, but not 15x.


My point was that winXP is also "bloated" in comparison to win98, but if you install a linux distro that was released in 98, it should be of a comparable size to win98.
Quote: Original post by Doc
The kernel may do well to be more modular than it is - 36MB (!= 136) is a monster to download over my puny dial-up.


The kernel source package I installed for Mandrake, to compile a modem driver about 5KB in size, was actually one hundred and thirty six MB in size. No idea why. (Here's a similar version I found online. Looks to be nearer 180MB now. So, it wasn't actually an exaggeration. :) )

Quote: But with lots of small libraries, many of which are used by more than one package, an advanced package manager should cure your ails. See below.


How does that fit in with things I compile myself? Aren't most of these package managers a bit of an all-or-nothing solution? To be honest many of my one-off library gripes come from things I have downloaded in source form and which required something obscure which itself didn't come in a packaged form. I suppose I could push everything through checkinstall but that's a hassle in itself. I have actually installed more libraries from source than programs that require them. I suppose there's a point along the curve when I have so many libraries that I'll be installing more programs than libraries, but I've not reached it yet. :)

And is it possible (or practical) to move to apt from an rpm-based system? Debian's always looked a bit too hardcore for me. ;) Thanks for the apt overview though.
Quote: Original post by Kylotan
And is it possible (or practical) to move to apt from an rpm-based system? Debian's always looked a bit too hardcore for me. ;) Thanks for the apt overview though.


apt4rpm is probably what you're after (http://apt4rpm.sourceforge.net/)

Or, to get apt without installing debian, you could always install ubuntu/mepis/xandros/knoppix/etc, which in theory give you user friendlyness and apt together. That requires a reinstall though, so probably not what your after.

This topic is closed to new replies.

Advertisement