You are not logged in.

#1 2010-05-18 17:30:15

gabscic
Member
Registered: 2008-11-15
Posts: 19

[SOLVED]What are provider packages??

Hello! Well, sometimes, when I am installing software on my Linux I am greeted with a message such as the following:

warning: provider package was selected (foo provides bar)

Well, my doubt is as simple as the topic states: what are these 'provider packages' and why is a warning issued for them? Is it telling me that I am actually installing another package rather than the one being shown to me? In the example above, package 'foo' would not be installed, as it would instead serve only as a provider of package 'bar', which would be the one actually being installed on my system. Is it anything like that at all? Can't seem to find any info about provider packages on the net...
Thanks for the consideration...

Offline

#2 2010-05-18 18:08:47

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: [SOLVED]What are provider packages??

Packages have an attribute called 'provides', which serves to simplify dependency handling and deprecation of older packages. Take for example the case of 'msmtp', 'postfix', and 'ssmtp'. All three of these packages provide 'smtp-forwarder'. This is handy because it allows another package which requires the functionality of an smtp agent to depend on 'smtp-forwarder' and not worry about depending one of these specific forwarders.

This can also be used when an important package changes names. For example: linux-api-headers, which used to be called kernel-headers. When this package changed names, the old name was moved the provides attribute. Someone who wants to install the package 'kernel-headers' but didn't know about the name change can still install linux-api-headers by providing the old name. This, again, allows simpler dependency handling as any package that might depend on kernel-headers doesn't need to be updated to depend on linux-api-headers instead.

Hope that helps...

Offline

#3 2010-05-18 18:19:35

Xyne
Administrator/PM
Registered: 2008-08-03
Posts: 6,963
Website

Re: [SOLVED]What are provider packages??

A "provider package" is just a package which satisfies the dependencies of another package.

Examples:
Java packages require something that can run Java code and thus depend on "java-runtime", which is not an actual package. The package "jre", which is Sun's Java Runtime Environment, provides "java-runtime" and thus satisfies the "java-runtime" dependency. "openjdk6" also provides "java-runtime" and thus satisfies the dependency because it can be used instead of Sun's JRE to run Java code.

The package "gnu-netcat" provides "netcat" to satisfy dependencies on "netcat". This was probably to avoid breaking dependencies due to a package name change (netcat -> gnu-netcat) but it might also be to enable other implementations of netcat (e.g. foo-netcat).

The general purpose is to allow different (competing) packages to satisfy the same dependencies or to avoid dependency breakage when a package name is changed.

In your case, "foo" satisfies the dependencies that another package expected to find in "bar", which may or may not exist as a package. Which package is actually chosen depends on repo order. In the case of "java-runtime", openjdk6 is in [extra] and jre is in [community], which usually means that openjdk6 is installed.

Last edited by Xyne (2010-05-18 21:19:13)


My Arch Linux StuffForum EtiquetteCommunity Ethos - Arch is not for everyone

Offline

#4 2010-05-18 18:44:35

gabscic
Member
Registered: 2008-11-15
Posts: 19

Re: [SOLVED]What are provider packages??

Ok, got it now! Thanks for the great deal of help! By the way, fantastic answers by both!

Offline

Board footer

Powered by FluxBB