【问题标题】:Bitbucket pipeline installing the wrong version of cmakeBitbucket 管道安装错误版本的 cmake
【发布时间】:2020-07-12 08:40:17
【问题描述】:

当我在 Bitbucket 管道中 apt-get install cmake 时,它​​会安装 3.0.2 版。这会导致错误“需要 CMake 3.7.2 或更高版本。您正在运行版本 3.0.2”。如何在我的 .yml 中安装 cmake 3.7.2 或更高版本?

bitbucket-pipelines.yml

image: gcc:6.5

pipelines:
  default:
    - step:
        script: # Modify the commands below to build your repository.
          - apt-get update && apt-get -y install cmake
          - cmake -B build .

错误:

+ cmake -B build .
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
  CMake 3.7.2 or higher is required.  You are running version 3.0.2

【问题讨论】:

  • 你看到这个question的回复了吗?
  • @squareskittles 热门回复推荐“去CMake官方网页,然后下载并解压最新版本”。我不相信这可以在我的 .yml 中实现自动化。 (我是管道新手,所以在这里我可能会感到困惑)
  • 您可以将所有这些命令放在您的script: 部分,以替换apt-get 安装命令。

标签: linux cmake yaml bitbucket bitbucket-pipelines


【解决方案1】:

这并不是真正的管道问题。我将通过故障排除过程来确定问题和可能的解决方案。您可以寻求其他解决方案来安装您想要的版本,但希望按照此处的方法在将来对您有所帮助。

完全披露,我在 Atlassian 工作 - 虽然不在 Bitbucket Pipelines 团队:)


您看到安装的cmake 版本实际上与您正在使用的第三方基础映像gcc:6.5 有关。您可以在自己的机器上测试/验证:

$ docker run --rm -it gcc:6.5 bash
root@77d4fde67119:/# apt-get update && apt-get -y install cmake
root@77d4fde67119:/# cmake --version
cmake version 3.0.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

我们可以看到gcc:6.5 图像基于 Debian Jessie:

root@77d4fde67119:/# cat /etc/os-release | grep PRETTY
PRETTY_NAME="Debian GNU/Linux 8 (jessie)"

如果您查找 Jessie 的默认 cmake 包,您会发现它是 v3.0.2:https://packages.debian.org/jessie/devel/cmake

再深入一点会告诉你,较新的 Debian 版本默认打包较新版本的 cmake:Stretch 或 Buster 将分别打包 3.7 或 3.13。因此,您的问题的解决方案是使用基于较新 Debian 版本的 gcc 基础映像的较新版本:

让我们用gcc:7 基础镜像再试一次:

$ docker run --rm -it gcc:7 bash
root@26e82f7b5e56:/# cat /etc/os-release | grep PRETTY
PRETTY_NAME="Debian GNU/Linux 10 (buster)"

嗯,这是一个好兆头:gcc:7 基于 Debian Buster。巴斯特船 3.13:https://packages.debian.org/buster/devel/cmake

root@26e82f7b5e56:/# apt-get update && apt-get -y install cmake
root@26e82f7b5e56:/# cmake --version
cmake version 3.13.4

CMake suite maintained and supported by Kitware (kitware.com/cmake).

你有它:高于 3.7 的版本。

如果您不能使用此版本的gcc,当然,您需要寻找不同的解决方案。但希望这有助于说明您的问题的根源以及您将来如何调查此类问题。

【讨论】:

    猜你喜欢
    • 2021-07-27
    • 1970-01-01
    • 2019-01-17
    • 2023-03-28
    • 2022-11-24
    • 1970-01-01
    • 2014-07-20
    • 2016-10-01
    相关资源
    最近更新 更多