Configuré un archivo de paquete local (Emacs 24.5) usando package.el
primero creando dos directorios, pkgs
y local
. (Los nombres no importan). Los archivos que componen sus paquetes entran pkgs
y local
terminarán manteniendo su archivo. Si desea que un archivo esté disponible para otros, puede exponerlo local
utilizando un servidor web, pero el proceso es el mismo que crear un archivo local.
Puse lo siguiente en mi init.el
archivo:
(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)
Puse mi archivo en mi .emacs.d
directorio (de ahí user-emacs-directory
el expand-file-name
formulario) pero puedes ponerlo donde quieras.
Una vez que se evalúa esto, ejecute M-x package-upload-file
e ingrese el nombre de archivo de su paquete que se instalará. Esto generará un nuevo paquete en local
. Verá tres nuevos archivos allí, archive-contents
, yourpackagename-version.el
, y yourpackagename-readme.txt
. Ahora debería poder hacer M-x package-list-packages
y ver su paquete en la lista. Con suerte, estarán en la parte superior marcados como "nuevos". Puede instalar el paquete como de costumbre, y verá que aparece en su .emacs.d/elpa
directorio como cualquier otro paquete.
Esto debería funcionar de inmediato para Emacs 24. No estoy seguro acerca de las versiones anteriores. Sus usuarios pueden acceder a su paquete de la manera habitual al incluir
(require 'package)
(setq package-enable-at-startup nil)
(add-to-list 'package-archives
'("archive" . "http://yourdomain.com/path-to-local-dir/"))
(package-initialize)
en su init.el
archivo
Para obtener información sobre cómo escribir un paquete, consulte Preparación del código Lisp para su distribución en el manual GNU Emacs Lisp.