Сначала я установил версию 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 .
правильно генерируется make-файл.
Но выполнение cmake .
выдает ошибку:
bash: /usr/bin/cmake: No such file or directory
переустановка версии репозитория и сравнение выходных данных:
cmake --version
sudo cmake --version
указывает, что из -source версия запускается, когда вызывается sudo
, а версия хранилища запускается, когда это не так.
Что здесь происходит?
Я проверил, что $PATH
включает в себя /usr/local/bin
до /usr/bin
, но я не уверен, где еще искать.
bash
держит хеш-таблицу недавно выполненных файлов и их местоположения, таким образом, оно не должно искать PATH
каждый раз, когда команда призвана.
Вы видите в настоящее время сохраненные мешанины с hash
. Ищите cmake
там. Чтобы очистить хеш-таблицу и сделать bash
поиск PATH
снова, сделайте
hash -r
, См. также этот замечательное объяснение.