关于linux:“cmake –version”指向/ usr / bin / cmake而“cmake”指向/ usr / local / bin

“cmake --version” points to /usr/bin/cmake while “which cmake” points to /usr/local/bin

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

1
sudo apt purge --auto-remove cmake

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

1
2
3
./bootstrap
make
sudo make install

当我做cmake --version它返回

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

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

1
/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具有不同的效果。


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


事实证明我需要退出shell以实现效果。 一旦我开始一个新的shell终端cmake --version工作。


根据github / cmake自述文件:

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

boostrap脚本中可以看到,默认的cmake前缀安装是,从这里:

1
cmake_default_prefix="/usr/local"

但我不会只用bootstrap --prefix=/usr。 当我使用archlinux时,我会使用Archlinux用于默认安装的内容,从这里开始:

1
2
3
4
5
6
7
  ./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,你可以从这里下载cmake的源包,并在那里找到build命令。