Come faccio a rimuovere CMake dopo averlo installato dal sorgente?

TL;DR: Esegui sudo make uninstall nella directory in cui hai eseguito prima sudo make install.

Hai seguito questo metodo per installare una versione diversa di CMake. Questo per dire che hai disinstallato la versione fornita dal gestore di pacchetti di Ubuntu e l’hai scaricata, compilata e installata manualmente dal codice sorgente.

Supponendo che tu sia stato in grado di seguire queste istruzioni con successo, la versione di CMake fornita dal gestore di pacchetti di Ubuntu (tramite il pacchetto cmake) è già disinstallata. Poiché la versione che hai installato ora non è fornita dal gestore di pacchetti di Ubuntu, ma invece la versione che hai compilato e installato tu stesso, l’esecuzione di sudo apt-get purge cmake di nuovo non la rimuove.

Poiché hai installato cmake compilandolo e quindi eseguendo sudo make install, la soluzione è per te:

  1. Usa cd per tornare alla directory in cui hai eseguito quel comando.
  2. Esegui sudo make uninstall.

Non tutto il software che può essere installato eseguendo make install ha un target uninstall corrispondente che consente di eseguire make uninstall per rimuoverlo. Ma CMake supporta questo.1

Se hai eliminato la cartella in cui hai eseguito sudo make install, o altrimenti l’hai cambiata, allora la soluzione migliore è ricostruirla e reinstallarla (assicurati di usare esattamente la stessa versione) per tornare alla possibilità di eseguire sudo make uninstall. Cioè, dovresti seguire gli stessi passaggi di installazione, iniziando dallo stesso file .tar.gz e passando tutte le stesse opzioni che hai usato (se ce ne sono) a ./bootstrap. Se hai appena eseguito ./bootstrap senza argomenti dopo, fallo di nuovo. Dopo aver eseguito di nuovo sudo make install, che sovrascriverebbe (in modo innocuo) i file già installati con copie di se stessi, sarebbe quindi possibile utilizzare sudo make uninstall.

Un altro possibile approccio, che ti scoraggio fortemente dal fare, sarebbe quello di cercare di capire esattamente quali file e directory sono stati creati nell’installazione e di provare a rimuovere solo quei file e directory ma nessun altro. Se non hai passato --prefix a ./bootstrap quando hai compilato CMake, ha installato i file in /usr/local, ma non è l’unico programma che utilizza quella directory. Avrebbe installato file nelle varie sottodirectory di /usr/local, come bin e lib (e altri), quindi a parte la situazione in cui non si sa nient’altro è stato installato in /usr/local, questa opzione richiede molto lavoro.

1 È facile confondersi sull’opportunità o meno di disinstallare CMake eseguendo sudo make uninstall perché, per impostazione predefinita, quando si utilizza CMake per creare script di compilazione per il proprio software, non viene generato alcun target uninstall a meno che non ne si chieda esplicitamente uno. Tuttavia, CMake stesso è progettato per essere facilmente disinstallato e il suo codice sorgente definisce tali obiettivi di disinstallazione per se stesso. Nel Makefile generato dall’esecuzione di ./bootstrap puoi vedere:

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

È anche possibile cercare il supporto di disinstallazione nei suoi CMakeLists.file txt.

Per essere sicuro, ho provato questo con CMake 3.9.0, e funziona. La destinazione uninstall viene generata e l’esecuzione di sudo make uninstall funziona per disinstallare CMake.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.