[fab] slashdot question: dependencies

Rahul sundaram at fedoraproject.org
Thu Aug 10 15:09:43 UTC 2006


Max Spevack wrote:
> Would like to open up a few of these questions for some input from you 
> guys.  This is not a replacement for a larger draft of the answers -- 
> this is just as I work on some of the other questions, here's a few that 
> I can't answer alone.
> 
> -----------------------------
> 
> 7) Dependency hell
> (Score:5, Interesting)
> by Tet
> 
> The introduction of yum has vastly improved the user experience when 
> installing software, or updating existing packages. However, it's 
> brought with it a new kind of dependency hell. For example, if I want to 
> install a PostScript previewer:
> 
>     % yum install evince
>     [...]
>     Installing:
>     evince x86_64 0.5.1-3 core 773 k
>     Installing for dependencies:
>     nautilus x86_64 2.14.1-1.fc5.1 updates-released 3.9 M
>     nautilus-cd-burner x86_64 2.14.2-1 updates-released 414 k
> 
> That's clearly wrong. I only want to install a PostScript previewer. 
> Doing so should not require a filemanager (which I don't need or want), 
> and certainly not a CD burner. But these are added as dependencies due 
> to the clumsy packaging that seems to be increasingly prevalent in 
> Fedora. Perhaps (and I remain unconvinced) there's some aspect of evince 
> that can make use of nautilus being present. But if so, I haven't seen 
> it. I could well believe that nautilus could make use of evince, but not 
> really the other way around. But assume for the sake of argument that it 
> can use nautilus. That still isn't a reason to have it depend on it. 
> Dependencies should be packages that are required in order for another 
> to run, not packages that will merely enable additional functionality. 
> In this case -- the prime function of evince is to view documents, which 
> isn't significantly enhanced by having a file browser present.

In this specific example, we can probably split things up to have a 
nautilus-evince sub package but since Evince is linked against the 
nautilus extension interface this is not a totally stupid dependency. It 
is also of important that Evince is a universal document viewer and not 
just a postscript previewer and naturally requires more dependencies.



> 
> Fedora is still my distribution of choice, but it's becoming 
> increasingly hard to use for those of us that prefer to run with a 
> minimal system due to the way that the dependencies have been getting 
> out of hand. Are there any plans to fix this, or is any work already 
> underway to do so? 


There are some ongoing efforts to split up package on occasions and by 
demand. Filing bug reports when people spot unneeded dependencies or 
ones that could be cleaned up would be helpful.


I understand that some consideration has been given
> to providing "soft dependencies" within RPM (like dpkg's suggested 
> dependencies), which would help. Is there a timeframe for this? Is 
> anything else being done?

We havent updated the Fedora RPM to the latest upstream version which 
provides the "soft dependencies" feature. Whether we would prefer to use 
this particular feature is undecided yet. In many cases, simply 
splitting up packages would work better without pushing the users to 
choose since soft dependencies can make QA harder.

> 
> I quite understand the focus on getting the system to be usable for the 
> average unskilled user. But the impression I'm getting is that it's 
> being done at the expense of letting those of us that know what we're 
> doing do what we want. Does Fedora have a position on the type of users 
> it's aiming for, or is it still trying to be a general purpose OS?
> 

Right on spot. The balance is sometimes between splitting up packages to 
save some space and memory and having things work better by default. 
Fedora having the Red Hat Linux lineage made Fedora Core tilted towards 
the "unskilled" users and Fedora Extras to have more fine grained 
dependencies. Now what the guidelines have been unified several packages 
  where the binaries where in the same package as the libraries have 
been split up. ex: XMMS in Fedora Extras, PHP in Fedora Core...

Having more packages in the repositories allows makes it easy to justify 
splitting up packages since some of them would require the libraries and 
not the binaries and so on.

We are likely to move incrementally into having more fine grained 
dependencies in every release.

Rahul




More information about the fedora-advisory-board mailing list