Feisty How to see which pkgs added since initial install?

Michael R. Head burner at suppressingfire.org
Sat Aug 25 21:36:36 UTC 2007

On Sat, 2007-08-25 at 16:17 -0500, Larry Alkoff wrote:
> Michael R. Head wrote:
> > On Sat, 2007-08-25 at 08:10 -0500, Larry Alkoff wrote:
> >> Thanks Tim.  You have given me a good start.
> >>
> >> I experimented with your script line.
> > 
> >> Since all the pkgs on the install cd are dated the same, the next thing 
> >> would be to eliminate all entries in dpkg.log* with the installation date.
> >>
> >> I also wouldn't mind eliminating all pkg names starting with 'lib' since 
> >> I'm mostly interested in which packages have been installed post-install.
> > 
> > Don't forget that some packages that were installed by the OS installer
> > are going to be updated with security updates. You may not want to
> > include those.
> > 
> > What you might actually want is to query all the packages that are
> > installed but not in the dependency closure set of {ubuntu-desktop,
> > ubuntu-standard, ubuntu-minimal}. This might take a few line program,
> > but I don't think it would be too tricky.
> Michael, this is what I have so far.
> It weeds out files dated from the install cd and lib files
> but does not week out files from updates of standard Ubuntu files.
> I guess that's what you meant by 'not in the dependency closure set'
> but I don't really see how to deal with those - yet.
> Can you give me a hint on how to proceed with that?

OK, so what I meant (stated in a sort of mathy way) is all packages that
derive at some level from the seed packages: ubuntu-desktop,
ubuntu-minimal, ubuntu-standard.

In other words ubuntu-desktop might depend on evolution, but evolution
depends on libevolution-data-server and libgtk2 and lots of other stuff
that isn't explicitly depended on by ubuntu-desktop. 

To find the dependency closure set, you'll want to start with a list
containing just the ubuntu-* packages. Then you'll want to start going
through that list, taking a packagename out, if you haven't examined it
before, collect its dependencies (apt-cache depends <packagename>) and
adding each dependency back to the list (if it's not already in the
list), and cycle. Eventually you'll have a list of all the packages that
are depended on by ubuntu-*.

There's probably a simpler way to get at this list (it's probably
written down somewhere), but that's what I had in mind when I spoke of a
set consisting of the closure of the dependency function.

> Note: $DDATE for Feisty is generated from the first dpkg.log line which 
> is:  2007-04-17 05:19:09 install base-files <none> 4ubuntu2
> sort /var/log/dpkg.log* | grep 'status installed' | sed 
> '-e/'"$DDATE"'/d' '-e/ lib/d'
> -- 
> Larry Alkoff N2LA - Austin TX
> Using Thunderbird on Linux
Michael R. Head <burner at suppressingfire.org>

More information about the ubuntu-users mailing list