11.4.8 自动执行apt-get
您可以从cron定期执行apt-get。即使您并不打算自动安装软件包,也可能想要定期执行apt-get update来保持包汇总信息得到更新。
apt-get dist-upgrade会下载并安装已经在本地机器上安装过的任何软件包的新版本。dist-upgrade类似于upgrade,但是在处理依赖关系上稍微聪明一点儿。dist-upgrade可能想要删除它认为和更新过的系统不兼容且解决不了的一些软件包,所以要对可能出现意想不到的结果有所准备。
如果您真的想要冒险,那么就让机器自动执行这项升级—使用-yes选项,这样就无需人来干预操作,它将对apt-get可能回答的任何确认性问题都热诚地回答说“Yes(是)!”。
直接从发行版本的镜像站点执行自动升级操作或许并不是个好主意。不过,如果您有了自己的APT服务器、软件包和发布控制系统,那么这就是保持客户机同步的妥善方式。像下面这样的一个简短的shell脚本能够让一台机器保持和它的APT服务器同步更新。
#!/bin/sh
apt-get update
apt-get -yes dist-upgrade
如果想要在夜间运行这个脚本,就从cron来调用它。您还可以在一个系统启动脚本中调用它,让机器在引导时更新。参考第8章了解有关cron的更多知识,参考第2章了解有关启动脚本的更多信息。
如果您在许多机器上从cron里执行更新,那么应该让时间岔开,以确保每次不会让每台机器都更新。17.2.3节末尾给出的简短的Perl脚本就能帮助完成这项任务。
如果不能完全信任软件包的来源,那么就考虑采用自动下载所有改动过的软件包,但并不安装它们这种方式。用apt-get的--download-only选项来达到这种效果,然后手工复查软件包,并且安装您想要更新的软件包。下载的软件包都保存在/var/cache/apt里,随着时间的推移,这个目录会变得相当大。用apt-get autoclean命令可以从这个目录中清理掉没有用的文件。
如果您使用了一个正规设计的稳定的Debian发行版本,那么我们将毫无保留地建议您采用自动更新。稳定发行版本中的变化一般限制在安全更新上,而且完整性测试做得很好。唯一可能发生的问题是您或许在一个新的主发布出现的时候不想自动升级。为了避免发生这样的问题,可以在sources.list文件里明确指定发行版本的名字而不是stable这个关键字。
| 回书目 上一节 下一节 |