TL;DR: fuss sudo make uninstall
a könyvtárban, ahol futott sudo make install
előtt.
ezt a módszert követte a CMake másik verziójának telepítésekor. Ez azt jelenti, hogy eltávolította az Ubuntu csomagkezelője által biztosított verziót, és manuálisan letöltötte, lefordította és telepítette a forráskódból.
feltételezve, hogy sikeresen követte ezeket az utasításokat, az Ubuntu csomagkezelője által biztosított CMake verzió (a cmake
csomagon keresztül) már eltávolításra került. Mivel a most telepített verziót nem az Ubuntu csomagkezelője biztosítja, hanem az a verzió, amelyet maga fordított és telepített, az sudo apt-get purge cmake
újbóli futtatása nem távolítja el.
mivel telepítette cmake
fordításával, majd futtatásával sudo make install
, a megoldás az, hogy:
- a
cd
gombbal térjen vissza abba a könyvtárba, ahol a parancsot futtatta. - Futtatás
sudo make uninstall
.
nem minden szoftver, hogy lehet telepíteni futtatásával make install
van egy megfelelő uninstall
cél hagyta futtatni make uninstall
eltávolítani. De a CMake támogatja ezt.1
ha törölte azt a mappát, amelyben a sudo make install
– et futtatta, vagy más módon megváltoztatta, akkor a legjobb megoldás az, ha újraépíti és újratelepíti (győződjön meg róla, hogy pontosan ugyanazt a verziót használja), hogy visszaállítsa a sudo make uninstall
futtatásának képességét. Ez azt jelenti, hogy ugyanazokat a telepítési lépéseket követi, kezdve ugyanattól a .tar.gz
fájltól, és ugyanazokat az opciókat adja át (ha van ilyen) a ./bootstrap
– nak. Ha csak futott ./bootstrap
argumentumok nélkül utána, hogy újra. A sudo make install
újbóli futtatása után, amely (ártalmatlanul) felülírja a már telepített fájlokat saját maguk másolataival, akkor használhatja a sudo make uninstall
fájlt.
egy másik lehetséges megközelítés, amelytől erősen visszatartom Önt, az lenne, ha megpróbálnánk kitalálni, hogy pontosan milyen fájlokat és könyvtárakat hoztak létre a telepítésben, és megpróbálnánk eltávolítani csak ezeket a fájlokat és könyvtárakat, de másokat nem. Ha a CMake fordításakor nem adta át a --prefix
– et ./bootstrap
– nak, akkor a fájlokat a /usr/local
fájlba telepítette, de nem ez az egyetlen program, amely ezt a könyvtárat használja. Fájlokat telepített volna a /usr/local
különböző alkönyvtáraiba, mint például a bin
és a lib
(és mások), így eltekintve attól a helyzettől, ahol semmi mást nem telepítettek a /usr/local
– ba, ez az opció sok munkát igényel.
1 könnyű összezavarodni abban, hogy el tudja-e távolítani a CMake-et a sudo make uninstall
futtatásával, mert alapértelmezés szerint, amikor a CMake-et használja a saját szoftver build szkriptjeinek létrehozásához, akkor nem jön létre uninstall
cél, kivéve, ha kifejezetten kéri. Azonban a CMake – et úgy tervezték, hogy könnyen eltávolítható legyen, és a forráskódja meghatározza ezeket az eltávolítási célokat. A Makefile
futásból generált ./bootstrap
láthatja:
#=============================================================================# 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
azt is keresni uninstall támogatást annak CMakeLists.txt fájl.
az biztos, hogy teszteltem ezt CMake 3.9.0, és működik. A uninstall
cél generálódik, és a sudo make uninstall
futtatása a CMake eltávolítására szolgál.