Wenn Sie Ihre Pakete über die M-x list-packages
Benutzeroberfläche aktualisieren, werden Sie nach der erfolgreichen Installation des Pakets gefragt, ob Sie das alte Paket entfernen möchten. Löschen Sie sie nicht, damit sie an ihrem Platz bleiben und Sie das neuere Paket später über diese Schnittstelle entfernen können.
Meine aktuelle Paketliste enthält 4 Versionen von magit, die in meinem Verzeichnisbaum ~ / .emacs.d / elpa / installiert sind.
magit 20160827.1549 obsolete A Git porcelain inside Emacs
magit 20160907.945 obsolete A Git porcelain inside Emacs
magit 20161001.1454 obsolete A Git porcelain inside Emacs
magit 20161123.617 installed A Git porcelain inside Emacs
Sie können alte Versionen später mit dem Schlüssel ~
(Paketmenü-Veraltete zum Löschen markieren) bereinigen , um alle veralteten Pakete zu markieren. Um eine bestimmte alte Version zu löschen, gehen Sie zu ihrer Zeile und drücken Sie d
, um sie zum Löschen zu markieren. Nachdem Sie die Pakete markiert haben x
, führen Sie die Aktionen wie gewohnt aus.
In Emacs 25 werden durch das Markieren aller Pakete für die U
pgrade-Funktion automatisch alle alten Pakete zum Löschen festgelegt, und nach der Installation werden Sie nicht zur Bestätigung aufgefordert. Sie müssen nach Zeilen suchen, die mit einem Großbuchstaben "D" beginnen und die Sie einfach entfernen können (am besten mit dem folgenden Makro)
Geben Sie die Tonart oder den Akkord links vom Bindestrich in den folgenden Zeilen ein.
<F3> - start macro recording
C-s - isearch-forward
C-q - quoted-insert
C-j - linefeed character
D - the mark at the start of the line
<Ret> - stops the isearch on the line with the "D"
u - unmark the package for deletion
<F4> - stops macro recording - the first package is now unmarked
<F4> - executes the macro for the next upgraded package
Wenn es keine weiteren Übereinstimmungen für die Suche gibt, läutet das Makro und stoppt, sodass Sie die C-u 0 <F4>
Markierung aller zum Löschen markierten Pakete aufheben können. Danach können x
Sie die Installationen durchführen.
Die Funktion, die ich in meinem Kommentar als geändert deklariert habe, muss auf eine Weise geändert werden, die ich noch nicht erfassen kann, da es wichtig ist, dass der letzte (cond) Block erfolgreich ist, um keine Endlosschleife auszuführen.
M-x package-install-file
. Neben ELPA / package.el gibt es auch andere Möglichkeiten zum Verwalten von Paketen, z. B. el-get und quelpa . Diese scheinen ohne ELPA verwendet zu werden zu können. Vielleicht können sie tun, was Sie wollen.