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:
- użyj
cd
, aby wrócić do katalogu, w którym uruchomiłeś to polecenie. - 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.