On Monday 16 February 2009 21:02:55 Jimmy Johnson wrote:
While using aptitude to remove a package from my KDE install aptitude
wants to remove all of KDE, how do I stop this behavior?
Short answer: You can't and you don't want to.
Medium answer:
Use aptitude 'unmarkauto' on the packages or meta-packages that you want to
keep, but you can't keep a meta-package if you refuse to satisfy it's Depends.
The aptitude CUI (or if running experimental, GtkUI) can help in deciding what
packages to unmarkauto.
Long answer:
"kde" is a meta-package as are the packages named after the upstream tarballs
like "kdenetwork", "kdepim", and "kdeartwork". Meta-packages exist only to
pull in other packages, so they can be safely removed without affecting the
system. However, aptitude automatically uninstalls any "automatically
installed" package if nothing depends on it. A package is "automatically
installed" if it is pulled in because of a dependency (e.g. by a meta-
package).
When you ask to uninstall (e.g.) noatun, which is a Depend of one of the
kdestuff packages, aptitude notices that kdestuff can no longer satisfy its
dependencies and will want to remove it. This further cascades to the top-
level kde meta-package because kdestuff is a Depend of that package. Then,
aptitude sees all these "automatically installed" packages that are not longer
Depend'ed on and wants to remove them.
Aptitude will differentiate these packages. Some will show up as "will be
removed due to missing dependencies" (or sth like that) and some will show up
as "automatically removed because no package depends on" (or sth like that).
You'll want to mark some (or all) of the latter group as not-"automatically
installed" by use aptitude unmarkauto, so that aptitude will not remove them
just because nothing depends on them (in effect, you are telling aptitude *I*
depend on them).