cum pot elimina CMake după instalarea de la sursă?

TL;DR: rulați sudo make uninstall în directorul în care ați rulat sudo make install înainte.

ați urmat această metodă de instalare a unei versiuni diferite de CMake. Aceasta înseamnă că ați dezinstalat versiunea furnizată de managerul de pachete Ubuntu și ați descărcat-o manual, ați compilat-o și ați instalat-o singur din codul sursă.

presupunând că ați reușit să urmați aceste instrucțiuni cu succes, versiunea CMake furnizată de managerul de pachete Ubuntu (prin pachetul cmake) este deja dezinstalată. Deoarece versiunea pe care ați instalat-o acum nu este furnizată de managerul de pachete Ubuntu, ci în schimb versiunea pe care ați compilat-o și ați instalat-o, rulând sudo apt-get purge cmake din nou nu o elimină.

de când ați instalat cmake compilându-l și apoi rulând sudo make install, soluția este pentru dvs:

  1. utilizați cd pentru a reveni la directorul în care ați rulat acea comandă.
  2. rulați sudo make uninstall.

nu toate programele software care pot fi instalate rulând make install au o țintă uninstall corespunzătoare care vă permite să rulați make uninstall pentru a o elimina. Dar CMake susține acest lucru.1

dacă ați șters folderul în care ați rulat sudo make installsau l-ați schimbat în alt mod, atunci cel mai bun pariu este să îl reconstruiți și să îl reinstalați (asigurați-vă că utilizați exact aceeași versiune) pentru a recupera capacitatea de a rula sudo make uninstall. Adică, ați urma aceiași pași de instalare, pornind de la același fișier .tar.gz și trecând toate aceleași opțiuni pe care le-ați folosit (dacă există) la ./bootstrap. Dacă tocmai ați rulat ./bootstrap fără argumente după aceasta, faceți asta din nou. După rularea sudo make install din nou, care ar suprascrie (inofensiv) fișierele care au fost deja instalate cu copii ale lor, veți putea apoi să utilizați sudo make uninstall.

o altă abordare posibilă, pe care vă descurajez puternic să o faceți, ar fi să încercați să aflați exact ce fișiere și directoare au fost create în instalare și să încercați să eliminați doar acele fișiere și directoare, dar nu și altele. Dacă nu ați trecut --prefix la ./bootstrap când ați compilat CMake, atunci a instalat fișiere în /usr/local, dar nu este singurul program care folosește acel director. Ar fi instalat fișiere în diferitele subdirectoare ale /usr/local, cum ar fi bin și lib (și altele), astfel încât, în afară de situația în care știți că nimic altceva nu a fost instalat în /usr/local, această opțiune necesită multă muncă.

1 este ușor de a deveni confuz despre dacă este sau nu puteți dezinstala CMake prin rularea sudo make uninstall deoarece, în mod implicit, atunci când utilizați CMake pentru a crea script-uri construi pentru propriul software, nu uninstall țintă este generat dacă nu cere în mod explicit pentru unul. Cu toate acestea, CMake în sine este proiectat pentru a fi ușor dezinstalat, iar codul său sursă definește acele ținte de dezinstalare pentru sine. În Makefile generat din rularea ./bootstrap puteți vedea:

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

de asemenea, puteți căuta asistență pentru dezinstalare în CMakeLists.fișier txt.

pentru a fi sigur, Am testat acest lucru cu CMake 3.9.0, și funcționează. Obiectivul uninstall este generat și rulează sudo make uninstall funcționează pentru a dezinstala CMake.

Lasă un răspuns

Adresa ta de email nu va fi publicată.