5

The command list-packages shows the list of available packages.
A Status column appears with several possible values:

  • available
  • installed
  • dependency
  • built-in
  • incompat

And the packages seem to be listed by those Status values alphabetically.
I think I understand what available, installed, built-in and incompat mean.

But, what does dependency means?

Drew
  • 75,699
  • 9
  • 109
  • 225
nephewtom
  • 2,219
  • 17
  • 29
  • I would hazard a guess that it is telling you that the package is a dependency for another package that you have installed (and therefore that uninstalling it would be a bad idea). – phils Dec 24 '17 at 02:56

2 Answers2

4

Testing confirms that packages labeled "dependency" are those which are installed only because they are dependencies of other packages you have installed.

The package manager actually won't let you uninstall a dependency (as doing so would break the package that requires it). Similarly, uninstalling an "installed" package which is also a dependency of something else will not delete it, but instead downgrades it to "dependency" status.

You can conversely upgrade a dependency to an "installed" package by manually installing it. That will tell the package manager that you want the package to stay installed regardless of whether you keep the package(s) which depend on it.

Packages which were explicitly installed by the user are identified as such by adding them to package-selected-packages.

When you uninstall a package, the package manager will inform you if there are any dependencies which are no longer required, and suggest using package-autoremove to uninstall them as well.

phils
  • 48,657
  • 3
  • 76
  • 115
  • I have seen code not working when `helm` and `helm-core` were merely dependencies of `helm-bibtex` and began to work when they were marked for installation and installed. How could that be explained? – AlwaysLearning Nov 12 '18 at 20:37
  • Bad version requirements in the dependency declaration, perhaps? When you "installed" the package, you may have ended up with newer code than you had before, and the newer code may actually have been necessary. – phils Nov 12 '18 at 21:05
2

I can't tell you what it means (I can guess, but you'll probably get a good answer here).

But I can tell you how to ask Emacs about it, in case you don't already know. Usually the Emacs doc provides such info (it should).

  • C-h f list-packages gives you a brief description of the command.

  • C-h r puts you in the Emacs manual. There, i list-packages takes you to node Package Menu of the manual, where that command is covered.

Column status is described there, but the description says nothing about value dependency in that column. I just used M-x report-emacs-bug to file bug #29420.

It's possible that this value was added recently and the doc for it has not yet been updated.

Drew
  • 75,699
  • 9
  • 109
  • 225
  • Yes, I use `C-h f` and also `find-function` which I have bound it to `C-h C-f`, though I recognize that I do not use that much the Emacs manual... Yes, I know... RTFM... ;-) Thanks for filling the bug. – nephewtom Nov 24 '17 at 11:38
  • It sounds like the Emacs maintainer made an attempt to fix the doc a bit for this bug. But he asks that people familiar with `package.el` please pay some attention to the package doc, which is not all that great. I second that request. (He, like I, is apparently not particularly knowledgable about `package.el`.) **Volunteers welcome.** – Drew Nov 24 '17 at 18:09