Homebrew 的 maintainer 真的是有点魔怔了

2025 年 7 月 19 日
 xuegy
手滑 brew 更新了一把,结果 cmake 就挂了,一看直接大版本给干到了 4.0 。
某位正常思维的老哥试图让他们把 3.x 加回来,被 maintainer 一顿批评教育: https://github.com/orgs/Homebrew/discussions/6058
上一次类似的事情,就因为某个人提了一个稀奇古怪的 issue ,他们把 libomp 不声不响的变成 keg-only ,一堆科学计算软件都挂了。可能因为科学计算圈子太小,大家自己默默的重新适配了。
这帮人得是魔怔到什么程度才敢得罪全体码农折腾 cmake 这种基础工具?
9149 次点击
所在节点    程序员
49 条回复
springz
2025 年 7 月 19 日
homebrew 这种就类似滚动发行版,始终是保持最新的。你可以换一个确定性的,比如 Nix 对 macOS 支持也不错。
xuegy
2025 年 7 月 19 日
@springz 软件可以滚动,工具链可不兴滚动,起码应该保留上一个大版本。
yyfearth
2025 年 7 月 19 日
其实也不奇怪 你看 NodeJS 和 Python 那一大堆 keg 每个人的需求不太一样
不过 Homebrew 还是不会像 pip/uv/nvm/fnm 那样做多版本虚拟环境管理
始终是保持最新也是正常的
yyfearth
2025 年 7 月 19 日
@xuegy homebrew 的构架一个包只能运行一个版本 其他就是 keg only
除非你能说服他们用一个不同的名字 比如 cmake3 不过大概率不行
而且就算不同名字了 其他依赖的工具链一样都不能用了

但是这也是没办法的事情 大版本更新了 你一直停在老版本也不是个办法
Homebrew 不是那种 deterministic 的包管理 可以处理多个版本的互相依赖问题
springz
2025 年 7 月 19 日
发行版包管理本来就分滚动还是固定版本的,Linux 发行版也有两派,Debian/Ubuntu or ArchLinux ,HomeBrew 滚动策略是一点问题没有。
springz
2025 年 7 月 19 日
如果有需求的话,HomeBrew 其实可以锁定版本,或者在 git 仓库找老版本的 rb 脚本手动装一下。
jjx
2025 年 7 月 19 日
别说 homebrew, macos 很多软件都这个德行

明明不支持当前版本了(这没有问题), 但它还是自动升级, 结果一升就挂了, 需要重新安装
iorilu
2025 年 7 月 19 日
还是那句话, 只要能有, 别乱升级, 包括操作系统
fang2hou
2025 年 7 月 19 日
我是觉得挺好的,私下里就喜欢用新版本的,甚至有时候觉得 homebrew 跟随版本太慢,总得过两天。
公司或者固定版本的项目都是用的手动安装的固定版本,绑定在 homebrew 这种能自动更新的管理器上本身也是不可靠的。
ryants
2025 年 7 月 19 日
破坏性更新那也应该吐槽 cmake 而不是 homebrew 啊,人家要怎么做。万一有人有项目用到 4.0 的新特性,是不是又要发个帖子说卡在旧版本动不了。我就记得 archlinux 的一个版本的 clang 卡了好久,贼难受。软件版本管理一直是这样众口难调,有定制需求自己编译安装。
BlackSas
2025 年 7 月 19 日
我装 dotnet 也是一样,安装 dotnet 是最新的 9.0 。但 LTS 版本是 8.0 。
还好可以手动选择,卸载后安装 dotnet@8 就可以。
不知道 cmake 可不可以这样。
xuegy
2025 年 7 月 19 日
@BlackSas 问题就在于很多人劝留一个 cmake@3 ,维护者就是不听还跟你辩经。
noahliaszn
2025 年 7 月 19 日
确实 别乱升级 上次 macos 升级直接电脑干蹦了 还好东西还在重装系统又给弄回来咯 再也不更新系统了 锁版本了
xuegy
2025 年 7 月 19 日
@ryants 所以才说他们魔怔啊,明知道 4.0 不向后兼容,强行升级会导致无数软件挂掉,就是要坚持自己那套哲学。既然 gcc 和 python 可以多个大版本共存,为什么 cmake 就不行?
ericguo
2025 年 7 月 19 日
检查了一下我本地的 brew ,cmake 4.0.3 ,暂时没有看到影响,先这样吧。

总的来说,升级版本是不可避免的,cmake 升级到 4 ,的确应该是下游去适配的。
julyclyde
2025 年 7 月 19 日
你赖着不升级,还要求全世界不进步来等你?

诛心一点反问你:是不是还在用 centos7
DefoliationM
2025 年 7 月 19 日
魔怔了?你不喜欢滚动发行你就不要用 brew 装这个包,你手动也能装呀,经典既要又要还要。
webcape233
2025 年 7 月 19 日
@springz 一般是不带数字的始终跟随最新发布的版本,而会旧版本会带上数字
例如 python 是 3.13 ,额外有 python-3.12 python-3.11 这种

cmake 看了下只有个 cmake 了,不过需要的人应该提个 cmake3 的上去就是了
webcape233
2025 年 7 月 19 日
@xuegy 可以提 pr 增加 cmake@3 吧,我看 python 一堆旧的版本 python@3.12 这种
lvlongxiang199
2025 年 7 月 19 日
我觉得 homebrew 干的没错....
需要特定版本的 cmake, 自个额外装一个呗.....

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1146247

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX