Un amigo y yo queremos comenzar a escribir paquetes de emacs específicos para su uso en nuestra empresa. (Confía en mí, nada de lo que escribimos será de gran interés para cualquiera que esté fuera: es integración con herramientas internas)
Nos gustaría hacer que la instalación y el mantenimiento del paquete sean lo más fáciles posible y creemos que esto significa integración con package.el
. ¿Qué debemos hacer para configurar un repositorio para tal uso?
package-repositories
Sean Allred
fuente
fuente
Respuestas:
Configuré un archivo de paquete local (Emacs 24.5) usando
package.el
primero creando dos directorios,pkgs
ylocal
. (Los nombres no importan). Los archivos que componen sus paquetes entranpkgs
ylocal
terminarán manteniendo su archivo. Si desea que un archivo esté disponible para otros, puede exponerlolocal
utilizando un servidor web, pero el proceso es el mismo que crear un archivo local.Puse lo siguiente en mi
init.el
archivo:Puse mi archivo en mi
.emacs.d
directorio (de ahíuser-emacs-directory
elexpand-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 enlocal
. Verá tres nuevos archivos allí,archive-contents
,yourpackagename-version.el
, yyourpackagename-readme.txt
. Ahora debería poder hacerM-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
en su
init.el
archivoPara 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.
fuente
M-x package-update-file
, coloca el.el
archivo directamente bajolocal/
dir. ¿Hay una manera de crear un subdirectorio para cada paquete de modo que nos encontramos conlocal/pkg1/pkg1.el
,local/pkg2/pkg2.el
, ...?elpa
directorio se configura de la manera que usted describe. Realmente no sé por qué no lolocal
es. Tenga en cuenta que estos archivos se generan automáticamente, por lo que nadie realmente tiene que mirarlos. Mantengo mis archivos bajo control de versiones con git, y pongo milocal
directorio.gitignore
por ese motivo. Mantengo mipkgs
directorio bien organizado y bajo control de versiones, perolocal
es lo que es.local/
también? Quería la disposición jerárquica para poder especificar los metadatos de URL del paquete como;; URL: http://yourdomain.com/path-to-local-dir/pkg1
, y así sucesivamente para diferentes paquetes. Pero no es gran cosa. Estoy más emocionado de publicar mis paquetes en un elpa local. :)local
directorio de todos modos. Apúntelos a la fuente original en su lugar.Si desea alojar algo como MELPA, puede encontrar instrucciones en el wiki de MELPA sobre cómo alojar su propia instancia de MELPA:
https://github.com/melpa/melpa/wiki/Custom-Melpa-Archive
Esencialmente, se reduce a:
recipes/
directoriomake
.fuente