cmake - 为什么 Linux 发行版会发布过时的 CMake 版本?

标签 cmake version

当当前版本为 3.3 时,Ubuntu 发布了 CMake 2.8。其他 Linux 发行版也有类似的做法。是否有 CMake 3.0 的向后兼容性问题之类的原因?

我发现很多人愿意解释如何将 CMake 升级到最新版本,但不明白为什么默认情况下没有这样做。在我决定覆盖决定并自行升级之前,我想了解保留它的心态。

最佳答案

取决于您使用的 Linux 发行版。发行版的维护者无法发布 future 的版本,并且通常他们不会通过更新来升级版本,因为这可能会破坏现有的应用程序。

CMake 3.0 有一些轻微的不兼容性。更重要的是,它获得了新功能并修复了一些错误。如果软件依赖于这些,您将需要新版本。

顺便说一句:对于 CMake 2.8,版本号的第三部分是相关的。他们在 2.8.x 上停留了很长时间,并随着 x 的增加而添加了功能。然后他们无法更新到2.9或2.10,因此他们决定更改版本方案并在3.y中增加y。

您的问题适用于更广泛的软件。这是一个普遍的问题,发行版是否应该坚持他们提供的软件的定义版本,或者是否应该更新它并可能破坏客户的设置。 RHEL 或 SLE 等企业发行版非常保守,并且会在至少十年内修复错误。 Ubuntu 每六个月更新一次发行版,但您可以坚持使用 LTS 三年。 Fedora 甚至在发布后更新了一些关键组件,例如内核。 Arch Linux 和 openSuse Tumbleweed 是滚动版本,当上游更新发布新版本时,几乎每天都会更新其软件。

关于cmake - 为什么 Linux 发行版会发布过时的 CMake 版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33011560/

相关文章:

python - .data 在 pytorch 中仍然有用吗?

c++ - 我怎么能用cmake自动匹配所有子目录

c++ - 如何将图像文件夹添加到 CMake 项目以便在 c++ 可执行文件中使用这些图像?

.net 框架版本(或运行什么?)

powershell - 如何查找 Azure PowerShell 版本?

ruby-on-rails - Ruby - 没有将 HTTParty::Response 隐式转换为 String exotel api

c++ - cmake 和 eclipse : default include paths?

c++ - CPack 空 CPACK_PACKAGE_DIRECTORY

cmake - 是否可以使 CMake 在命令行末尾打印一个变量?

google-chrome - 如何知道客户端使用哪个 websocket 版本?