Bitbucket管道安装了错误版本的cmake。

问题描述 投票:0回答:1

当我在Bitbucket管道中安装cmake时,它安装的是3.0.2版本。这就导致了一个错误:"CMake 3.7.2或更高版本是必需的,你正在运行3.0.2版本"。 你正在运行3.0.2版本"。我怎样才能在我的.yml中安装3.7.2或更高版本的cmake?

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
linux cmake yaml bitbucket bitbucket-pipelines
1个回答
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)"

如果你查一下默认的 cmake 你会发现Jessie的软件包是v3.0.2。https:/packages.debian.orgjessiedevelcmake

多做一点调查就会发现,新的Debian版本会将新版本的 cmake 默认情况下,Stretch或Buster会分别打包3.7或3.13。Stretch或Buster会分别打包3.7或3.13。所以解决您问题的方法是使用较新版本的 gcc 基于最新的Debian版本的基础镜像。

让我们再试一次,用 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的。Buster商店3.13。https:/packages.debian.orgbusterdevelcmake。

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当然,你需要看看不同的解决方案。但希望这能帮助说明你的问题来源,以及你今后如何调查这类问题。

© www.soinside.com 2019 - 2024. All rights reserved.