Cela m'a toujours dérouté, car les gens disent que MELPA a de nouvelles versions de packages, mais ce n'est pas vraiment clair, si GNU ELPA n'est qu'un sous-ensemble de MELPA, ou si j'ai besoin des deux?
La raison pour laquelle je pose la question est que j'expérimente beaucoup avec mes packages et que cela package-list-packages
prend un certain temps. Je suis au courant package-list-packages-no-fetch
, mais le plus souvent j'aimerais obtenir la liste des paquets la plus récente.
La question est donc, puis-je simplement utiliser MELPA et obtenir les mêmes packages (et éventuellement des versions plus récentes) que si j'utilisais à la fois MELPA et GNU ELPA?
package
package-repositories
Jakub Arnold
la source
la source
Réponses:
Tout d'abord, ELPA est le nom d'une spécification, Emacs Lisp Package Archive. Il existe trois implémentations largement connues de cette spécification, GNU ELPA, Marmalade et MELPA.
GNU ELPA est l'archive officielle GNU Emacs, prête à l'emploi pour des installations Emacs suffisamment nouvelles. Il est relativement petit, y contribuer nécessite une cession de droit d'auteur et coopère avec la liste de diffusion officielle. C'est ce qui se rapproche le plus d'un contrôle comparable à une archive de package de distribution Linux.
Marmalade est une archive non officielle avec une bonne quantité de packages versionnés. Les auteurs et les responsables doivent y télécharger manuellement leurs versions. La vérification est effectuée une fois pour chaque nouveau membre avant de leur permettre d'avoir un compte d'utilisateur, après cela, ils sont libres de libérer comme ils le souhaitent.
MELPA est une autre archive non officielle avec le plus grand nombre de packages. Chaque package est brièvement vérifié pour le style de code avec sa demande d'extraction d'inclusion, après quoi les packages sont automatiquement créés à partir de leurs sources (généralement VCS). Les reconstructions peuvent avoir lieu toutes les heures. Il y a aussi MELPA stable qui construit uniquement des versions taguées, mais a beaucoup moins de packages, moins même que Marmalade.
Quant au chevauchement, il n'y a pratiquement pas de chevauchement entre GNU ELPA et Marmalade, et de même pour GNU ELPA et MELPA. La marmelade et le MELPA se chevauchent cependant pas mal. Je dirais que la majeure partie de Marmalade est un sous-ensemble de MELPA. C'est pourquoi vous pouvez utiliser MELPA pour la plupart des packages et peut-être GNU ELPA pour quelques-uns manquants.
Mise à jour : selon les statistiques de package de malabarba, MELPA Stable a dépassé Marmalade en nombre de packages disponibles. Je le ramasserais sur Marmalade maintenant.
Mise à jour : Marmalade est essentiellement morte. Le certificat a expiré et il n'y a pratiquement pas de nouveaux packages téléchargés. Cela est dû à son processus plutôt inhabituel, vous devez être ajouté manuellement aux utilisateurs par son propriétaire et comme il a disparu, aucun nouvel utilisateur n'a été ajouté depuis 2016 environ.
la source
package-archives
conséquence et de mettre à jour l'index, comme en utilisantM-x package-refresh-contents
.M-x list-packages
devrait afficher une liste différente qu'auparavant.Non, vous pourriez ne pas avoir besoin de GNU ELPA ou de tout ELPA.
La raison pratique de ne pas utiliser GNU ELPA ou tout autre référentiel tiers est de protéger mes Emacs contre la fermeture d'ELPA. L'arrêt s'est produit de temps en temps (voir https://www.reddit.com/r/emacs/search/?q=elpa%20down&restrict_sr=1 )
La plupart de mes packages sont téléchargés depuis https // melpa.org, je pourrais éviter GNU ELPA en créant un petit miroir de package local de packages GNU ELPA sélectionnés.
Vérifiez ma configuration à
https://github.com/redguardtoo/emacs.d/blob/master/lisp/init-elpa.el
, GNU ELPA n'est pas utilisé.Si je dois utiliser des paquets GNU ELPA uniquement, je préfère plutôt créer mon propre ELPA local (c'est aussi simple que de créer un fichier texte
archive-contents
), Check my~/.emacs.d/localelpa
.Par exemple,
seq-2.20.tar
n'existent qu'à GNU ELPA et j'en ai besoin. J'ajoute donc ce package dans mon elpa local àhttps://github.com/redguardtoo/emacs.d/tree/master/localelpa
Actuellement, je n'utilise que quatre packages de GNU ELPA,
Ces paquets sont placés dans mon
localelpa
donc je n'ai pas besoin d'accéder à GNU ELPA.Vous pouvez également consulter mon package https://github.com/redguardtoo/elpa-mirror qui crée un référentiel local à partir des packages installés. Ainsi, même le référentiel distant (GNU ELPA, MELPA) est désormais facultatif.
Vous pouvez également utiliser le package source à la place téléchargé. Veuillez consulter https://github.com/redguardtoo/emacs.d/tree/master/site-lisp .
rainbow-mode
, Vous devez comprendre ce qui estload-path
( http://emacswiki.org/emacs/LoadPath ) si vous utilisez la source.Vous pouvez également conseiller
package--add-to-archive-contents
de modifier les packages avant qu'ils ne s'affichent dans le gestionnaire de packages. C'est une sorte de piratage non documenté. Cela fonctionne de Emacs 23.4 à Emacs 27. Voirinit-elpa.el
par exemple.la source