首先,我从 repos 安装了 cmake 版本:
sudo apt-get install cmake
然后我发现我需要旧版本中没有的 cmake 功能,因此我卸载了 cmake:
sudo apt-get remove cmake
并从源代码安装:
wget http://www.cmake.org/files/v3.3/cmake-3.3.2.tar.gz
tar -xzf cmake-3.3.2.tar.gz
cd cmake-3.3.2/
./configure
make
sudo make install
现在,sudo cmake .
正确运行会生成一个makefile。
但运行cmake .
会产生错误:
bash: /usr/bin/cmake: No such file or directory
重新安装存储库版本并比较输出:
cmake --version
sudo cmake --version
表示当调用时,运行的是源版本sudo
,当不调用时,运行的是存储库版本。
这里发生了什么?
我检查了$PATH
包括/usr/local/bin
前 /usr/bin
,但我不知道还能去哪里找。
答案1
bash
保留最近执行的文件及其位置的哈希表,因此不需要在PATH
每次调用命令时进行搜索。
您可以使用 查看当前保存的哈希值hash
。在其中查找cmake
。要清除哈希表并重新进行bash
搜索PATH
,请执行以下操作
hash -r
也可以看看这精彩的解释。