Ho creato un archivio di pacchetti locale (Emacs 24.5) usando package.el
per prima cosa creando due directory pkgs
e local
. (I nomi non contano.) I file che compongono i tuoi pacchetti entrano pkgs
e local
finiranno per contenere il tuo archivio. Se si desidera rendere disponibile un archivio ad altri, è possibile esporre local
utilizzando un server Web, ma il processo è lo stesso della creazione di un archivio locale.
Ho inserito quanto segue nel mio init.el
file:
(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.d
directory (da qui user-emacs-directory
il expand-file-name
modulo) ma puoi inserirlo ovunque tu voglia.
Una volta valutato, esegui M-x package-upload-file
e 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-packages
e 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/elpa
directory 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.el
file.
Per informazioni su come scrivere un pacchetto, vedere Preparazione del codice Lisp per la distribuzione nel manuale GNU Emacs Lisp.