Comment supprimer CMake après l’avoir installé à partir de la source ?

TL; DR: Exécutez sudo make uninstall dans le répertoire où vous avez exécuté sudo make install auparavant.

Vous avez suivi cette méthode pour installer une version différente de CMake. C’est-à-dire que vous avez désinstallé la version fournie par le gestionnaire de paquets d’Ubuntu et que vous l’avez téléchargée, compilée et installée manuellement à partir du code source.

En supposant que vous avez pu suivre ces instructions avec succès, la version de CMake fournie par le gestionnaire de paquets d’Ubuntu (via le package cmake) est déjà désinstallée. Parce que la version que vous avez installée maintenant n’est pas fournie par le gestionnaire de paquets d’Ubuntu, mais plutôt la version que vous avez compilée et installée vous-même, l’exécution de sudo apt-get purge cmake ne la supprime pas.

Puisque vous avez installé cmake en le compilant puis en exécutant sudo make install, la solution est pour vous de:

  1. Utilisez cd pour revenir au répertoire où vous avez exécuté cette commande.
  2. Exécuter sudo make uninstall.

Tous les logiciels pouvant être installés en exécutant make install n’ont pas une cible uninstall correspondante vous permettant d’exécuter make uninstall pour le supprimer. Mais CMake soutient cela.1

Si vous avez supprimé le dossier dans lequel vous avez exécuté sudo make install, ou l’avez modifié d’une autre manière, votre meilleur pari est de le reconstruire et de le réinstaller (assurez-vous d’utiliser exactement la même version) pour retrouver la possibilité d’exécuter sudo make uninstall. Autrement dit, vous suivriez les mêmes étapes d’installation, en partant du même fichier .tar.gz et en passant toutes les mêmes options que vous avez utilisées (le cas échéant) à ./bootstrap. Si vous venez d’exécuter ./bootstrap sans arguments après, recommencez. Après avoir exécuté à nouveau sudo make install, ce qui écraserait (sans danger) les fichiers déjà installés avec des copies d’eux-mêmes, vous pourrez alors utiliser sudo make uninstall.

Une autre approche possible, que je vous déconseille fortement de faire, serait d’essayer de comprendre exactement quels fichiers et répertoires ont été créés dans l’installation, et d’essayer de supprimer uniquement ces fichiers et répertoires mais pas d’autres. Si vous n’avez pas transmis --prefix à ./bootstrap lorsque vous avez compilé CMake, il a installé des fichiers dans /usr/local, mais ce n’est pas le seul programme qui utilise ce répertoire. Il aurait installé des fichiers dans les différents sous-répertoires de /usr/local, tels que bin et lib (et d’autres), donc mis à part la situation où vous savez que rien d’autre n’a été installé dans /usr/local, cette option nécessite beaucoup de travail.

1 Il est facile de se demander si vous pouvez désinstaller CMake en exécutant sudo make uninstall car, par défaut, lorsque vous utilisez CMake pour créer des scripts de construction pour votre propre logiciel, aucune cible uninstall n’est générée sauf si vous en demandez explicitement une. Cependant, CMake lui-même est conçu pour être facilement désinstallé, et son code source définit ces cibles de désinstallation pour lui-même. Dans le Makefile généré à partir de l’exécution de ./bootstrap, vous pouvez voir:

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

Vous pouvez également rechercher le support de désinstallation dans ses listes CMakeLists.fichier txt.

Pour être sûr, j’ai testé cela avec CMake 3.9.0, et ça marche. La cible uninstall est générée et l’exécution sudo make uninstall fonctionne pour désinstaller CMake.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.