Как удалить CMake после установки из источника?

Я хотел обновить мою версию cmake. Поэтому я сначала удалил его, а затем попытался установить, как указано в этом сообщении, teocci.

Однако он вносил некоторые ошибки при вводе make, и теперь я хочу его удалить и установить предыдущую версию cmake , Я попробовал sudo apt-get purge cmake. Но он все еще остается в системе при входе cmake --version.

Что мне делать?

1
задан 3 August 2017 в 19:55

3 ответа

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, чтобы удалить его. TL; DR: 1

Если вы удалили папку, в которой вы запустили sudo make install, или иным образом изменили ее, то лучше всего ее перестроить и переустановить (be обязательно используйте точно такую ​​же версию), чтобы вернуть возможность запуска 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, потому что уже удалил , этот метод . Однако, Если вы удалили папку , и ее исходный код определит эти цели удаления для себя. В 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.

3
ответ дан 22 May 2018 в 19:51
  • 1
    Огромное спасибо. Требуется довольно много времени для установки. Поэтому я хотел бы спросить, хочу ли я теперь использовать более новую версию cmake (например, версию, предоставленную менеджером пакетов Ubuntu, а не тот, который был установлен вручную), что мне делать? – Surabhi Verma 3 August 2017 в 21:04
  • 2
    @SurabhiVerma Я рад, что это сработало! Что касается обновления: это зависит: что пошло не так с CMake, который вы установили? Какие ошибки произошли? Какую версию вы установили? Почему версия в Ubuntu недостаточна? Вы просто хотите попробовать новую версию? (Конечно, все в порядке, но если есть более конкретная причина, это может быть актуально.) Вы пытаетесь создать что-то, что нуждается в более новой версии CMake? Если да, то? Вы должны задать отдельный вопрос для этого, но если вы немного объясните ситуацию, возможно, я могу предложить другие вещи, чтобы включить в нее, что облегчит ответ. – Eliah Kagan 3 August 2017 в 21:17
  • 3
    Мне нужна новая версия для новых функций cmake (для pybind11), для которых мне нужна версия 3 или выше. Поэтому я удалил cmake (V 2.8.2) и установил новую версию по описанной выше процедуре. Но затем при запуске make я получил следующую ошибку .. make: / usr / bin / cmake: команда не найдена .. Поэтому я удалил эту папку, где я установил новую версию, и запустил sudo apt-get install cmake, чтобы установить старую еще раз, а затем она выбросила эту ошибку: Ошибка CMake: ошибка выполнения cmake :: LoadCache (). Прерывание .. Поэтому я подумал, что, возможно, я не установил правильно. Так что я снова удалил его. – Surabhi Verma 3 August 2017 в 21:27
  • 4
    @SurabhiVerma. Очевидно, pybind11 не смог найти команду cmake, которую вы установили самостоятельно, потому что она ожидала, что она будет на /usr/bin/cmake, которая кажется ошибкой, но с той, с которой можно было бы работать. CMake 2.8.2 довольно старый; Ubuntu 14.04 имеет CMake 2.8.12 . Какой выпуск Ubuntu вы используете? Каков результат работы lsb_release -rd и apt-cache policy cmake | grep -oP 'Candidate: \K.+'? Как вы загрузили исходный код pybind11, и какая версия (или вы проверили голову от git)? – Eliah Kagan 3 August 2017 в 21:56
  • 5
    Я установил cmake через этот и теперь делаю работу .. Спасибо за помощь :) – Surabhi Verma 4 August 2017 в 13:16

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, чтобы удалить его. TL; DR: 1

Если вы удалили папку, в которой вы запустили sudo make install, или иным образом изменили ее, то лучше всего ее перестроить и переустановить (be обязательно используйте точно такую ​​же версию), чтобы вернуть возможность запуска 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, потому что уже удалил , этот метод . Однако, Если вы удалили папку , и ее исходный код определит эти цели удаления для себя. В 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.

3
ответ дан 18 July 2018 в 09:07

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, чтобы удалить его. TL; DR: 1

Если вы удалили папку, в которой вы запустили sudo make install, или иным образом изменили ее, то лучше всего ее перестроить и переустановить (be обязательно используйте точно такую ​​же версию), чтобы вернуть возможность запуска 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, потому что уже удалил , этот метод . Однако, Если вы удалили папку , и ее исходный код определит эти цели удаления для себя. В 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.

3
ответ дан 24 July 2018 в 19:15

Другие вопросы по тегам:

Похожие вопросы: