牛马论坛查看原帖 →

Ubuntu 等 Linux 发行版一发布,就锁定 PHP 版本号的原因是什么?

呉乐天🏸 65 阅读 8 回复
现在 php 都用容器,用 remi 的源自己 build image ,ubuntu 自带的版本太老
人家 alpine 就不锁,所以 ubuntu 也不应该锁。。。
对了,不能不让他们看到 php 的版本好哒。。。
LTS 就是这样的吧,在整个支持周期内更新的版本不会引入和删除接口和功能,只做漏洞修复,确保兼容性,php 应该是小版本间也有功能差异? Python 这边最后一位版本号是只做漏洞修复的所以可以直接用。
锁定版本号可以避免大版本的更新导致的不兼容,这也是为什么很多项目只指定某个版本,这是为了稳定和安全考虑的
非 IT 企业,我部门服务器用的是 Ubuntu 24.04 LTS ,自带的 PHP 版本是 8.3.6 ,以后就算一直升级,版本也不会变,只会打补丁变成 8.3.6-0ubuntu0.24.04.XX 这样

这次 PHP 漏洞发生后,我们第一时间更新到了 8.3.6-0ubuntu0.24.04.13 ,这是 ubuntu 官方公告的修复版。

结果上方的监控部门发信来说我们没有升级,要求按照 https://www.php.net/archive/2026.php 官网要求升级到 8.3.36 以上

于是我们得费劲跟他解释 8.3.6-0ubuntu0.24.04.13 就是安全修复后的版本,他还是不懂为什么 8.3.6-0ubuntu0.24.04.13 高于 8.3.36

其实根源就在于发行版一发布就锁定软件包版本。如果允许小版本浮动,例如 Ubuntu 24.04 刚开始是 PHP 8.3.6 ,后续升级可以是 8.3.7 -> 8.3.8 等,就不会那么难理解了。

另外 Python 锁定的好像是大版本,例如 Ubuntu 24.04 锁定 3.12 ,后面的小版本还是会升。不过 Python 大部分人用的都是虚拟环境,与系统自带关系不大。
⚠️内容来自互联网,如有侵权请点击反馈!侵权投诉
op 有没有给“上方的监控部门”看 ubuntu 的官方安全公告?里面直接明确了修复状态,不用纠结版本号的事儿了:https://ubuntu.com/security/CVE-2026-109619https://ubuntu.com/security/CVE-2026-109618@Muniesa #4 @xiliuya #5换句话说,php 的最后一位小版本更新也有不兼容?
国内监管啥也不懂 还喜欢瞎管 这才是最恶根源
因为 Ubuntu 这类 Linux 发行版的哲学就是,选择一个固定的内核、一个固定的 init 、一堆固定的应用,然后打包出一个稳定的发行版版本。这样能确保可靠性。也就是说,一个程序能在你的 Ubuntu24.04 上跑,那也一定能在我的 Ubuntu24.04 上跑。要及时更新主版本号的话,建议选择那些滚动更新的发行版,比如 manjaro 。

阅读全文与全部回复 →