如何在Ubuntu上安装CMake 3.2

默认的14.04版本的cmake是2.8。我该如何安装cmake 3.2并替换默认版本?或者我该如何将2.8升级到3.2?

2请注意,在14.04上,一些系统安装的软件包可能无法与cmake 3.2正常工作。例如,Eigen将其CMake模块安装在/usr/share/cmake-2.8中,显然无法被CMake 3.2找到。 - Martin Pecka
8个回答

要么使用PPA,要么自己编译。
  1. 通过PPA安装(升级到3.2版本)

    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:george-edison55/cmake-3.x
    sudo apt-get update
    
    • 当尚未安装cmake时:

      sudo apt-get install cmake
      
    • 当已经安装了cmake时:

      sudo apt-get upgrade
      
  2. 自行编译

    目前最新版本是3.2.2,以下指令基于此版本。因此,您应该检查this URL并相应调整文件名。

    sudo apt-get install build-essential
    wget http://www.cmake.org/files/v3.2/cmake-3.2.2.tar.gz
    tar xf cmake-3.2.2.tar.gz
    cd cmake-3.2.2
    ./configure
    make
    

    现在您需要选择一种安装类型来决定,我建议使用checkinstall进行安装,因为它会创建一个DEB软件包。

    • 使用checkinstall

      sudo apt-get install checkinstall
      sudo checkinstall
      
    • 使用make install

      sudo make install
      

10第一种方法对我来说不起作用。我尝试了安装和升级,但都没有效果。从源代码安装可以解决问题,而且我喜欢使用.deb软件包进行安装的方式。 - ycshao
15是的,第一种方法对我也不起作用。 - weberc2
方法1不起作用,我不得不清除cmake软件包并重新安装才能恢复到可用的cmake(2.8)。方法2运行良好。 - user2746401
3方法1最初对我无效(它安装了,但由于找不到CMAKE_ROOT等原因,cmake没有正确工作),但在清除cmake包(以及cmake-data以防万一)并通过apt-get重新安装3.2之后,它可以正常工作。 - JAB
哦,如果你没有add-apt-repository(我没有,可能是因为我在一个精简的虚拟机上安装),你需要安装software-properties-common软件包。 - JAB
@JAB 你需要清除哪个包?是 cmake 吗? - A.B.
@JAB 谢谢你的评论。我已经添加了安装 software-properties-common 的命令。 - A.B.
我已经卸载了 cmakecmake-data 两个软件包;我没有单独尝试,看看只有一个是否需要被卸载。在另一个Ubuntu发行版上,我遇到了类似的问题,我手动安装了CMake 3.3.1在/usr/local目录下;我以为包安装和手动安装可以同时存在,但这样做会导致CMake配置处于不一致的状态,最终我不得不卸载包安装。可能与某个配置文件中由cmake可执行文件检查的路径有关,但我没有深入挖掘它。 - JAB
apt-get upgrade 对我来说没有起作用; apt-get remove cmake,apt-get install cmake 也没能解决问题。 - gerardw
对于第一种方法,运行sudo apt-get dist-upgrade来安装cmake 3.x。否则,cmake软件包将被保留,只会安装cmake-data。 - Anthony
对于那些正在从源代码构建OpenCV 3并且在使用cmake时遇到问题,即使已经安装了Python 2.7和/或3.0的dev包,但仍然找不到Python库的人,这是解决该问题的方法! - rbaleksandar
第二步,我应该在哪里进行操作?在/user/home/还是/usr/src/还是其他地方?如果其中一个更好,那么哪个更好呢?感谢您非常清晰的回答。 - Elliptical view
复制并粘贴了 sudo apt-get upgrade(缺少 cmake),然后升级了所有其他软件包,只是 cmake 没有被升级... - Jānis Elmeris
PPA没有起作用。 - Dagrooms
我必须按照其他人指示的清理方法进行操作,本来打算使用这个方法https://stackoverflow.com/questions/18615451/cmake-missing-modules-directory,但是那样会导致我卸载很多我需要的软件包。第二种方法有效。 - adamconkey
在Ubuntu 16.04上,只需运行 sudo apt-get install cmake 即可! - Eric
如果你遇到了CMake Error: Could not find CMAKE_ROOT !!!的错误,先卸载再重新安装cmakecmake-data:https://stackoverflow.com/questions/18615451/cmake-missing-modules-directory - Vladimir Panteleev
只有在使用apt-get install cmake3(注意末尾的数字3)时才有效。 - Richard Fairhurst
Linux在第一种方法上出现了一个安全错误。 - Samuel Owino
这个PPA仓库的真实性如何?"george-edison55"? - Zoran Pavlovic
@ZoranPavlovic 就像你使用的任何外国存储库一样。要么你信任,要么你不信任。 - A.B.

有三个选项:
1. 从PPA安装 2. 从cmake.org安装预编译的二进制发行版 3. 自己编译

从PPA安装

sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update

当尚未安装cmake时:
sudo apt-get install cmake

当cmake已经安装时:
sudo apt-get upgrade

从cmake.org二进制分发安装

curl -sSL https://cmake.org/files/v3.5/cmake-3.5.2-Linux-x86_64.tar.gz | sudo tar -xzC /opt

CMake可执行文件将位于/opt/cmake-3.5.2-Linux-x86_64/bin/。
自行编译
目前最新版本为3.5.2,以下说明基于此版本。因此,您应该检查下载页面并相应调整文件名。
sudo apt-get install build-essential
wget http://www.cmake.org/files/v3.5/cmake-3.5.2.tar.gz
tar xf cmake-3.5.2.tar.gz
cd cmake-3.5.2
./configure
make

现在你可以选择安装类型来决定,我建议使用checkinstall进行安装,因为这将创建一个 DEB 包。
  • 使用checkinstall

    sudo apt-get install checkinstall
    sudo checkinstall
    
  • 使用make install

    sudo make install
    

3新增了一个“从cmake.org二进制分发安装”的选项。还改善了格式并将cmake下载链接升级到最新版本。我试图只编辑已接受的答案,但作者不接受我的编辑。 - nocnokneo

我不确定我是否来晚了,但最近在Ubuntu 14.04上我遇到了同样的问题,这是我解决它的方法。首先,您需要通过执行以下命令删除现有的cmake

sudo apt-get remove cmake

按下returnenter键。接下来,您需要使用以下命令安装cmake3

sudo apt-get update 

sudo apt-get upgrade 

sudo apt-get install cmake3

假设我的答案在几年后会过时,请考虑搜索一个与之相关的 CMake 软件包。例如,在此时,cmake3 对我有效。

要执行此操作,您只需执行以下命令:

apt-cache search cmake

找到软件包后,按照建议进行安装。

谢谢
祝编码愉快!


2是的,简单地运行sudo apt-get install cmake就可以了。 - Eric
@EricWang 嗯,Eric,现在使用Ubuntu 16.04及以上版本,它运行得很好。 - Fennec
1这必须是一个被接受的答案。 - Trect

试着从源代码构建它,安装并调整你的 $PATH 变量以使其可用。也许你应该将导出的变量添加到你的 bashrc 文件中。基本上这就是我会做的方法,请根据你的需求更改文件和文件夹名称:
sudo apt-get install build-essential
wget http://url.to/cmake-3.2-src.tar.gz
tar xzf cmake-3.2-src.tar.gz
cd cmake-3.2-src
./configure
make
# If make finishes without errors:
sudo make install
export PATH=/usr/local/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
cmake --version # This should give v3.2

1URL链接无法使用。 - A.B.
4一个有效的URL将不会指向未来的更新版本,请访问cmake的官方网站以获取最新版本。 - Oliver R.

对于Ubuntu 20.04 LTS,只需运行:

sudo apt install cmake

只需从https://cmake.org/download/安装最新版本的sh即可。
cd /usr
sudo wget https://cmake.org/files/v3.8/cmake-3.8.2-Linux-x86_64.sh -P /usr/
sudo chmod 755 /usr/cmake-3.8.2-Linux-x86_64.sh
sudo ./cmake-3.8.2-Linux-x86_64.sh

尝试:

sudo snap install cmake --classic

对我来说,我所需要的只是:
apt-get -y install cmake

我发现这个信息在这里