问题 清理CMake已安装的文件


我使用CMake的“install”关键字将一些可执行文件/库放入系统路径。是否有内置机制来执行“distclean”之类的操作,删除所有已安装的文件?

无休止的谷歌搜索反复出现了回复的对话 总是 如果问题提到“cmake”和“cleanup”,请提及“rm -fr”,而不是更仔细地阅读。


13116
2017-11-12 04:42


起源



答案:


执行“make install”后应该有文件“install_manifest.txt”。 以下命令应该起作用:

cat install_manifest.txt | sudo xargs rm

13
2017-10-23 06:04



这会删除所有文件,但某些目录可能保持不变。 - hetepeperfan
实际上,我们不应该删除任何未由相应安装创建的目录,例如 /usr/local/bin,如果碰巧是那里安装的唯一东西。也许install_manifest.txt还不够...... - ateijelo
你可以通过这样做来改善这个想法 (cat install_manifest.txt; echo) | sudo sh -c 'while read i ; do rm "$i" ; rmdir --ignore-fail-on-non-empty -p "${i%/*}" ; done'。只要它们是空的,它就会处理所有目录。 - ateijelo
sudo make uninstall 通常工作 askubuntu.com/questions/944544/... - BugKiller


答案:


执行“make install”后应该有文件“install_manifest.txt”。 以下命令应该起作用:

cat install_manifest.txt | sudo xargs rm

13
2017-10-23 06:04



这会删除所有文件,但某些目录可能保持不变。 - hetepeperfan
实际上,我们不应该删除任何未由相应安装创建的目录,例如 /usr/local/bin,如果碰巧是那里安装的唯一东西。也许install_manifest.txt还不够...... - ateijelo
你可以通过这样做来改善这个想法 (cat install_manifest.txt; echo) | sudo sh -c 'while read i ; do rm "$i" ; rmdir --ignore-fail-on-non-empty -p "${i%/*}" ; done'。只要它们是空的,它就会处理所有目录。 - ateijelo
sudo make uninstall 通常工作 askubuntu.com/questions/944544/... - BugKiller