Lorsque vous mettez à jour vos packages via l' M-x list-packages
interface, après l'installation réussie du package, il vous sera demandé si vous souhaitez supprimer l'ancien package. Ne les supprimez pas pour qu'ils restent en place et vous pourrez ensuite supprimer le package le plus récent via cette interface.
Ma liste de paquets actuelle montre 4 versions de magit installées dans mon arborescence de répertoires ~ / .emacs.d / elpa /.
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
Vous pouvez nettoyer les anciennes versions plus tard avec la clé ~
(package-menu-mark-obsolete-for-deletion) pour marquer tous les packages obsolètes. Pour supprimer une certaine ancienne version, déplacez-vous sur sa ligne et appuyez sur d
pour les marquer pour suppression. Après avoir marqué les packages que vous utiliseriez x
pour exécuter les actions comme d'habitude.
Dans Emacs 25, la marque tous les packages pour la U
fonctionnalité pgrade définit automatiquement tous les anciens packages pour la suppression et ne demande pas de confirmation après l'installation. Vous devez rechercher les lignes qui commencent par un "D" majuscule, que vous pouvez simplement décocher (mieux avec la macro suivante)
Tapez la clé ou l'accord à gauche du tiret à partir des lignes suivantes.
<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
S'il n'y a pas d'autres correspondances pour la recherche, la macro sonnera et s'arrêtera, vous pouvez C-u 0 <F4>
donc décocher tous les packages marqués pour suppression. Après cela, vous pouvez x
exécuter les installations.
La fonction que j'ai déclarée modifiée dans mon commentaire doit être modifiée d'une manière que je ne peux pas encore comprendre, car il est important que le dernier bloc (cond) soit réussi afin de ne pas boucler sans fin.
M-x package-install-file
. Il existe également d'autres façons de gérer les packages en plus de ELPA / package.el, tels que el-get et quelpa , ils semblent pouvoir être utilisés sans ELPA, peut-être qu'ils peuvent faire ce que vous voulez.