Emacs: How to Install Packages Using ELPA, MELPA

By Xah Lee. Date: . Last updated: .

Starting with emacs 24, it comes with a package system called ELPA (Emacs Lisp Package Archive). It lets you install and manage emacs packages. 〔➤see Emacs 24.1 New Features (released 2012-06)

Quick Start

Add this to your emacs init:

(when (>= emacs-major-version 24)
  (require 'package)
  (add-to-list
   'package-archives
   '("melpa" . "http://melpa.org/packages/")
   t)
  (package-initialize))

restart emacs.

emacs packages elpa screenshot
Emacs list-packages screenshot
  1. Now, call list-packages.
  2. Find the package you want, move cursor to the line press Enter ↵.
  3. press Tab ↹ to move cursor to the “Install” button then press Enter ↵.
  4. Then, you can start to use the package.

Following are details.

Listing Available Packages

Call list-packages.

Install Packages

This list is shown in package-menu-mode. In this mode, here's the most useful keys:

(For complete list of keys, call describe-modeCtrl+h m】)

For example, i want to install the clojure-mode. I type i to mark it, x to run install. Then, i got the following files in my dir, all automatically byte-compiled and loaded.

~/.emacs.d/elpa/clojure-mode-1.7.1:
clojure-mode-autoloads.el
clojure-mode-pkg.el
clojure-mode-pkg.elc
clojure-mode.el
clojure-mode.elc

and now i can call clojure-mode, and it works right there! (no need to restart, but for some packages, you may need to turn it on or restart emacs.)

Upgrade Packages

To upgrade packages, just press 【U x】.

WARNING: package upgrade is not reliable. It is better to upgrade one package at a time. First delete the package, then install the latest.

Installed Packages Location

New packages are installed at ~/.emacs.d/elpa/.

If you want to remove all external packages, you can delete this entire directory and restart emacs. It is harmless to do so.

Packages Repositories

The source of the packages are from package servers. There are several.

To add it, put the following in your emacs init file:

(when (>= emacs-major-version 24)
  (require 'package)
  (add-to-list
   'package-archives
   '("melpa" . "http://melpa.org/packages/")
   t)
  (package-initialize))

Note: the emacs package system, called ELPA (aka package.el), is started by Tom Tromey. Marmalade is started by Nathan Weizenbaum. MELPA is started by Donald Ephraim Curtis (aka milkypostman) Thank you guys.

Helpful Commands and Variables

package-enable-at-startup. By default, this is t (true).

package-load-list. This determines which packages should be loaded at start-up.

Call describe-function or describe-variable for details.

How to Install Emacs Package Manually

How to Install Emacs Package Manually

Like it? Buy Xah Emacs Tutorial. Thanks.

or, buy something from Best Keyboard for Emacs