TL; DR: kör sudo make uninstall
i katalogen där du körde sudo make install
tidigare.
du följde den här metoden för att installera en annan version av CMake. Det vill säga att du avinstallerade versionen från Ubuntus pakethanterare och manuellt laddade ner, kompilerade och installerade den själv från källkoden.
förutsatt att du kunde följa dessa instruktioner framgångsrikt, är versionen av CMake som tillhandahålls av Ubuntus pakethanterare (via paketet cmake
) redan avinstallerad. Eftersom den version som du har installerat nu inte tillhandahålls av Ubuntus pakethanterare, utan istället den version du sammanställde och installerade själv, kör sudo apt-get purge cmake
igen tar inte bort den.
eftersom du installerade cmake
genom att kompilera den och sedan köra sudo make install
, är lösningen för dig att:
- använd
cd
för att gå tillbaka till katalogen där du körde det kommandot. - kör
sudo make uninstall
.
inte all programvara som kan installeras genom att köra make install
har ett motsvarande uninstall
mål som låter dig köra make uninstall
för att ta bort det. Men CMake stöder detta.1
om du har raderat mappen där du körde sudo make install
eller på annat sätt ändrat den, är det bästa sättet att bygga om och installera om det (var noga med att använda exakt samma version) för att få tillbaka möjligheten att köra sudo make uninstall
. Det vill säga att du skulle följa samma installationssteg, från samma .tar.gz
– fil och passera alla samma alternativ som du använde (om någon) till ./bootstrap
. Om du bara sprang ./bootstrap
utan argument efter det, gör det igen. Efter att ha kört sudo make install
igen, vilket (ofarligt) skulle skriva över filerna som redan var installerade med kopior av sig själva, skulle du då kunna använda sudo make uninstall
.
ett annat möjligt tillvägagångssätt, som jag starkt avskräcker dig från att göra, skulle vara att försöka lista ut exakt vilka filer och kataloger som skapades i installationen och att försöka ta bort bara dessa filer och kataloger men inga andra. Om du inte passerade --prefix
till ./bootstrap
när du sammanställde CMake installerade Den filer i /usr/local
, men det är inte det enda programmet som använder den katalogen. Det skulle ha installerat filer i de olika underkatalogerna /usr/local
, till exempel bin
och lib
(och andra), så bortsett från situationen där du vet att inget annat installerades i /usr/local
, kräver det här alternativet mycket arbete.
1 Det är lätt att bli förvirrad om huruvida du kan avinstallera CMake genom att köra sudo make uninstall
eftersom, som standard, när du använder CMake för att skapa bygga skript för din egen programvara, ingen uninstall
mål genereras om du inte uttryckligen be om en. CMake själv är dock utformad för att enkelt avinstalleras, och dess källkod definierar dessa avinstallationsmål för sig själv. I Makefile
som genereras från att köra ./bootstrap
kan du se:
#=============================================================================# 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
du kan också söka efter avinstallationsstöd i dess CMakeLists.txt-fil.
för att vara säker testade jag detta med CMake 3.9.0, och det fungerar. Målet uninstall
genereras och kör sudo make uninstall
fungerar för att avinstallera CMake.