“ cmake --version”指向/ usr / bin / cmake,而“ which cmake”指向/ usr / local / bin

时间:2019-01-29 21:29:45

标签: linux cmake path

我正在尝试在Linux计算机上升级cmake。这是我使用的命令

sudo apt purge --auto-remove cmake

下载并解压缩cmake-3.13.3.tar.gz

./bootstrap
make 
sudo make install 

当我做cmake --version时,它会返回

bash: /usr/bin/cmake: No such file or directory

但是/usr/bin中不存在cmake可执行文件,奇怪的是which cmake返回

/usr/local/bin/cmake

cmake实际所在的位置。

我的$path

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

如何使命令cmake指向/usr/local/bin/cmake

编辑:与另一个问题不同,因为我确切知道cmake可执行文件在哪里,--versionwhich的作用不同。

4 个答案:

答案 0 :(得分:1)

在bash中,您可以使用hash -r,以便忘记先前执行的命令的所有记忆位置。

答案 1 :(得分:1)

在 /usr/bin 中创建符号链接对我有用:

sudo ln -s /usr/local/bin/cmake /usr/bin/cmake

答案 2 :(得分:0)

根据github/cmake readme

 You may use the --prefix=<install_prefix> option to specify a custom installation directory for CMake. 

boostrap脚本中,可以看到默认的cmake前缀安装来自here

cmake_default_prefix="/usr/local"

但是我不会只选择bootstrap --prefix=/usr。在使用archlinux时,我会遵循Archlinux用于默认安装的内容,从here

  ./bootstrap --prefix=/usr \
    --mandir=/share/man \
    --docdir=/share/doc/cmake \
    --sphinx-man \
    --system-libs \
    --qt-gui \
    --parallel=$(/usr/bin/getconf _NPROCESSORS_ONLN)

看起来很合理。我看到您使用apt-get作为软件包管理器,如果是debian,则可以从here下载cmake的源软件包,然后在此处找到build命令。

答案 3 :(得分:0)

原来,我需要退出外壳才能生效。一旦我启动了一个新的shell终端,cmake --version就可以了。