How do I install MELPA packages via El-Get?
Asked Answered
W

1

9

The El-Get documentation says that El-Get supports package.el and the MELPA documentation shows how to use MELPA with package.el. How do I install MELPA packages using El-Get?

Failed Attempt

I'm using Emacs 23, so package.el is not part of Emacs. I installed package.el using El-Get, but I'm not sure how to make El-Get aware of MELPA. I tried adding

;; Based on http://melpa.milkbox.net/#/getting-started .

(require 'package)
(add-to-list 'package-archives
  ;; The 't' means to append, so that MELPA comes after the more
  ;; stable ELPA archive.
  '("melpa" . "http://melpa.milkbox.net/packages/") t)

;; Add ELPA if necessary. Looking at the El-Get package.rcp recipe in
;; ~/local/opt/el-get/recipes it seems this is probably unnecessary.
(when (< emacs-major-version 24)
  (add-to-list 'package-archives '("gnu" . "http://elpa.gnu.org/packages/")))

(package-initialize)

to my init-package.el which is sourced by El-Get, but I still don't see the MELPA packages in El-Get (e.g. with M-x el-get-list-packages).

Update

I added

(require 'el-get-elpa)
;; Build the El-Get copy of the package.el packages if we have not
;; built it before.  Will have to look into updating later ...
(unless (file-directory-p el-get-recipe-path-elpa)
  (el-get-elpa-build-local-recipes))

to my init-package.el as suggested in the accepted answer and now everything works.

Wilhelm answered 19/4, 2014 at 2:37 Comment(0)
R
11

Try this:

(require 'el-get-elpa)

and then call M-x el-get-elpa-build-local-recipes: it creates special directory ../recipes/elpa with recipes from elpa and el-get sees new recipes now.

Radiophotograph answered 19/4, 2014 at 11:23 Comment(2)
Does M-x el-get-elpa-build-local-recipes need to be run periodically, or does it automatically update after the first time?Driggers
@echristopherson: I assume you only need to run it again to get definitions for new packages, since AFAIK the recipes shouldn't change often.Clemmer

© 2022 - 2024 — McMap. All rights reserved.