Ai-je toujours besoin de GNU ELPA si j'ai MELPA?

31

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-packagesprend 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?

Jakub Arnold
la source
5
Oui, vous aurez toujours besoin de GNU Elpa.
Malabarba
Connexe: emacs.stackexchange.com/q/268/115
Kaushal Modi

Réponses:

45

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.

wasamasa
la source
Des sons comme Melpa + Gnu Elpa, et ne pas utiliser Marmalade, est la voie à suivre. Une façon simple de convertir?
justingordon
Il suffit de personnaliser en package-archivesconséquence et de mettre à jour l'index, comme en utilisant M-x package-refresh-contents. M-x list-packagesdevrait afficher une liste différente qu'auparavant.
wasamasa
Il semble que les statistiques du paquet malarbaba soient bloquées en décembre 2015 ...
JeanPierre
J'ai ajouté une nouvelle mise à jour car Marmalade est morte
wasamasa
-5

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.tarn'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,

gnu-elpa-keyring-update-2019.3.tar
let-alist-1.0.5.el
seq-2.20.tar
undo-tree-20170706.246.tar

Ces paquets sont placés dans mon localelpadonc 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 est load-path( http://emacswiki.org/emacs/LoadPath ) si vous utilisez la source.

Vous pouvez également conseiller package--add-to-archive-contentsde 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. Voir init-elpa.elpar exemple.

chen bin
la source
7
Vous avez également besoin de GNU ELPA pour des packages comme Auctex, seq.el, let-alist, rainbow-mode, etc., donc je ne dirais pas que c'est obsolète, plutôt que son importance augmente à mesure que de plus en plus de personnes entrent dans le développement d'Emacs et souhaitent leur des packages facilement accessibles à tous.
wasamasa
J'ai mis à jour ma réponse un peu sur cette question.
chen bin
@wasamasa pouvez-vous s'il vous plaît expliquer pourquoi exactement j'aurais besoin de gnu elpa pour des paquets comme auctex?
toogley
1
@toogley Parce qu'il n'est disponible que sur GNU ELPA, c'est pourquoi.
wasamasa