如何在“make install”后卸载
方法#1(制作卸载)
第1步:如果您以任何方式删除/更改了构建目录,则只需要遵循此步骤:下载和制作/制作安装,使用与前面完全相同的过程。
步骤2:尝试使卸载。
cd $SOURCE_DIR
sudo make uninstall
如果成功,您就完成了。如果你是偏执狂,你也可以尝试“方法#3”的步骤,以确保使卸载没有遗漏任何文件。
方法2 (checkinstall—仅适用于基于debian的系统)
流程概述
在基于debian的系统中(例如Ubuntu),你可以通过使用名为checkinstall的工具很容易地创建.deb包。然后安装.deb包(这将使debian系统意识到包的所有部分确实已经安装),最后卸载它,让包管理器正确地清理系统。
一步一步
sudo apt-get -y install checkinstall
cd $SOURCE_DIR
sudo checkinstall
此时checkinstall将提示输入包名。输入一些描述性的内容并记录下来,因为您马上就会用到它。它还会提示输入一些您可以忽略的数据。如果它抱怨版本不能被接受,那就输入一个合理的版本,比如1.0。当它完成时,你可以安装和卸载:
sudo dpkg -i $PACKAGE_NAME_YOU_ENTERED
sudo dpkg -r $PACKAGE_NAME_YOU_ENTERED
方法#3 (install_manifest.txt)
如果源目录中存在一个文件install_manifest.txt,它应该包含安装创建的每个文件的文件名。
所以首先检查文件列表和它们的mod-time:
cd $SOURCE_DIR
sudo xargs -I{} stat -c "%z %n" "{}" < install_manifest.txt
您应该得到零错误,所列文件的mod-times应该在安装时间或安装时间之后。如果一切正常,你可以一次性删除它们:
cd $SOURCE_DIR
mkdir deleted-by-uninstall
sudo xargs -I{} mv -t deleted-by-uninstall "{}" < install_manifest.txt
然而,用户Merlyn Morgan-Graham对于这种方法有一个你应该记住的严肃注意事项(在这里逐字复制):“小心那些可能也被其他包安装的文件。只需删除这些文件[…]可能会破坏其他的包裹。”这就是为什么我们创建了delete -by-uninstall目录,并将文件移动到那里,而不是删除它们。
这篇文章99%的内容都存在于其他答案中。我只是将所有有用的东西收集在一个(希望)易于遵循的操作指南中,并试图对重要的细节给予额外的关注(比如引用xarg参数和备份已删除的文件)。