Cuando estoy escribiendo un nuevo paquete, es genial que pueda probar su instalación simplemente emitiendo M-x package-install-from-buffer. Esto instalará el paquete con package.el, de modo que quede debajo
"~/.emacs.d/elpa". Sin embargo, esto no funciona en paquetes de múltiples archivos.
¿Cuál es el procedimiento para instalar todos los .elarchivos en el directorio actual como un paquete multifile único?
fuente

-pkg.elarchivo opcional es interesante. ¿Qué valores predeterminados tienen en ese caso?package-install-fileno menciona que funcione para directorios (aunque, como usted ha dicho, lo hace).package-install-from-bufferdice:¿Entonces se supone que puede archivar el directorio (suponiendo que cumpla con los criterios), cargar el archivo tar en Emacs y usarlo
package-install-from-buffercomo antes?Editar: O, como señala lunaryorn, no visite el archivo en Emacs y úselo
package-install-file.fuente
M-x package-install-file.paradox/paradox-pkg.elarchivo dentrotary errores cuando no lo hace. Lo mismo para ambosinstall-fileyinstall-from-buffer. Supongo que necesito crear este-pkgarchivo como una especie de receta.-pkgarchivo, de lo contrario no es un paquete válido, por lo que simplemente no funcionará el tar'ing un directorio aleatorio. Emacs debe tener un lugar para buscar los metadatos del paquete después de todo. Puede usar MELPApackage-buildocaskcrear paquetes TAR adecuados desde un árbol de directorios.C-h i g (elisp) Multi-file Packagespara más detalles.package.elno tiene buen soporte para este caso de uso. Tiene que volver a ejecutarpackage-install-from-buffercada vez que realiza una actualización del paquete, y tambiénM-x find-functiony los amigos no saltarán al código fuente, sino a la copia que sepackage.elincluye~/.emacs.d/elpa. Como consecuencia, recomendaría no usarpackage.elpara este caso de uso (o en absoluto, ya que tiene una serie de otros problemas).En cambio, puede probar mi administrador de paquetes
straight.el, que está diseñado explícitamente para este caso de uso. Constraight.el, no hay un procedimiento de "instalación local". Simplemente coloque su repositorio~/.emacs.d/straight/repos/<my-package-repo>y luego cargue el paquete en su archivo init:Cada vez que realiza un cambio en el código fuente, la generación de carga automática y la compilación de bytes se rehace (una vez que reinicia Emacs). Además, está ejecutando directamente desde el repositorio de Git, por lo que los
M-x find-functionamigos trabajarán como se esperaba.Finalmente, las versiones local y ascendente son completamente intercambiables.
straight.elle permite realizar los cambios locales que desee, y se tratan tan sagrados como los cambios ascendentes (aunquestraight.elle permite revertir automáticamente [e interactivamente] sus repositorios a sus versiones ascendentes, si lo desea). Por lo tanto, no hay que preocuparse por realizar cambios en su configuración si desea realizar un desarrollo local: simplemente realice el desarrollo local. Y si tiene un paquete privado que publica, es trivial: simplemente empuje ese paquete en algún lugar (y probablemente actualice la receta en su archivo init para apuntar a ese repositorio Git, para questraight.elpueda volver a clonarlo desde una máquina diferente).A diferencia de
package.el, no hay diferencia en el tratamiento de los paquetes de varios archivos y de un solo archivo.Para obtener documentación detallada sobre
straight.el, incluidas las comparaciones con otros gestores de paquetes, consulte el archivo README .fuente