Hoe verwijder ik CMake na het installeren van de broncode?

TL; DR: voer sudo make uninstall uit in de map waar u eerder sudo make install hebt uitgevoerd.

u hebt deze methode gevolgd om een andere versie van CMake te installeren. Dit wil zeggen dat u de versie van Ubuntu ‘ s package manager hebt verwijderd en deze handmatig hebt gedownload, gecompileerd en zelf hebt geïnstalleerd vanaf de broncode.

ervan uitgaande dat u in staat was om deze instructies met succes te volgen, is de versie van cmake van Ubuntu ‘ s pakketbeheerder (via het cmake pakket) al verwijderd. Omdat de versie die u nu hebt geïnstalleerd niet wordt geleverd door Ubuntu ‘ s package manager, maar in plaats daarvan de versie die u zelf hebt gecompileerd en geïnstalleerd, draait sudo apt-get purge cmake opnieuw verwijdert het niet.

sinds u cmake installeerde door het te compileren en vervolgens sudo make install uit te voeren, is de oplossing voor u om:

  1. gebruik cd om terug te gaan naar de map waar je dat commando hebt uitgevoerd.
  2. Run sudo make uninstall.

niet alle software die geïnstalleerd kan worden door make install uit te voeren, heeft een overeenkomstig uninstall doel waarmee u make uninstall kunt uitvoeren om het te verwijderen. Maar CMake ondersteunt dit wel.1

Als u de map waarin u sudo make install liep hebt verwijderd, of deze op een andere manier hebt gewijzigd, dan is het het beste om de map opnieuw op te bouwen en opnieuw te installeren (Zorg ervoor dat u precies dezelfde versie gebruikt) om de mogelijkheid om sudo make uninstalluit te voeren terug te krijgen. Dat wil zeggen, je zou dezelfde installatie stappen volgen, beginnend vanuit hetzelfde .tar.gz bestand en alle dezelfde opties die je gebruikt hebt (indien van toepassing) doorgeven aan ./bootstrap. Als je net ./bootstrap hebt gedraaid zonder argumenten erna, doe dat dan opnieuw. Na het opnieuw draaien van sudo make install, wat (onschadelijk) de bestanden die al geà nstalleerd waren zou overschrijven met kopieën van zichzelf, zou u dan sudo make uninstallkunnen gebruiken.

een andere mogelijke aanpak, die ik je sterk ontmoedig om te doen, zou zijn om te proberen uit te vinden welke bestanden en mappen er in de installatie zijn gemaakt, en om te proberen alleen die bestanden en mappen te verwijderen, maar geen andere. Als u --prefix niet hebt doorgegeven aan ./bootstrap toen u cmake compileerde, installeerde het bestanden in /usr/local, maar het is niet het enige programma dat die map gebruikt. Het zou bestanden hebben geïnstalleerd in de verschillende submappen van /usr/local, zoals bin en lib (en anderen), dus afgezien van de situatie waarin u weet dat er niets anders is geïnstalleerd in /usr/local, vereist deze optie veel werk.

1 Het is gemakkelijk om verward te raken over het al dan niet verwijderen van CMake door sudo make uninstall uit te voeren, omdat, standaard, wanneer u CMake gebruikt om build scripts voor uw eigen software te maken, geen uninstall doel wordt gegenereerd, tenzij u er expliciet om vraagt. Echter, CMake zelf is ontworpen om gemakkelijk te worden verwijderd, en de broncode definieert die doelen verwijderen voor zichzelf. In de Makefile gegenereerd door het draaien van ./bootstrap kunt u zien:

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

u kunt ook zoeken naar uninstall ondersteuning in de CMakeLists.txt-bestand.

om zeker te zijn, heb ik dit Getest met CMake 3.9.0, en het werkt. Het uninstall doel wordt gegenereerd en het draaien van sudo make uninstall werkt om CMake te verwijderen.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.