[vox-tech] Debian Unstable - apt strangeness

Peter Jay Salzman p at dirac.org
Sat Aug 14 06:01:12 PDT 2004


On Fri 13 Aug 04,  4:17 PM, Matt Roper <matt at mattrope.com> said:
> On Fri, Aug 13, 2004 at 03:29:45PM -0700, Rick Moen wrote:
> ...
> > I think you're misinterpreting:  dpkg is merely saying that no package
> > matching that ASCII pattern is _installed_.  dpkg knows nothing about 
> > available packages (as indicated in /var/lib/apt/lists/*Packages and
> > /var/lib/dpkg/available).  It knows only about the contents of
> > /var/lib/dpkg/status -- the "installed packages" database.
> ...
> 
> Although that's the way it *should* work, I'm afraid it doesn't
> actually work out that nicely.  The missing piece of the puzzle is that
> if you use the 'dselect' tool, your /var/lib/dpkg/available file will
> get updated to also include information about all the packages that you
> don't have installed, but that exist in apt.  Running 'dselect update'
> or selecting 'update' from the dselect menu will perform all the actions
> normally done by 'apt-get update' and then also merge the information
> about available packages into the dpkg database.  So although dpkg still
> doesn't know anything about how to fetch these packages, it is aware of
> their names and will show them if you do a 'dpkg -l <pattern>' query.
> 
> I have no idea why dselect throws all the apt information into the dpkg
> database instead of just working from the apt database directly; it's
> certainly non-intuitive and breaks the whole apt/dpkg layering scheme.
> 
> Pete - try running 'dselect update' and then do your 'dpkg -l "*gimp*"'
> query.  I suspect all the packages will show up then.
> 
> 
> 
> Matt

Hi Matt,

Very interesting!  How did you learn all this?!?   :)

Both these files had no 9wm entry on lucifer:

   /var/lib/dpkg/status 
   /var/lib/dpkg/available

After "dselect update", the -p information got placed in "available".
After "apt-get install 9wm", the -p information got placed in "status".

Then I removed 9wm.  The -p information stayed in both status and
available.  Then, I purged 9wm and the -p information still stayed in
both status and available.




Suppose 9wm was taken out of Debian.  What I think would happen is:

   * 9wm would remain in available until I did a dselect update

   * 9wm would remain in status forever?




I've noticed that for unavailable packages I can still "dpkg -l" them:

   p at satan$ dpkg -l xv
   rc  xv             3.10a-25       An image viewer and manipulator

but I can NOT "dpkg -p" them:

   p at satan$ dpkg -p xv
   Package `xv' is not available.

In fact, xv has an entry in "status" but not "available".   So it looks
like:


   1. After its creation, "available" only gets updated by dselect.

   2. dpkg takes its -l information from "available".

   3. Presumably, a package removed from Debian only leaves "available"
      after a dselect update.

   4. "status" (ultimately) only gets updated by dpkg.

   5. dpkg takes its -p information from "status".

   6. once an entry is made into status, it never leaves.

Is that about right?



Many thanks for all this really great information!!!

Pete


More information about the vox-tech mailing list