[Yum] more thoughts on yum.conf and packages/repositories

Rick Thomas rbthomas55 at pobox.com
Sat Aug 2 08:21:32 UTC 2003


I think I could do everything I want to do with this syntax.

In particular, given the example below, suppose there is a package 
"spam" that I want to specifically get from repo2, though the other 
two repos may offer it as well -- I think that's the case you call 
"drawing a package from one repository".

To accomplish this, you would need to add "exclude=spam*" to repo1 
and repo3, and add "includeonly=spam*" to repo2.  If there had 
originally been no "includeonly" in repo2 to begin with, you would 
not need to add one for "spam*", because the default is 
"includeonly=*".

Thoughts:

"includeonly" and "exclude" are processed in the order they occur.  
If a package name matches an "includeonly" that package is marked 
for inclusion (subject to repo priorities) and all others in that 
repo are marked for exclusion unless explicitly marked for 
inclusion.  If a package name matches an "exclude" it is marked for 
exclusion even if it has previously been marked for inclusion.  If 
a repo offers two versions of the same package, pick the one with 
the latest version.


Some psuedo-code...

> For each repo section in the config file (in order):
>
> 	For each line in that repo section (in order):
>
> 		If line is "includeonly":
> 			For each package (in the repo) that matches a pattern 
> on the "includeonly" line:
> 				Mark that package included.
> 				Mark that package not excluded.
> 			For each package in the repo:
> 				Mark that package excluded unless it is already marked included.
>
> 		If line is "exclude":
> 			For each package (in the repo) that matches a pattern 
> on the "exclude" line:
> 				Mark that package excluded.
> 				Mark that package not included.
>
> For each non-disabled repo in the config file in priority order 
> (worst first and best last):
> 	For each package (in that repo) not marked excluded (in 
> version order -- latest version last):
> 		Mark that package picked.
> 		Mark all other versions of the same package in all repos 
> (including this one) as not picked, overriding  previous "picked" 
> status if necessary.


Would this work?


Rick

========================================================
On Saturday, August 2, 2003, at 02:37 AM, seth vidal wrote:

> what about something like this for the yum.conf file
>
> [main]
> ...
>
>
> [repo1]
> name=foo
> baseurl=url://
> includeonly=foo* bar* baz*
> exclude=foo-devel
> score=20
> disable=0
>
> [repo2]
> name=bar
> baseurl=url://
> includeonly=bar* quux*
> score=30
> disable=0
>
> [repo3]
> name=temp off
> baseurl=url://
> disable=1
>
>
> defaults would be:
>  includeonly all
>  exclude none
>  score=0
>  disable=0
>
> this doesn't address drawing a package only from one repository yet.
>
> -sv
>
>
> _______________________________________________
> Yum mailing list
> Yum at lists.dulug.duke.edu
> https://lists.dulug.duke.edu/mailman/listinfo/yum



More information about the Yum mailing list