Quelle est la magie derrière l'ELPA?
Question
J'utilise Aquamacs, et j'utilise ELPA qui installe des fichiers dans ~ / .emacs.d / ELPA?
Quelle est la magie derrière cette ELPA? Je veux dire, sans ELPA, je télécharger et installer les paquets dans un répertoire spécifique, et d'ajouter ces deux lignes dans emacs.
(add-to-list « load-path "répertoire_modules")
(Require « PAQUET)
Mais, avec ELPA, je ne vois rien ajouté à emacs ou / Utilisateurs / smcho / Bibliothèque / Préférences / Aquamacs Emacs / {Preferences.el, customizations.el}. Comment est-ce possible?
Ajouté
Ce que j'ai trouvé avec Aquamacs.
- Aquamacs lit ~ / Préférences / Aquamacs Emacs / préférence, et il a "(add-to-list 'kitfiles-dir load-path) (require' init)", qui se lit ainsi kit de démarrage.
- Le init.el du kit de démarrage a "(require « package) (package-initialize)"
- ~ / Library / Preferences / Aquamacs Emacs / Aquamacs-emacs-kit de démarrage / fournisseur a le package.el
Je suppose que les fichiers d'initialisation ne sont pas modifiés, mais le gestionnaire de paquets lit le ~ / .emacs.d / elpd / * pour initialiser automatiquement, comme je vois *** -. Autoloads.el dans chacune de ses
ajoutée2
Avec 24 emacs, il semble que package est pré-construit. J'ai besoin que d'avoir ces lignes dans emacs ou .emacs.d / init.el pour obtenir ELPA travail. Conseils de ce site .
(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)))
La solution
(package-initialize)
passera par tous les paquets installés (dans ~/.emacs.d/elpa/
ou similaire, selon la configuration), et les ajouter au chemin de charge. Celui que vous avez l'exécuter, jetez un oeil à load-path
( C-h v load-path
), il aura tous ces sous-répertoires ajoutés. Donc, à ce stade, le chargement de fichiers utilisera les mécanismes normaux.
Autres conseils
Vous avez une paire de quelque part (require 'package) (package-initialize)
dans vos fichiers d'initialisation. Package.el fait la magie:)