我最近接手了一个托管在 Debian VPS 安装上的网站的开发和服务器维护。我现在意识到,该服务器已经很久没有更新了。有 Nginx、Postgresql、libxml 和大约 20 个其他软件包的更新,其中一些对于保持网站运行至关重要,而有些我不确定是否需要它们。
我意识到这些未更新的软件包可能会带来重大安全风险。但是,由于缺乏服务器维护经验,我不确定如何以安全的方式完成软件包更新任务。如果出现问题,我将需要恢复,直到找到修复方法以保持网站在线。运行apt-get upgrade
本身似乎是一个很大的风险。
在这种情况下,您有什么有用的建议吗?您会怎么做?有没有办法对软件包进行“版本控制”?您会逐个更新它们吗?
干杯。
答案1
Debian 人员付出了巨大的努力来确保通过他们的存储库提供的软件包的一致性。这就是拥有一个名为稳定的。因此,如果您对 repo 分发的软件包感兴趣,则无需担心。如果您希望了解更多信息并寻求进一步的保证,您可能希望阅读这个热门话题由三届 Debian 项目负责人 Stefano Zacchiroli 主讲。不要被意大利语的标题吓到,演讲的其余部分都是英语。
但是,对于安装在您机器上的任何非 repo 软件,可能会有一些值得担心的地方,因为当然不能保证您可以找到使用新内核和新库运行的版本。安装自定义软件的通常位置是
/opt, /usr/local, /usr/share
您还可以通过以下方式仔细检查已安装的 Debian 软件包
dpkg -l | more
请注意,一些自定义软件可以通过 Debian 包安装,但并非所有自定义软件都需要通过这种方式安装。
答案2
我会以一个答案的价格给你两个答案。
如果您有权访问 VPS 所运行的虚拟机管理程序,那么您可以在升级系统之前拍摄快照。然后只需升级机器,并准备好在出现问题时回滚快照。
您应该始终为重要的机器制定灾难计划。磁盘发生故障 - 有时受信任的一方不会发生故障...我会设置一台新机器并准确记录操作过程。这样,您可以轻松地测试更改而不会危及生产,并且如果生产环境被破坏,您始终有后备方案。