jak odstraním CMake po instalaci ze zdroje?

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:

  1. použijte cd pro návrat do adresáře, kde jste spustili tento příkaz.
  2. 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.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.