48.4 Package Files and Directory Layout
Each package is downloaded from the package archive in the form of a single package file—either an Emacs Lisp source file, or a tar file containing multiple Emacs Lisp source and other files. Package files are automatically retrieved, processed, and disposed of by the Emacs commands that install packages. Normally, you will not need to deal directly with them, unless you are making a package (see Packaging in The Emacs Lisp Reference Manual). Should you ever need to install a package directly from a package file, use the command M-x package-install-file
.
Once installed, the contents of a package are placed in a subdirectory of ~/.emacs.d/elpa/
(you can change the name of that directory by changing the variable package-user-dir
). The package subdirectory is named name-version
, where name
is the package name and version
is its version string.
In addition to package-user-dir
, Emacs looks for installed packages in the directories listed in package-directory-list
. These directories are meant for system administrators to make Emacs packages available system-wide; Emacs itself never installs packages there. The package subdirectories for package-directory-list
are laid out in the same way as in package-user-dir
.
Deleting a package (see Package Menu) involves deleting the corresponding package subdirectory. This only works for packages installed in package-user-dir
; if told to act on a package in a system-wide package directory, the deletion command signals an error.