[Yum-devel] [RFC] Minimal groups and packages list

James Antill james at fedoraproject.org
Mon Sep 27 18:53:08 UTC 2010


On Mon, 2010-09-27 at 18:10 +0200, FlorianFesti wrote:
> Hi!
> 
> While thinking about a better UI for installing, viewing and removing 
> packages I came up with the idea of having a tool generating a kind of 
> %packages section as found in a kickstart file that would lead to 
> packages being installed as currently on the system. This format has the 
> advantage that it can even use groups if not all packages from that 
> group are installed as unneede packages can be excluded with 
> "-packagename". Fortunatedly this syntax is already understood by yum 
> which also allows to generate a yum command line. The goal is comming up 
> with a description of the packages installed on the system that is 
> significantly shorter than the package list itself. The program prints a 
> short statistic as last line. As it shows how well this "compression" 
> works I'd be interested in the result people are willing to share.

 On my x86_64 desktop I get:

# 2113 package names, 557 Leafs, 158 leftovers, 266 lines

...however I get a bunch of packages that don't exist (like -prctl in
base), fixing that I get:

# 2113 package names, 557 Leafs, 151 leftovers, 259 lines

...and 259 is a big improvement over 2k, but it's more than I thought it
might be. Post patch my RHEL-5 server gives:

# 205 package names, 57 Leafs, 43 leftovers, 54 lines

...which is even worse (only group is @base, and that has -9).


 Patch:

--- /tmp/yum-list_installed	2010-09-27 14:36:55.917683280 -0400
+++ /tmp/yum-list_installed.orig	2010-09-27 14:47:13.618646555 -0400
@@ -30,13 +30,6 @@
 
         plus = self.leafs & grppkgs
         minus = grppkgs - self.allpkgs
-        notfound = set()
-        for pkg in minus:
-            if self.yum.pkgSack.searchNames([pkg]):
-                continue
-            notfound.add(pkg)
-        minus -= notfound
-            
         if minus and not allowremoves:
             return
         if len(plus) > len(minus)+1:




More information about the Yum-devel mailing list