自动更新软件包并删除旧版本


12

我对所有系统的软件包都比较纳闷,所以我发现自己每天都在运行list-packages-> U-> x-> y-> y更新软件包,并在更新完成后删除旧版本。如何使该过程自动化,以便至少必须运行一个函数来更新,编译和删除程序包?还是出于某些原因我可能不想这样做?

Answers:


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说法。


如果所有软件包都是最新的,它将返回No operations specified
ChillarAnand 2015年

3

您可以使用Cask将其自动化。这适用于程序包开发,也适用于用户配置。该文档提供了有关设置的详细信息。

另外,使用Pallet可以使您在* Packages *缓冲区中所做的更改使Cask文件保持最新。


+1木桶+托盘很棒(但我不建议在Windows上使用它们)。
rsenna 2014年

嗯,这是个问题,因为我大多数时候都在Windows上。
Ryan

@rsenna感谢您提供信息。我没有运行任何Windows系统,所以我不知道它们的表现不佳。
凯尔·梅耶

实际上,您可以在Windows上使用Cask + Pallet,并进行一些工作。我使用Cygwin能够实现这一目标,但是我记得这非易事...
rsenna 2014年

安装Python后,Cask在Windows中可以正常工作。我不确定Pallet,因为我还没有测试。但是从仓库看,它不应该依赖于Cask + Emacs。
Jonathan Leech-Pepin

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.