Репозиторий Dotfiles: переключение с подмодулей Git для каждого пакета на ELPA при сохранении переносимости - PullRequest
2 голосов
/ 05 сентября 2011

Я использовал подмодули Git в моем dotfiles репозитории для отслеживания каждого пакета Emacs, который я использую. Однако, поскольку в Emacs 24 встроен менеджер пакетов, я бы хотел перейти на более официальный и простой в использовании метод.

Моя проблема с переключением: при моем текущем методе субмодуля Git любой клон репозитория dotfiles гарантированно содержит все упомянутые надстройки. Есть ли в этом менеджере пакетов встроенная функциональность, позволяющая синхронизировать пакеты , так что при любом использовании репозитория Git будут содержаться необходимые пакеты (или их можно будет установить с помощью одной команды)?

Если ничего подобного встроенному нет, есть ли ловушка post-package-install, которую я могу использовать для поддержки текстового списка пакетов (позже читаемого с помощью специальной команды, которая устанавливает пакеты в списке )? По сути, я хотел бы, чтобы мой список пакетов / пакетов находился под контролем версий, чтобы он был переносимым между компьютерами.

1 Ответ

4 голосов
/ 16 октября 2011

Я попробовал el-get по предложению kindahero, но это не сработало для меня ... оно не загружалось правильно - из-за некоторой ошибки в коде или из-за отсутствия у меня навыков в Emacs Lisp (большескорее всего, последний).

Я наткнулся на проект Emacs Prelude и нашел очень простой фрагмент кода при просмотре исходного кода:

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

(when (not package-archive-contents)
  (package-refresh-contents))

(defvar prelude-packages
  '(auctex clojure-mode coffee-mode deft gist haml-mode
                 haskell-mode magit markdown-mode paredit projectile
                 sass-mode scss-mode yaml-mode yari yasnippet)
  "A list of packages to ensure are installed at launch.")

(dolist (p prelude-packages)
  (when (not (package-installed-p p))
    (package-install p)))

Я бесстыдноукрал это для моих собственных целей , и это прекрасно работало.Я удалил почти все свои подмодули, переключившись на менеджер пакетов (с репозиторием Marmalade).

...