Ubuntu 8.04(哈代):如何自动apt-get / aptitude升级软件包的错误/安全?

我有一个运行Ubuntu 8.04的工作站(Hardy Heron)。 我的前任做了一些cron脚本来更新,升级和清理日常事务。 我喜欢这个事实,它需要零关注,但要尽可能贴近发行版支持的方法,以便将来的pipe理员可以轻松地find并理解它。 具体来说,似乎Ubuntu中有基础设施要做得更干净,所以我宁愿使用它。 这是什么?

这个问题受到这个问题的启发,有一个体面的,但分散的答案。 基于文档的底线是什么?

这个答案是基于阅读以下文件:

/etc/cron.daily/apt /etc/apt/apt.conf.d/10periodic /etc/apt/apt.conf.d/50unattended-upgrades /usr/share/doc/unattended-upgrades/README 

这是包含在标准Ubuntu安装中的软件包的一部分(包括unattended-upgradesupdate-notifier-common )。 还有其他的工具可以实现相同的目标,比如apticroncron-apt


在文件/etc/apt/apt.conf.d/10periodic ,添加一行

 APT::Periodic::Unattended-Upgrade "1"; 

这将Apt的定期脚本configuration为每天运行一次无人值守的升级。 对于更长的时间间隔,将1增加到更大的数字。 这个variables的0表示“禁用”。

与此同时, autoclean行应该通过replace0来启用:

 APT::Periodic::AutocleanInterval "1"; 

默认情况下,Ubuntu 8.04只configurationhardy-security存档中的自动无人值守升级。 这将覆盖您的安全漏洞,而不是一般的错误修复版本。 为此,您需要启用/etc/apt/apt.conf.d/50unattended-upgradeshardy-updates存档:

 // Uncomment the line that reads as follows: "Ubuntu hardy-updates"; 

这个function的Ubuntu规范出现在一个wiki页面上 。 请注意,Debian系统似乎具有相同的基础设施,显然是从这个function向上游迁移。

尽pipe使用Novelocratbuild议的解决scheme或使用apticron或cronapt之类的解决scheme自动升级Debian或Ubuntu系统是不可能的,但我不得不质疑这是多么明智。 这是你提到的问题链接到,但你需要决定是否反对服务自动重新启动时可能发生的停机时间升级。 通常情况下,升级的软件包越多,服务的时间就越长。 这是由于软件包在安装之前不正确地停止服务,然后再次启动,然后安装。 许多软件包只是在安装软件包时才重新启动。 这可能是一个特殊的问题,例如MySQL,Debian软件包在启动时会运行一个表检查,如果你有一个大的数据库,这会导致你的表locking,直到完成。 自动升级也不会让你有机会检查包装的问题。

我们要求他们使用Puppet来安装99%的软件包。 我在所有服务器上运行apticron,并且每天早上运行一个脚本读取这些邮件,删除黑名单升级,比如MySQL,Tomcat和PostgreSQL,并且使用软件包名称和版本更新清单文件。 当这个清单被推出时,它将升级这些软件包。 当我们能够负担的时候,我们必须手工做黑名单。

不需要做任何复杂的事情。 只需进入系统>pipe理>新立得软件包pipe理器>设置>存储库>更新,然后select安装不带通知的安全更新。

而已