Esto siempre me ha confundido, ya que la gente dice que MELPA tiene versiones más nuevas de paquetes, pero no está realmente claro, si GNU ELPA es solo un subconjunto de MELPA, o si necesito ambos.
La razón por la que pregunto es que estoy experimentando mucho con mis paquetes y me package-list-packages
lleva bastante tiempo. Soy consciente de ello package-list-packages-no-fetch
, pero la mayoría de las veces me gustaría obtener la lista de paquetes más reciente.
Entonces la pregunta es, ¿puedo usar MELPA y obtener los mismos paquetes (y posiblemente versiones más nuevas) como si usara MELPA y GNU ELPA?
package
package-repositories
Jakub Arnold
fuente
fuente
Respuestas:
En primer lugar, ELPA es el nombre de una especificación, el Emacs Lisp Package Archive. Hay tres implementaciones ampliamente conocidas de esa especificación, GNU ELPA, Marmalade y MELPA.
GNU ELPA es el archivo oficial de GNU Emacs, habilitado de fábrica para instalaciones de Emacs suficientemente nuevas. Es relativamente pequeño, contribuir a ello requiere la asignación de derechos de autor y cooperar con la lista de correo oficial. Es lo más cercano que tenemos a una investigación de antecedentes comparable a un archivo de distribución de Linux.
Marmalade es un archivo no oficial con una buena cantidad de paquetes versionados. Los autores y encargados de mantenimiento deben cargar sus versiones manualmente. La verificación se realiza una vez por cada miembro nuevo antes de permitirles tener una cuenta de usuario, una vez hecho esto, son libres de liberar como lo deseen.
MELPA es otro archivo no oficial con la mayor cantidad de paquetes. Cada paquete se examina brevemente para determinar el estilo del código con su solicitud de extracción para su inclusión, después de que los paquetes se crean automáticamente a partir de sus fuentes (generalmente VCS). Las reconstrucciones pueden suceder cada hora. También hay MELPA estable, que solo crea versiones etiquetadas, pero tiene muchos menos paquetes, incluso menos que Marmalade.
En cuanto a la superposición, prácticamente no hay superposición entre GNU ELPA y Marmalade, y de manera similar para GNU ELPA y MELPA. Sin embargo, Marmalade y MELPA se superponen bastante. Calculo que la mayor parte de Marmalade es un subconjunto de MELPA. Es por eso que puedes usar MELPA para la mayoría de los paquetes y quizás GNU ELPA para algunos que faltan.
Actualización : Según las estadísticas de paquetes de malabarba, MELPA Stable superó a Marmalade en número de paquetes disponibles. Lo elegiría sobre Marmalade ahora.
Actualización : Marmalade está esencialmente muerta. El certificado ha expirado y casi no hay paquetes nuevos cargados. Esto se debe a su proceso bastante inusual, su propietario debe agregarlo manualmente a los usuarios y, como desapareció, no se han agregado nuevos usuarios desde 2016 más o menos.
fuente
package-archives
consecuencia y actualice el índice, como mediante el usoM-x package-refresh-contents
.M-x list-packages
debería mostrar una lista diferente a la anterior.No, es posible que no necesite GNU ELPA o cualquier ELPA.
La razón práctica para no usar GNU ELPA o cualquier repositorio de terceros es para proteger mis Emacs del apagado de ELPA. El cierre sucedió de vez en cuando (consulte https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )
La mayoría de mis paquetes se descargan de https // melpa.org, podría evitar GNU ELPA creando un pequeño espejo de paquete local de paquetes seleccionados de GNU ELPA.
Verifique mi configuración en
https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el
, GNU ELPA no se usa.Si tengo que usar algunos paquetes de GNU ELPA solamente, prefiero crear mi propio ELPA local (es tan simple como crear un archivo de texto
archive-contents
), verifique mi~/.emacs.d/localelpa
.Por ejemplo,
seq-2.20.tar
solo existe en GNU ELPA y lo necesito. Entonces agrego este paquete a mi elpa local enhttps://github.com/redguardtoo/emacs.d/tree/master/localelpa
Actualmente solo uso cuatro paquetes de GNU ELPA,
Estos paquetes se colocan en mi,
localelpa
así que no necesito acceder a GNU ELPA.También puede consultar mi paquete https://github.com/redguardtoo/elpa-mirror que crea un repositorio local a partir de los paquetes instalados. Entonces, incluso el repositorio remoto (GNU ELPA, MELPA) es opcional ahora.
También puede usar el paquete fuente en lugar de descargado. Verifique https://github.com/redguardtoo/emacs.d/tree/master/site-lisp .
rainbow-mode
, Debe comprender qué esload-path
( http://emacswiki.org/emacs/LoadPath ) si usa la fuente.También puede aconsejar
package--add-to-archive-contents
ajustar los paquetes antes de que se muestren en el administrador de paquetes. Este es un tipo de hack indocumentado. Funciona desde Emacs 23.4 a Emacs 27. Verinit-elpa.el
por ejemplo.fuente