当我在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
这并不是真正的管道问题。我将通过故障排除过程来确定问题和可能的解决方案。你可以追求其他的解决方案来安装你所需要的版本,但希望按照这里的方法能在未来帮助你。
完全披露,我为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
当然,你需要看看不同的解决方案。但希望这能帮助说明你的问题来源,以及你今后如何调查这类问题。