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?

  • 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
    Commented Dec 24, 2017 at 2:56

2 Answers 2


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.

  • 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? Commented Nov 12, 2018 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
    Commented Nov 12, 2018 at 21:05

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.

  • 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
    Commented Nov 24, 2017 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
    Commented Nov 24, 2017 at 18:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.