Автоматически обновлять пакеты и удалять старые версии

12

Я немного навязчив в обновлении пакетов для всех моих систем, поэтому я ежедневно запускаю list-packages-> U-> x-> y->, yчтобы обновлять свои пакеты и удалять старые версии после завершения обновления. Как я могу автоматизировать этот процесс, чтобы по крайней мере мне приходилось запускать только одну функцию для обновления, компиляции и удаления моих пакетов? Или есть какая-то причина, по которой я не хочу этого делать?

Райан
источник

Ответы:

17

Следующее теперь является частью пакета Paradox. Просто вызовите paradox-upgrade-packages.


Это должно сделать это.

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

Просто проверьте, какая функция вызывается каждым из перечисленных вами шагов, и добавьте их в интерактивную функцию. Обычно (y or n)подсказки могут быть проблемой, но package-menu-executeудобно принимать NO-QUERYаргумент.

Malabarba
источник
Если все пакеты обновлены, он вернется No operations specified.
ChillarAnand
3

Вы можете автоматизировать это с Cask . Это работает как для разработки пакетов, так и для пользовательской конфигурации. Документация содержит подробную информацию по ее настройке.

Кроме того, Pallet полезен для поддержания вашего файла Cask в актуальном состоянии с изменениями, которые вы делаете в буфере * Packages *.

Кайл Мейер
источник
+1 Cask + Pallet - это здорово (но я не рекомендую использовать их в Windows).
rsenna
Хм, это проблема, потому что я нахожусь на Windows большую часть времени.
Райан
@rsenna Спасибо за информацию. Я не запускаю никаких систем Windows, поэтому я не знал, что они не играют хорошо.
Кайл Мейер
На самом деле вы можете использовать Cask + Pallet на Windows, с некоторой работой. Я смог добиться этого с помощью Cygwin, но я помню, что это было далеко не просто ...
rsenna
Cask будет хорошо работать в Windows после установки Python. Я не уверен насчет Паллета, так как я еще не проверял. Но от просмотра репо это не должно зависеть ни от чего, кроме Cask + Emacs.
Джонатан Лич-Пепин