EmacsWiki: Category Packaging (original) (raw)
Emacs lends itself well to packages of customized Elisp. Starting with Emacs 24, package support is built in, and most users take great advantage of this. Packages are available in online repositories from GNU and other sources. Some packages can drastically alter the behavior of Emacs. It can be fun to keep an eye out for experiment. This category is about discovering, using, and writing Emacs packages.
Installing packages
Emacs 24 comes with a built-in package manager using ELPA: ‘M-x list-packages’
You can download a broader list of packages by adding this to your init.el:
(require 'package) (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/"))
For more information, see InstallingPackages.
Package Repositories
These are the three main sources for Emacs packages:
- ELPA – Emacs Lisp Package Archive. This is the GNU standard repository.
- MELPA – an ELPA-compatible repository, built automatically on their server from upstream sources using recipes
- Marmalade – an ELPA-compatible repository, where users upload their own packages
These repositories are connected to alternative Emacs packaging systems.
- DELPS – Distributed Emacs Lisp Package System used by the alternate package manager Epackage. Install Git packaged repositories.
- Emacsmirror – Collects packages and distributes them as Git repositories, browsable with epkg, installable via Borg (recommended to combine with auto-compile, and UsePackage for configuration).
- el-get – one regularly sees packages that claim to be available via el-get, but not via any ELPA-compatible repository.
- StraightEl – functional package manager that can install packages listed in MELPA, ELPA, or Emacsmirror, but checks these packages out from their git repositories directly. Can also be combined with UsePackage.
Trying Packages
- Try – External package to try out Emacs packages without installing them.
Writing Packages
Detailed information about what is necessary to prepare a package for upload to ELPA can be found in the GNU Emacs Manual. See MakingPackages and ELPA.