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 The Package Menu Buffer) 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.