Actualiza paquetes automáticamente y elimina versiones antiguas

12

Soy un poco compulsivo sobre la actualización de paquetes para todos mis sistemas, por lo que me encuentro ejecutando list-packages-> U-> x-> y-> ycasi a diario para actualizar mis paquetes y eliminar versiones antiguas una vez que se completa la actualización. ¿Cómo puedo automatizar este proceso para que al menos tenga que ejecutar una sola función para actualizar, compilar y eliminar mis paquetes? ¿O hay alguna razón por la que tal vez no quiera hacer eso?

Ryan
fuente

Respuestas:

17

Lo siguiente ahora es parte del paquete Paradox. Solo invoca paradox-upgrade-packages.


Esto debería hacerlo.

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

Simplemente verifique qué función llama cada uno de los pasos que enumeró y tírelos dentro de una función interactiva. Normalmente, las (y or n)indicaciones serían un problema, pero package-menu-executeconvenientemente toma un NO-QUERYargumento.

Malabarba
fuente
Si todos los paquetes están actualizados, volverá No operations specified.
ChillarAna
3

Puede automatizar esto con Cask . Esto funciona para el desarrollo de paquetes, pero también para la configuración del usuario. La documentación proporciona detalles para configurar esto.

Además, Pallet es útil para mantener su archivo Cask actualizado con los cambios que realice en el búfer * Paquetes *.

Kyle Meyer
fuente
+1 Cask + Pallet son geniales (pero no recomiendo usarlos en Windows).
rsenna
Hmm, eso es un problema, porque estoy en Windows la mayor parte del tiempo.
Ryan
@rsenna Gracias por la información. No ejecuto ningún sistema de Windows, así que no sabía que no funcionaban bien.
Kyle Meyer
De hecho, puede usar Cask + Pallet en Windows, con algo de trabajo. Yo era capaz de lograr que mediante el uso de Cygwin, pero recuerdo que era muy lejos de ser fácil ...
rsenna
Cask funcionará bien en Windows una vez que instales Python. Sin embargo, no estoy seguro sobre Pallet ya que no lo he probado. Pero al mirar el repositorio no debería depender de otra cosa que no sea Cask + Emacs.
Jonathan Leech-Pepin
0

¿Qué tal auto-paquete-actualización ?

Las versiones anteriores se pueden eliminar con esta personalización:

(setq auto-package-update-delete-old-versions t)

zhanxw
fuente