我正在执行一项 crontab 任务,每天使用 apt-get 更新一次(运行 Debian Lenny,几乎每天都有更新)。但是我看到的几乎所有关于这个 cron 作业的例子都调用了 -d 标志。
这引出了4个问题:
- 为什么我应该只下载软件包而不安装它们?
- 这不会破坏自动运行它的目的吗?
- 我以后不需要进去实际安装更新吗?
- 我在没有 -d 标志的情况下运行 cron 作业是否安全?
您的操作是错误的假设——apt-get(或 aptitude)都不是自动运行的,Debian 打包系统也不是真正为它设计的。这就是工具使其变得困难的原因。
当您忘记更新配置文件导致软件升级中断时会发生什么?这在过去发生在我身上(apache2),有些后果严重,导致机器无法启动(mdadm)。当软件引入了您不想要的依赖项(即在服务器上引入整个 X11 窗口系统)时会发生什么?等等等等……
如果您担心自动安装安全升级,您可以查看unattended-upgrades软件包。它将为您从安全档案中下载和安装软件包。
我运行一个 Ubuntu 服务器,并且每周以 root 身份运行一次。
/usr/bin/apt-get update && /usr/bin/apt-get -s -u upgrade
'-s' 选项告诉 apt-get “模拟”更新软件包,但实际上不做任何事情。
最终效果是我收到一封电子邮件(通过 cron),告诉我有哪些新软件包可用。
然后我可以登录并手动运行它,事先采取必要的预防措施(备份等)。
希望这可以帮助。