jak usunąć CMake po zainstalowaniu go ze źródła?

TL;DR: Uruchom sudo make uninstall w katalogu, w którym wcześniej uruchomiłeś sudo make install.

zastosowałeś tę metodę instalacji innej wersji CMake. Oznacza to, że odinstalowałeś wersję dostarczoną przez menedżera pakietów Ubuntu i ręcznie pobrałeś, skompilowałeś i zainstalowałeś ją samodzielnie z kodu źródłowego.

zakładając, że udało ci się wykonać te instrukcje pomyślnie, Wersja CMake dostarczona przez menedżera pakietów Ubuntu (za pośrednictwem pakietu cmake) jest już odinstalowana. Ponieważ wersja, którą teraz zainstalowałeś, nie jest dostarczana przez menedżera pakietów Ubuntu, ale zamiast tego Wersja skompilowana i zainstalowana samodzielnie, ponowne uruchomienie sudo apt-get purge cmake nie usuwa jej.

ponieważ zainstalowałeś cmake, kompilując go, a następnie uruchamiając sudo make install, rozwiązanie jest dla Ciebie:

  1. użyj cd, aby wrócić do katalogu, w którym uruchomiłeś to polecenie.
  2. Uruchom sudo make uninstall.

nie wszystkie programy, które można zainstalować, uruchamiając make install, mają odpowiedni cel uninstall, pozwalający uruchomić make uninstall, aby go usunąć. Ale CMake to popiera.1

jeśli usunąłeś folder, w którym uruchomiłeś sudo make install, lub w inny sposób go zmieniłeś, najlepiej jest go odbudować i ponownie zainstalować (pamiętaj, aby użyć dokładnie tej samej wersji), aby odzyskać możliwość uruchamiania sudo make uninstall. Oznacza to, że wykonasz te same kroki instalacji, zaczynając od tego samego pliku .tar.gz i przekazując wszystkie te same opcje, których użyłeś (jeśli w ogóle) do ./bootstrap. Jeśli po prostu uruchomiłeś ./bootstrap bez argumentów po tym, zrób to jeszcze raz. Po ponownym uruchomieniu sudo make install, które zastąpiłoby (nieszkodliwie) pliki, które zostały już zainstalowane, z ich kopiami, będziesz mógł użyć sudo make uninstall.

innym możliwym podejściem, do którego zdecydowanie odradzam, byłoby spróbowanie dowiedzieć się dokładnie, jakie pliki i katalogi zostały utworzone w instalacji i spróbować usunąć tylko te pliki i katalogi, ale żadnych innych. Jeśli nie przekazałeś --prefix do ./bootstrap podczas kompilacji CMake, to zainstalował pliki w /usr/local, ale nie jest to jedyny program, który używa tego katalogu. Zainstalowałby pliki w różnych podkatalogach /usr/local, takich jak bin i lib (i inne), więc poza sytuacją, w której wiesz, że nic innego nie zostało zainstalowane w /usr/local, ta opcja wymaga dużo pracy.

1 łatwo jest pomylić się, czy można odinstalować CMake, uruchamiając sudo make uninstall, ponieważ domyślnie, gdy używasz CMake do tworzenia skryptów kompilacji dla własnego oprogramowania, nie jest generowany cel uninstall, chyba że wyraźnie o niego poprosisz. Jednak sam CMake został zaprojektowany tak, aby można go było łatwo odinstalować, a jego kod źródłowy definiuje te cele deinstalacyjne dla siebie. W Makefile wygenerowanym z działa ./bootstrap można zobaczyć:

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

możesz również wyszukać wsparcie odinstalowywania w CMakeLists.plik txt.

dla pewności przetestowałem to z CMake 3.9.0 i działa. Obiekt uninstall jest generowany i działa sudo make uninstall, aby odinstalować CMake.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.