Ho creato un archivio di pacchetti locale (Emacs 24.5) usando package.elper prima cosa creando due directory pkgse local. (I nomi non contano.) I file che compongono i tuoi pacchetti entrano pkgse localfiniranno per contenere il tuo archivio. Se si desidera rendere disponibile un archivio ad altri, è possibile esporre localutilizzando un server Web, ma il processo è lo stesso della creazione di un archivio locale.
Ho inserito quanto segue nel mio init.elfile:
(require 'package)
(setq package-enable-at-startup nil)
(require 'package-x)
(defvar local-archive
(expand-file-name "local/" user-emacs-directory)
"Location of the package archive.")
(setq package-archive-upload-base local-archive)
(add-to-list 'package-archives `("local" . ,local-archive) t)
(package-initialize)
Ho inserito il mio archivio nella mia .emacs.ddirectory (da qui user-emacs-directoryil expand-file-namemodulo) ma puoi inserirlo ovunque tu voglia.
Una volta valutato, esegui M-x package-upload-filee inserisci il nome del file del pacchetto da installare. Questo genererà un nuovo pacchetto in local. Vedrete tre nuovi file in là, archive-contents, yourpackagename-version.el, e yourpackagename-readme.txt. Ora dovresti essere in grado di fare M-x package-list-packagese vedere il tuo pacchetto elencato. Con un po 'di fortuna, saranno contrassegnati come "nuovi". Puoi installare il pacchetto come al solito, e lo vedrai comparire nella tua .emacs.d/elpadirectory come qualsiasi altro pacchetto.
Questo dovrebbe funzionare immediatamente per Emacs 24. Non sono sicuro delle versioni precedenti. I tuoi utenti possono accedere al tuo pacchetto nel solito modo includendo
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
nel loro init.elfile.
Per informazioni su come scrivere un pacchetto, vedere Preparazione del codice Lisp per la distribuzione nel manuale GNU Emacs Lisp.