Como faço para remover o CMake depois de instalá-lo da fonte?

1

Eu queria atualizar minha versão do cmake. Então, eu o desinstalei e tentei instalar como descrito em este post por teocci .

No entanto, estava dando alguns erros ao entrar no make e agora eu quero desinstalá-lo e instalar a versão anterior do cmake. Eu tentei sudo apt-get purge cmake . Mas ainda permanece no sistema ao inserir cmake --version .

O que devo fazer?

    
por Surabhi Verma 03.08.2017 / 18:38

1 resposta

3

TL; DR: Execute sudo make uninstall no diretório em que você executou sudo make install antes.

Você seguiu este método de instalar uma versão diferente do CMake. Isso quer dizer que você desinstalou a versão fornecida pelo gerenciador de pacotes do Ubuntu e baixou, compilou e instalou manualmente a partir do código-fonte.

Assumindo que você foi capaz de seguir essas instruções com sucesso, a versão do CMake fornecida pelo gerenciador de pacotes do Ubuntu (através do pacote cmake ) já está desinstalada . Porque a versão que você instalou agora é não fornecida pelo gerenciador de pacotes do Ubuntu, mas em vez disso a versão que você compilou e instalou, executando sudo apt-get purge cmake novamente não a remove.

Como você instalou cmake compilando-o e executando sudo make install , a solução é:

  1. Use cd para voltar ao diretório em que você executou esse comando.
  2. Executar sudo make uninstall .

Nem todo software que pode ser instalado executando make install tem uma meta uninstall correspondente, permitindo que você execute make uninstall para removê-lo. Mas o CMake suporta isso. 1

Se você excluiu a pasta na qual você executou sudo make install ou a alterou de alguma outra forma, a melhor opção é recriar e reinstalar (use a mesma versão) para Recupere a capacidade de executar sudo make uninstall . Ou seja, você seguiria as mesmas etapas de instalação, iniciando no mesmo arquivo .tar.gz e passando todas as mesmas opções usadas (se houver) para ./bootstrap . Se você acabou de executar ./bootstrap sem argumentos depois, faça isso novamente. Depois de executar sudo make install novamente, o que (sem causar danos) sobrescreveria os arquivos que já estavam instalados com cópias de si mesmos, você poderá usar sudo make uninstall .

Outra abordagem possível, que eu não aconselho a fazer, seria tentar descobrir exatamente quais arquivos e diretórios foram criados na instalação e tentar remover apenas esses arquivos e diretórios, mas nenhum outro. Se você não passou o --prefix para ./bootstrap quando compilou o CMake, ele instalou os arquivos em /usr/local , mas não é o único programa que usa esse diretório. Ele teria instalado arquivos nos vários subdiretórios de /usr/local , como bin e lib (e outros), portanto, além da situação em que você sabe que nada mais foi instalado em /usr/local , essa opção requer muito de trabalho.

1 É fácil ficar confuso sobre se você pode ou não desinstalar o CMake executando sudo make uninstall porque, por padrão , quando você usa o CMake para criar scripts de construção para seu próprio software , nenhum uninstall target é gerado a menos que você peça explicitamente um . No entanto, CMake em si é projetado para ser facilmente desinstalado , e seu código-fonte faz definir esses destinos de desinstalação para si mesmo. No Makefile gerado da execução de ./bootstrap , você pode ver:

#=============================================================================
# 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

Você também pode pesquisar por desinstalar o suporte em seu arquivo CMakeLists.txt .

Para ter certeza, eu testei isso com o CMake 3.9.0, e ele funciona . A meta uninstall é gerada e a execução de sudo make uninstall funciona para desinstalar o CMake.

    
por Eliah Kagan 03.08.2017 / 19:56