Atualizar pacotes automaticamente e excluir versões antigas


12

Sou um pouco compulsivo em atualizar pacotes para todos os meus sistemas, então me pego executando list-packages-> U-> x-> y-> ypraticamente todos os dias para atualizar meus pacotes e excluir versões antigas assim que a atualização for concluída. Como posso automatizar esse processo para que pelo menos eu tenha que executar apenas uma função para atualizar, compilar e excluir meus pacotes? Ou existe algum motivo para eu não querer fazer isso?

Respostas:


17

O seguinte agora faz parte do pacote Paradox. Apenas invoque paradox-upgrade-packages.


Isso deve servir.

(defun endless/upgrade ()
  "Upgrade all packages, no questions asked."
  (interactive)
  (save-window-excursion
    (list-packages)
    (package-menu-mark-upgrades)
    (package-menu-execute 'no-query)))

Basta verificar qual função é chamada por cada uma das etapas que você enumerou e jogá-las dentro de uma função interativa. Normalmente, os (y or n)prompts seriam um problema, mas package-menu-executeconvenientemente levam um NO-QUERYargumento.


Se todos os pacotes estiverem atualizados, ele retornará No operations specified.
ChillarAnand

3

Você pode automatizar isso com o Cask . Isso funciona para o desenvolvimento de pacotes, mas também para a configuração do usuário. A documentação fornece detalhes para configurar isso.

Além disso, o Pallet é útil para manter seu arquivo Cask atualizado com as alterações feitas no buffer * Packages *.


+1 Cask + Pallet são ótimas (mas eu não recomendo usá-las no Windows).
rsenna

Hmm, isso é um problema, porque eu estou no Windows a maior parte do tempo.
Ryan

@rsenna Obrigado pela informação. Eu não corro nenhum sistema Windows, então não sabia que eles não eram bons.
Kyle Meyer

De fato, você pode usar o Cask + Pallet no Windows, com algum trabalho. Eu era capaz conseguir isso usando Cygwin, mas eu lembro que era muito longe de ser fácil ...
rsenna

O Cask funcionará bem no Windows após a instalação do Python. Não tenho certeza sobre o Pallet, pois ainda não testei. Mas, olhando o repositório, não deve depender de nada além de Cask + Emacs.
Jonathan Leech-Pepin

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.