Wie installiere ich eine bestimmte Version des Pakets?

7

Wenn ich das mache M-x package-install RET magit, installiert es die neueste Version von Magit 2.1.0.

Ich möchte installieren magit 1.4.2. Ich möchte es nicht manuell tun, indem ich das Paket herunterlade und lade.

Wenn ich beispielsweise ein Python-Paket herunterlade, kann ich während der Installation die Versionsnummer angeben.

pip install django==1.8

Wie kann ich so etwas machen und installieren magit=1.4.2?

ChillarAnand
quelle
1
AFAIK, Melpa befasst sich nicht mit offiziellen Releases, und Sie erhalten tatsächlich nicht Version 2.1.0 - Sie erhalten den neuesten (möglicherweise instabilen) Code aus dem Quell-Repository, der sich wahrscheinlich als 2.1.0 bezeichnet wenn es keine spätere offizielle Veröffentlichung gegeben hat, die aber nicht den gleichen Code wie diese offizielle Version hat. Verwenden Sie ein anderes Paket-Repository, wenn Sie offizielle Releases wünschen (versuchen Sie es mit Marmalade oder Melpa-Stable).
Phils
@phils Gibt es eine Möglichkeit, eine alte Version von Melpa Stable zu installieren?
ChillarAnand
Ich fürchte, ich sehe keinen offensichtlichen Weg. In diesem Szenario muss der Betreuer möglicherweise ein zweites Paket registrieren (z . B. magit-1.xvs magit-2.x). Ich vermute, dass Sie für die Installation einen alternativen Ansatz verwenden müssen. Ich bin mit dem Paketmanager jedoch nicht allzu vertraut, sodass jemand anderes es vielleicht besser weiß.
Phils

Antworten:

12

Sie können keine frühere Version eines Pakets in unserer aktuellen Infrastruktur installieren. Obwohl der integrierte Paketmanager von Emacs jetzt mehrere Versionen eines Pakets in neueren Versionen unterstützt, hält kein beliebtes Paketarchiv (dh MELPA Stable und Marmalade) tatsächlich einen Rückstand früherer Versionen.

Emacs hat dies lange Zeit nicht unterstützt, und jetzt, da dies der Fall ist, scheint die Nachfrage nach dieser Funktion eher gering zu sein - da es sich im Allgemeinen um versionierte Versionen handelt, wenn man bedenkt, dass MELPA Stable weitaus weniger beliebt ist als MELPA selbst. Insbesondere hat sich noch niemand freiwillig bereit erklärt, an einem Rückstand an Releases für MELPA Stable zu arbeiten, und folglich besteht für die Betreuer nur ein geringer Anreiz, diesen zu implementieren.

Sie müssen das Paket selbst herunterladen, erstellen und installieren. QUELPA mit einem benutzerdefinierten Rezept für Magit wird hier wahrscheinlich helfen.


quelle
1
Ist es vier Jahre später immer noch so, dass es nicht möglich ist, eine historische Version von MELPA Stable zu installieren? Wenn ja, wie können Benutzer verhindern, dass schlechte MELPA-Versionen ihre gesamten Emacs-Setups auf jedem von ihnen verwendeten Computer beschädigen?
Tom Ellis
@ TomEllis Ich weiß es nicht, aber ähm, warum findest du es nicht selbst heraus? Es ist einfach genug, nicht wahr?
1
Ich bin mir nicht sicher ob ich das verstehe. Dies ist eine Frage-und-Antwort-Seite, und ich frage, ob die ursprünglich gestellte Frage eine neue Antwort hat (und eine Begründung dafür gibt, warum man eine neue Antwort haben möchte). Wie würden Sie vorschlagen, dass ich es selbst herausfinde, ohne hier zu fragen?
Tom Ellis
@TomEllis Keine Straftat gemeint, aber Sie können den Inhalt des Paketarchivs von MELPA wirklich einfach selbst überprüfen, z M-x list-packages. B. über Emacs. Wenn Sie feststellen, dass meine Antwort aktualisiert werden muss, können Sie anschließend eine Bearbeitung vorschlagen.
5

Sie können el-get verwenden , um eine bestimmte Version eines Pakets von einem Git-Repo aus zu installieren.

(el-get-bundle git-timemachine
  :checkout "3.0")

Dies klont git-timemachine von github und checkout tag 3.0 und erfordert git-timemachine.

lorefnon
quelle
Wird diese Funktion noch unterstützt? Ich habe versucht , eine frühere Version von magit (ihre aktuellen Version nicht unterstützt Emacs 24 mehr) , indem Sie die folgenden zu installieren: (el-get-bundle! magit :checkout "2.90.0") in Scratch - Puffer, und nur Fehlermeldungen bekamen(error "El-get can not find a recipe for package \"package\"")
Menuhin
Es funktioniert ohne Ausrufezeichen: (el-get-bundle magit :checkout "2.90.0") Bitte ändern Sie Ihre Antwort. Vielen Dank.
Menü am