我正在尝试在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可执行文件在哪里,--version
和which
的作用不同。
答案 0 :(得分:1)
在bash中,您可以使用hash -r
,以便忘记先前执行的命令的所有记忆位置。
答案 1 :(得分:1)
在 /usr/bin 中创建符号链接对我有用:
sudo ln -s /usr/local/bin/cmake /usr/bin/cmake
答案 2 :(得分:0)
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就可以了。