hogyan távolíthatom el a CMake-et, miután telepítettem a forrásból?

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:

  1. a cd gombbal térjen vissza abba a könyvtárba, ahol a parancsot futtatta.
  2. 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 uninstallfá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.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.