Aktualisieren Sie Pakete automatisch und löschen Sie alte Versionen

12

Ich bin ein bisschen zwanghaft, Pakete für alle meine Systeme zu aktualisieren, daher starte ich fast täglich list-packages-> U-> x-> y-> y, um meine Pakete zu aktualisieren und alte Versionen zu löschen, sobald das Update abgeschlossen ist. Wie kann ich diesen Prozess automatisieren, sodass ich zumindest nur eine Funktion ausführen muss, um meine Pakete zu aktualisieren, zu kompilieren und zu löschen? Oder gibt es einen Grund, warum ich das nicht tun möchte?

Ryan
quelle

Antworten:

17

Das Folgende ist jetzt Teil des Paradox-Pakets. Rufen Sie einfach auf paradox-upgrade-packages.


Das sollte es tun.

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

Überprüfen Sie einfach, welche Funktion von den einzelnen Schritten, die Sie aufgelistet haben, aufgerufen wird, und werfen Sie sie in eine interaktive Funktion. Normalerweise stellen die (y or n)Eingabeaufforderungen ein Problem dar, es ist jedoch package-menu-executezweckmäßig, ein NO-QUERYArgument zu verwenden.

Malabarba
quelle
Wenn alle Pakete auf dem neuesten Stand sind, wird es zurückkehren No operations specified.
ChillarAnand
3

Sie können dies mit Cask automatisieren . Dies funktioniert für die Paketentwicklung, aber auch für die Benutzerkonfiguration. Die Dokumentation enthält Details zum Einrichten.

Auch Pallet ist nützlich für die Aufbewahrung Ihrer Cask Datei up-to-date mit Änderungen , die Sie in den * Pakete machen * puffern.

Kyle Meyer
quelle
+1 Fass + Palette sind großartig (aber ich empfehle nicht, sie unter Windows zu verwenden).
Rsenna
Hmm, das ist ein Problem, weil ich die meiste Zeit unter Windows bin.
Ryan
@rsenna Danke für die Information. Ich habe keine Windows-Systeme ausgeführt, daher wusste ich nicht, dass sie nicht gut funktionieren.
Kyle Meyer
In der Tat Sie können Cask + Pallet auf Windows, mit etwas Arbeit verwenden. Ich konnte das erreichen von Cygwin, aber ich erinnere mich , es war weit von leicht ...
rsenna
Cask funktioniert unter Windows einwandfrei, sobald Sie Python installiert haben. Ich bin mir bei Pallet nicht sicher, da ich es noch nicht getestet habe. Aber vom Blick auf das Repo sollte es nichts anderes als Cask + Emacs abhängen.
Jonathan Leech-Pepin
0

Wie wäre es mit Auto-Paket-Update ?

Alte Versionen können durch diese Anpassung gelöscht werden:

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

zhanxw
quelle