Я хотел обновить свою cmake версию. Таким образом, я сначала удалил его и затем попытался установить, как дали в этом сообщении teocci.
Однако это давало некоторые ошибки на вводе, делают, и теперь я хочу удалить его и установить предыдущую версию cmake. Я попробовал sudo apt-get purge cmake
. Но это все еще остается в системе на вводе cmake --version
.
Что мне делать?
TL; DR: выполненный sudo make uninstall
в каталоге, куда Вы работали sudo make install
прежде.
Вы следовали этому методу установки другой версии CMake. Это должно сказать, что Вы удалили версию, обеспеченную диспетчером пакетов Ubuntu, и вручную загрузили, скомпилированный, и установили его сами от исходного кода.
Принятие Вас смогло следовать тем инструкциям успешно, версии CMake, обеспеченного диспетчером пакетов Ubuntu (через cmake
пакет), уже удаляется. Поскольку версия, которую Вы установили теперь, не обеспечивается диспетчером пакетов Ubuntu, но вместо этого версия Вы скомпилировали и установили себя, работая sudo apt-get purge cmake
снова не удаляет его.
Так как Вы установили cmake
путем компиляции его и затем выполнение sudo make install
, решение для Вас к:
cd
вернуться к каталогу, куда Вы выполнили ту команду.sudo make uninstall
.Не все программное обеспечение, которое может быть установлено путем выполнения make install
имеет соответствие uninstall
цель, позволяющая Вам выполненный make uninstall
удалить его. Но CMake действительно поддерживает это 1
Если Вы удалили папку, в которой Вы работали sudo make install
, или иначе измененный это, затем Ваш лучший выбор состоит в том, чтобы восстановить и переустановить его (убедиться использовать точно ту же версию) для возвращения способности работать sudo make uninstall
. Таким образом, Вы следовали бы за теми же действиями по установке, начинающими с того же .tar.gz
файл и передача всего одинакового опции Вы привыкли (если таковые имеются) для ./bootstrap
. Если Вы просто работали ./bootstrap
без аргументов после него сделайте это снова. После выполнения sudo make install
снова, который (безопасно) перезаписал бы файлы, которые были уже установлены с копиями себя, Вы затем сможете использовать sudo make uninstall
.
Другой возможный подход, который я сильно отговариваю Вас делать, должен был бы попытаться выяснить точно, какие файлы и каталоги были созданы в установке, и пытаться удалить просто те файлы и каталоги, но никаких других. Если Вы не передали --prefix
кому: ./bootstrap
при компиляции CMake затем, он установил файлы в /usr/local
, но это не единственная программа, которая использует тот каталог. Это установило бы файлы в различных подкаталогах /usr/local
, такой как bin
и lib
(и другие), таким образом, кроме ситуации, где Вы не знаете ничто иное, был установлен в /usr/local
, эта опция требует большой работы.
1 легко стать перепутанным тем, можно ли удалить CMake путем выполнения sudo make uninstall
потому что, по умолчанию, когда Вы используете CMake для создания сценариев сборки для собственного программного обеспечения, нет uninstall
цель сгенерирована, если Вы явно не просите одного. Однако сам CMake разработан, чтобы быть легко удаленным, и его исходный код действительно определяет те цели удаления для себя. В Makefile
сгенерированный от выполнения ./bootstrap
Вы видите:
#=============================================================================
# Target rules for targets named uninstall
# Build rule for target.
uninstall: cmake_check_build_system
$(MAKE) -f CMakeFiles/Makefile2 uninstall
.PHONY : uninstall
# fast build rule for target.
uninstall/fast:
$(MAKE) -f CMakeFiles/uninstall.dir/build.make CMakeFiles/uninstall.dir/build
.PHONY : uninstall/fast
Можно также искать поддержку удаления в ее файле CMakeLists.txt.
Безусловно, я протестировал это с CMake 3.9.0, и он действительно работает. uninstall
цель сгенерирована и выполнение sudo make uninstall
работы для удаления CMake.