Что за магия за ELPA? - PullRequest
       44

Что за магия за ELPA?

10 голосов
/ 23 августа 2010

Я использую Aquamacs, и я использую ELPA, который устанавливает файлы в ~ / .emacs.d / elpa?

Какая магия стоит за этим ELPA?Я имею в виду, что без ELPA я должен загрузить и установить пакеты в определенном каталоге и добавить эти две строки в .emacs.

(путь добавления к списку 'путь загрузки "PACKAGE_DIRECTORY")
(требуется 'ПАКЕТ')

Но с ELPA я не вижу ничего добавленного в .emacs или / Users / smcho / Библиотека / Предпочтения / Aquamacs Emacs / {Preferences.el,customizations.el}.Как это возможно?

Добавлено

Это то, что я нашел с Aquamacs.

  1. Aquamacs читает ~ / Preference / Aquamacs Emacs / Preference, и оно имеет "(add-to-список 'load-path kitfiles-dir) (require' init) ", который читает стартовый комплект.
  2. init.el стартового набора имеет" (require 'package) (package-initialize) "
  3. ~ / Библиотека / Предпочтения / Aquamacs Emacs / aquamacs-emacs-starter-kit / vendor содержит package.el

Я предполагаю, что файлы инициализации не изменены, но менеджер пакетов читает~ / .emacs.d / elpd / * для автоматической инициализации, как я вижу *** - autoloads.el в каждом из них.

Added2

С emacs 24 кажется, чтоПакет готов.Мне нужно только иметь эти строки в .emacs или .emacs.d / init.el, чтобы заставить ELPA работать.Советы с этого сайта .

(require 'package)
(add-to-list 'package-archives
         '("marmalade" . "http://marmalade-repo.org/packages/"))
(package-initialize)

(when (not package-archive-contents)
  (package-refresh-contents))
(defvar my-packages '(clojure-mode
               nrepl))
(dolist (p my-packages)
  (when (not (package-installed-p p))
    (package-install p)))

Ответы [ 2 ]

15 голосов
/ 31 августа 2012

(package-initialize) пройдет все установленные пакеты (в ~/.emacs.d/elpa/ или аналогичные, в зависимости от конфигурации) и добавит их в путь загрузки. Когда вы его запустите, взгляните на load-path ( C-h v load-path), в него будут добавлены все эти подкаталоги. Таким образом, в этот момент при загрузке файлов будут использоваться обычные механизмы.

6 голосов
/ 24 августа 2010

У вас есть пара (require 'package) (package-initialize) где-то в ваших файлах инициализации.Package.el творит чудеса:)

...