Es stehen mehrere Paketdepots zur Verfügung.
Offiziell
GNU ELPA ist das offizielle Paketrepo . Es ist klein und erfordert eine Urheberrechtszuweisung (aller Autoren eines Pakets) an die FSF, um dazu beizutragen.
Pakete auf GNU ELPA sind eigentlich nur ein Git-Repo . Der Vorteil, hier gehostet zu werden, besteht darin, dass das Kernteam versucht, Pakete zu aktualisieren, wenn Emacs selbst Funktionen hinzufügt oder nicht mehr unterstützt.
Aus der Quelle gebaut
MELPA ist das größte und am schnellsten wachsende Paket-Repo. Jedes Mal, wenn eine neue Version in ein Repo verschoben oder eine EmacsWiki-Seite aktualisiert wird, wird eine neue Version veröffentlicht.
Es ist eine Hochkonjunktur, aber in der Praxis funktioniert es sehr gut. MELPA ist kuratiert, um doppelte Pakete zu vermeiden und sicherzustellen, dass die kanonische Heimat des Pakets aufgezeichnet wird (anstelle einer zufälligen Abzweigung).
MELPA hat das Problem, dass Versionen nur Zeitstempel sind, z my-package-20131231.2359
. Das bedeutet, wenn Sie auf my-package angewiesen sind:
;; Package-Requires: ((my-package "1.2.3"))
dann wird Emacs denken, dass jede Version auf MELPA neu genug ist.
MELPA Stable ist dasselbe wie MELPA, verwendet jedoch anstelle von Datumsstempelversionen die Versionen in Git-Tags. Dies ermöglicht eine bessere Auflösung von Abhängigkeiten, hat jedoch Probleme mit Wiki-Paketen .
Nutzer-Uploads
Marmalade ist viel mehr wie ein traditionelles Repository aus anderen Programmiersprachen. Der Paketentwickler lädt das Paket bei der Veröffentlichung auf Marmalade hoch.
Im Prinzip wird auf diese Weise eine ordnungsgemäße Freigabe der Pakete erreicht (Marmelade ist älter als MELPA) und das Problem mit der automatisch generierten Versionsnummer vermieden. Es findet jedoch keine Identitätsüberprüfung statt. Jeder kann ein Paket hochladen, auch wenn er es nicht geschrieben hat. Dies wird schwierig, wenn der Betreuer von my-package
feststellt, dass jemand anderes hochgeladen hat my-package
und anschließend keine neuen Versionen hochladen kann.
Marmalade war früher eine node.js-App und ist jetzt in elisp geschrieben. Beide Versionen hatten gelegentlich Probleme mit der Verfügbarkeit.
Projektspezifisch
Org-Mode ELPA ist ein Repo, das nur org
und hostet org-plus-contrib
. Der Org-Modus ist Teil des Emacs-Kerns, wird jedoch extern entwickelt und der Code wird nur in regelmäßigen Abständen mit dem Emacs-Trunk synchronisiert. Mit diesem Repo haben Sie den neuesten Org-Modus.
User42 ELPA ist ein Repo für einen einzelnen Paketentwickler, der eine ganze Reihe von Emacs-Paketen veröffentlicht hat . Wenn Sie eines seiner Pakete mögen, können Sie dieses Repo hinzufügen.
Sunrise Commander ELPA ist ein Repo für Erweiterungen von Sunrise Commander (ein Emacs-Paket zum Durchsuchen von Dateien, inspiriert von Midnight Commander).
Im Ruhestand
Tromeys ELPA war das erste Repo. Es wurde offiziell durch GNU ELPA ersetzt, hatte aber nicht die gleichen Copyright-Anforderungen. Ab 2010 wird es nicht mehr aktualisiert.
Das Elpy-Paketarchiv enthielt verschiedene Pakete, die von Jorgen Schäfer für 'Elpy, die Emacs Python-Entwicklungsumgebung' entwickelt wurden , die jedoch zu MELPA Stable migriert wurden.