TL; DR: spusťte sudo make uninstall
v adresáři, kde jste dříve spustili sudo make install
.
postupovali jste podle této metody instalace jiné verze CMake. To znamená, že jste odinstalovali verzi poskytovanou správcem balíčků Ubuntu a ručně ji stáhli, zkompilovali a nainstalovali sami ze zdrojového kódu.
za předpokladu, že jste byli schopni tyto pokyny úspěšně dodržovat, je verze CMake poskytovaná správcem balíčků Ubuntu (prostřednictvím balíčku cmake
) již odinstalována. Protože verze, kterou jste nyní nainstalovali, není poskytována správcem balíčků Ubuntu, ale místo toho verze, kterou jste zkompilovali a nainstalovali sami, spuštěná sudo apt-get purge cmake
znovu ji neodstraní.
protože jste nainstalovali cmake
kompilací a spuštěním sudo make install
, řešení je pro vás:
- použijte
cd
pro návrat do adresáře, kde jste spustili tento příkaz. - spustit
sudo make uninstall
.
ne veškerý software, který lze nainstalovat spuštěním make install
, má odpovídající cíl uninstall
, který vám umožní spustit make uninstall
a odstranit jej. Ale CMake to podporuje.1
pokud jste odstranili složku, ve které jste spustili sudo make install
, nebo ji jinak změnili, pak je nejlepší ji znovu sestavit a znovu nainstalovat (nezapomeňte použít přesně stejnou verzi), abyste získali zpět možnost Spustit sudo make uninstall
. To znamená, že budete postupovat podle stejných instalačních kroků, počínaje stejným souborem .tar.gz
a předáním všech stejných možností, které jste použili (pokud existují) na ./bootstrap
. Pokud jste právě spustili ./bootstrap
bez argumentů, udělejte to znovu. Po opětovném spuštění sudo make install
, které by (neškodně) přepsalo soubory, které již byly nainstalovány, s jejich kopiemi, pak byste mohli použít sudo make uninstall
.
dalším možným přístupem, od kterého vás důrazně odrazuji, by bylo pokusit se zjistit, jaké soubory a adresáře byly v instalaci vytvořeny, a pokusit se odstranit pouze tyto soubory a adresáře, ale žádné jiné. Pokud jste při kompilaci CMake nepředali --prefix
./bootstrap
, nainstalovali soubory v /usr/local
, ale není to jediný program, který tento adresář používá. Nainstaloval by soubory do různých podadresářů /usr/local
, například bin
a lib
(a dalších), takže kromě situace, kdy víte, že do /usr/local
nebylo nainstalováno nic jiného, vyžaduje tato volba hodně práce.
1 je snadné se zmást, zda můžete CMake odinstalovat spuštěním sudo make uninstall
, protože ve výchozím nastavení, když používáte CMake k vytváření skriptů pro svůj vlastní software, není generován cíl uninstall
, pokud o něj výslovně nepožádáte. Samotný CMake je však navržen tak, aby byl snadno odinstalován, a jeho zdrojový kód definuje tyto cíle odinstalace pro sebe. V Makefile
generovaném ze spuštění ./bootstrap
můžete vidět:
#=============================================================================# 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
můžete také vyhledat podporu odinstalace v jejích CMakeLists.txt soubor.
pro jistotu jsem to testoval s CMake 3.9.0, a funguje to. Cíl uninstall
je generován a spuštěn sudo make uninstall
pracuje na odinstalování CMake.