无法更新 CMake

Posted

技术标签:

【中文标题】无法更新 CMake【英文标题】:Can't update CMake 【发布时间】:2018-03-15 19:11:13 【问题描述】:

我尝试获取最新版本的 CMake,因为 OpenSUSE 卡在 3.5.2。

version=3.10
build=2
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$version/cmake-$version.$build.tar.gz
tar -xzvf cmake-$version.$build.tar.gz
cd cmake-$version.$build/
./bootstrap
make -j3
sudo make install

但是有些事情悄悄地出错了:

VM-LINUX:~/temp/cmake-3.10.2 # cmake --version
CMake Error: Could not find CMAKE_ROOT !!!
CMake has most likely not been installed correctly.
Modules directory not found in
/usr/local/share/cmake
cmake version 3.5.2

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

所以我尝试了另一种方法:更改更新存储库中的版本!然后我发现 che CMake 包在 OpenSUSE 42.3 中卡在 3.5.2 版本。

如何添加存储库以便始终拥有最新版本?

我是 Linux 的新手。

【问题讨论】:

【参考方案1】:

从Git 安装 CMake 3.12 时,我遇到了关于 CMAKE_ROOT 的相同错误。我的解决方案是运行:

sudo ln -s /usr/local/share/cmake-3.12 /usr/local/share/cmake

因为某些原因它安装在 cmake-3.12 目录而不是 cmake 目录中。

【讨论】:

【参考方案2】:

我假设你在关注"How do I install the latest version of cmake from the command line?"。

我遇到了同样的问题,您的问题/解决方案可以在 cmets 中找到:

当我运行这个时,我得到一个错误 CMake Error: Could not find CMAKE_ROOT !!!并且它未能更新 cmake。 – 蒂莫西·斯旺 2017 年 12 月 25 日 21:47

这不是UPDATE 的解决方案,而是INSTALL cmake 的解决方案。试试这个命令或用谷歌搜索找到解决方案:sudo apt-get remove cmake cmake-data - Teocci 2017 年 12 月 26 日 2:18

【讨论】:

我卸载了 CMake,然后启动了问题中的命令。现在情况恶化了:$ cmake -versionbash: /usr/bin/cmake: is a directory我丢失了我的 CMake。此外:[1]我应该同时需要新版本和旧版本,我应该如何找回旧版本? [2] 如何在包管理器中配置一个让我始终保持更新的存储库? @Ernesto_Che 在 Linux 上,您不需要安装 cmake 版本来构建 cmake(参见 here:If there is no existing CMake installation, a bootstrap script is provided)。由于您现在已经卸载了 cmake 的“旧”版本,因此首先尝试再次对 CMake 源项目执行 sudo make install。如果这不起作用,请再次删除/删除 cmake-3.10.2 文件夹,然后从头开始重新执行这些步骤。可能您还需要首先删除/usr/local/bin/cmake下的“新”版本cmake的半成品安装。 @Ernesto_Che 而且 - 如果您总是想拥有最新版本的 cmake - 没有包管理器服务器会自动让您保持最新版本。 here 或 here 描述了更多可能性和替代服务器。【参考方案3】:
Opensuse has provided Tumbleweed and Leap for us. Tumbleweed always includes the newest packages.
 Leap has the most stable version packages.

问候

【讨论】:

以上是关于无法更新 CMake的主要内容,如果未能解决你的问题,请参考以下文章

cmake msys2 mingw无法编译简单的测试程序

为 CLion 使用本地 makefile 而不是 CMake

cmake 生成汇编文件然后编译成可执行文件

linux手机更新cmake版本

在 Windows 的 clion 中更新 cmake

[转]cmake的版本太低,系统自带的cmake才2.6,更新到cmake2.8.