/ / Repository Dotfiles: passaggio dai sottomoduli Git per pacchetto all'ELPA mantenendo la portabilità - git, emacs, git-submodules, elpa

Repository Dotfiles: Passaggio da sottomoduli Git per pacchetto a ELPA mantenendo la portabilità - git, emacs, git-submodules, elpa

Ho usato i sottomoduli Git nel mio repository dotfiles per tracciare ogni pacchetto Emacs che uso. Con un gestore di pacchetti integrato in Emacs 24, tuttavia, mi piacerebbe passare al metodo più ufficiale e più facile da usare.

Il mio problema con il passaggio: Con il mio attuale metodo di sottomodulo Git, qualsiasi clone del repository dotfiles è garantito per contenere tutti i componenti aggiuntivi di riferimento. Esiste una funzionalità integrata in questo gestore pacchetti per consentire la sincronizzazione dei pacchetti, in modo che qualsiasi pull del repository Git conterrà i pacchetti necessari (o li abbia tutti installabili con un singolo comando)?

Se non c'è niente di simile a questo built-in, c'è unhook "post-pacchetto-installazione" che posso usare per mantenere un elenco di pacchetti basato su testo (leggibile in seguito con un comando personalizzato che installa i pacchetti nell'elenco)? In sostanza, vorrei mantenere i miei pacchetti / elenco di pacchetti sotto il controllo della versione in modo che sia portatile tra i computer.

risposte:

4 per risposta № 1

Provai el-get su suggerimento di kindahero, ma questo non ha funzionato troppo bene per me .. non si è caricato correttamente - o con qualche bug nel codice o dalla mia mancanza di abilità in Emacs Lisp (più probabilmente quest'ultimo).

Mi sono imbattuto in Emacs Prelude progetto e ho trovato un frammento di codice molto semplice durante la navigazione nel sorgente:

(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)))

Ho spudoratamente rubato questo per il mio propri scopie ha funzionato alla grande. Ho eliminato quasi tutti i miei sottomoduli passando al gestore pacchetti (con il repository Marmalade).