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:
- Usa
cd
per tornare alla directory in cui hai eseguito quel comando. - 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.