On 12/14/2009 07:43 PM, Frank Peters wrote:
Today, doing an "emerge -pvDu world" I get the report that no packages
need to be updated.
But while checking the status of another package, I happen to execute
"emerge -pv rpm2targz." This then reports that the package rpm2targz
needs to be updated.
Why didn't the "emerge -pvDu world" tell me about this?
Further checking reveals that all packages that are installed on my
machine are contained in the /var/db/pkg directory. However, the "world"
file, which is located at /var/lib/portage/world, should contain the same
listing but it does not. I notice that some packages in /var/db/pkg
are not listed in /var/lib/portage/world.
Actually, the "world" file has 257 entries, while the "/var/lib/portage/world"
directory contains 414 packages.
Why has portage failed to add all packages to the "world" file?
Have I been doing something wrong?
In any case, I can rebuild the world file manually to accurately
reflect the state my system, but, based upon this current observation,
portage may fail to keep it accurate in the future.
What is going on here?
What's going on is that you missed a few stuff about how Gentoo works :P
The world file contains the packages you merged yourself, not
dependencies of packages pulled-in automatically. Packages that are
dependencies of other packages should never be in world.
"emerge -pvDu world" will not update packages that are build-time
dependencies of other packages (as opposed to run-time deps). If you
want build-time deps updated too, you should also specify
"--with-bdeps=y" in the emerge command.
Hope that helps :)