M-x list-packages brings up the package menu. This is a buffer listing all the packages that Emacs knows about, one on each line, with the following information:
- The package name (e.g., ‘
- The package’s version number (e.g., ‘
- The package’s status—normally one of ‘
available’ (can be downloaded from the package archive), ‘
installed’, or ‘
built-in’ (included in Emacs by default). See Package Statuses.
- Which package archive this package is from, if you have more than one package archive enabled.
- A short description of the package.
list-packages command accesses the network, to retrieve the list of available packages from package archive servers. If the network is unavailable, it falls back on the most recently retrieved list.
The following commands are available in the package menu:
Print a short message summarizing how to use the package menu (
Display a help buffer for the package on the current line (
package-menu-describe-package), similar to the help window displayed by the
C-h P command (see Packages).
Mark the package on the current line for installation (
package-menu-mark-install). If the package status is ‘
available’, this adds an ‘
I’ character to the start of the line; typing
x (see below) will download and install the package.
Mark the package on the current line for deletion (
package-menu-mark-delete). If the package status is ‘
installed’, this adds a ‘
D’ character to the start of the line; typing
x (see below) will delete the package. See Package Files, for information about what package deletion entails.
Mark all obsolete packages for deletion (
package-menu-mark-obsolete-for-deletion). This marks for deletion all the packages whose status is ‘
Remove any installation or deletion mark previously added to the current line by an
d command (
Mark all package with a newer available version for upgrading (
package-menu-mark-upgrades). This places an installation mark on the new available versions, and a deletion mark on the old installed versions (marked with status ‘
Download and install all packages marked with
i, and their dependencies; also, delete all packages marked with
package-menu-execute). This also removes the marks.
Refresh the package list (
revert-buffer). This fetches the list of available packages from the package archive again, and redisplays the package list.
Filter the package list by keyword (
package-menu-filter-by-keyword). This prompts for a keyword (e.g., ‘
games’), then shows only the packages that relate to that keyword.
Filter the package list by name (
package-menu-filter-by-name). This prompts for a string, then shows only the packages whose names match a regexp with that value.
Clear filter currently applied to the package list (
Hide packages whose names match a regexp (
package-menu-hide-package). This prompts for a regexp, and then hides the packages with matching names. The default value of the regexp will hide only the package whose name is at point, so just pressing
RET to the prompt will hide the current package.
Toggle visibility of old versions of packages and also of versions from lower-priority archives (
For example, you can install a package by typing
i on the line listing that package, followed by