这是一个很难回答的问题,我希望我描述得没错。我们将 Ubuntu 用作各种网络上专有网络设备的操作系统。目前有数百个这样的设备。它们使用 Hardy LTS 或 Lucid LTS 的比例大约各占一半。所有设备都运行 Samba,我们的故事才真正开始……
Samba 在过去几年中发布了许多关键错误修复,现在的版本是 3.6.0。Lucid 软件包数据库只更新到 3.4.7,其中有几个主要漏洞已在 3.5.x 版本中得到修补。
在现场维护这些设备上的 Samba 版本的最佳方法是什么?我想避免更换它们,因为更换它们可能很昂贵;我想尽量避免运行命令行升级发行版(即从 Hardy 升级到 Lucid),因为我们无法物理访问所有设备,而且所有升级都将远程完成。
我们有一台服务器来运行自定义的 Ubuntu 软件包存储库,但我担心它会破坏 Hardy。对此有什么最佳实践的想法?第 1 步,制定一个长期计划,让发行版保持最新的 LTS 版本,但之后,当 LTS 没有最新版本时,我们如何在 LTS 版本上获取最新版本...
答案1
各种面向服务器的发行版的正常政策是保持固定的版本号并将重要更新反向移植到该版本。重要更新被定义为安全/稳定性修复。“长期支持”的全部目的是为用户提供两件事:
- 功能稳定性。最新和最棒是极好的,除非您现在必须更改所有生产机器的配置,因为新版本的行为不同/更改了配置/输入/输出格式。
- 稳定性和安全性。由于用户无法升级到较新的软件包版本(请参阅 1.),因此发行版维护者会将重要更改反向移植到受支持的版本。此反向移植所需的努力是导致某些发行版的某些版本长期仅得到维护的主要原因之一。
因此,我认为,您的问题可以简化为将您的机器升级到发行版中的最新版本,前提是它们两个仍在维护中。您还可以查看软件包的发行说明,确保升级版本中的安全漏洞已得到修补。应该如此,但最好有书面证据。
如果您使用的任何发行版已经不再受支持,那么您将回到原点。在这种情况下,最安全、我认为总体上最好的选择是将机器升级到受支持的发行版。我知道这很痛苦而且很昂贵,但安全和稳定是客户所付出的代价。即使是内部客户。如果您无法获得所需升级的资源,我会从您的经理那里以书面形式(即电子邮件)获得该信息并备份,并存档多个副本,以防其中一台机器由于缺乏升级而崩溃/被黑客入侵。谨慎的自我保护政策。
当然,您可以创建自定义包(可能带有依赖项),并将它们运送到现场进行升级,但您必须:
- 及时修复错误。
- 编译并打包升级后的软件。
- 验证它是否稳定,行为是否与以前的版本不同,并且通常不会破坏系统中的任何东西。
- 验证升级过程本身是否有效。
- 分发到田间。
- 转到 1。
这是可能的,但需要大量的时间和精力,这几乎违背了使用 LTS 发行版的意义。还有一件事:Samba 并不是唯一的潜在问题。那么内核/glibc/其他基本软件包呢?
无论如何,您都需要一些基础设施来升级这些盒子。最简单的(但我知道并不总是可行的)方法是使用发行版维护者设置的那个。