Quando você atualiza seus pacotes pela M-x list-packages
interface, após a instalação bem-sucedida do pacote, você será perguntado se deseja remover o pacote antigo. Não os exclua para que eles permaneçam no lugar e, em seguida, você poderá remover o pacote mais recente por essa interface.
Minha lista de pacotes atual mostra 4 versões do magit instaladas na minha árvore de diretórios ~ / .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
Você pode limpar as versões antigas posteriormente com a tecla ~
(marca do menu pacote obsoleta para exclusão) para marcar todos os pacotes obsoletos. Para excluir uma determinada versão antiga, vá para sua linha e pressione d
para marcá-las para exclusão. Depois de marcar os pacotes, você usaria x
para executar as ações como de costume.
No Emacs 25, a marcação de todos os pacotes para a U
funcionalidade pgrade define automaticamente todos os pacotes antigos para exclusão e não solicita confirmação após a instalação. Você precisa procurar linhas que começam com um "D" maiúsculo, que pode ser desmarcado (melhor com a macro a seguir)
Digite a tecla ou o acorde à esquerda do traço nas seguintes linhas.
<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
Se não houver mais correspondências para a pesquisa, a macro tocará a campainha e será interrompida. Assim, você poderá C-u 0 <F4>
desmarcar todos os pacotes marcados para exclusão. Depois disso, você pode x
executar as instalações.
A função que declarei ser alterada no meu comentário deve ser alterada de uma maneira que ainda não consigo entender, pois é importante que o último bloco (cond) seja bem-sucedido para não fazer loop infinito.
M-x package-install-file
. Também existem outras maneiras de gerenciar pacotes além do ELPA / package.el, como el-get e quelpa , eles parecem poder ser usados sem o ELPA, talvez eles possam fazer o que você deseja.