卸载从源代码构建的软件

卸载从源代码构建的软件

如何卸载从源代码构建和安装的软件? (使用make install?)

答案1

请问源码包还在吗?您可以解析 Makefile 以获取安装命令,也可以再次安装它(使用另一个$PREFIX)以捕获已安装文件的列表。此外,它还被打印到 STDOUT。然后,您可以从最初安装这些文件的目录中删除这些文件。

编辑:

我刚刚挖出了有关制作卸载程序脚本的笔记。请耐心等待,我在这里解释一下。

构建并安装到临时目标目录后,请执行以下操作。 ($PREFIX你用过的东西在哪里./configure。)

cd $PREFIX
find . -type f | cut -b 1 --complement | sed 's/^/rm -f \/usr\/local/g' > uninstall.sh
find . -type d | cut -b 1 --complement | sed 's/^/rmdir --ignore-fail-on-non-empty \/usr\/local/g' >> uninstall.sh

输出将如下所示:

rm -f /usr/local/lib/somelib.so
rm -f /usr/local/bin/somebin
rm -f /usr/local/include/someapp/someheaders.h
rmdir --ignore-fail-on-non-empty /usr/local/share
rmdir --ignore-fail-on-non-empty /usr/local/bin
rmdir --ignore-fail-on-non-empty /usr/local/include/someapp
...

这实际上并不会删除关键系统目录(/usr/local/bin等),因为它们将是非空的。此外,您还需要确认您的./configure脚本使用/usr/local默认$PREFIX.sed根据需要调整命令。

答案2

我检查了 php 版本 5.4.16

cd php-5.4.16

使干净
清理所有

查找/-名称 php

rm -fr /usr/local/php /usr/local/lib/php /usr/local/bin/php /usr/local/include/php

其中 {php-config,phpize,php-cgi}
rm /usr/local/bin/php-config /usr/local/bin/phpize /usr/local/bin/php-cgi

其中 {pear,peardev}
rm /usr/local/bin/pear

rm /usr/local/bin/peardev


为什么我选择 phpize 和 php-config
因为在 ./configure 之后我得到了这个输出

config.status:创建 php5.spec
config.status:创建 main/build-defs.h
config.status:创建脚本/phpize
config.status:创建脚本/man1/phpize.1
config.status:创建脚本/php-config
config.status:创建脚本/man1/php-config.1
config.status:创建 sapi/cli/php.1
config.status:创建 main/php_config.h

答案3

你可以尝试暴力破解:

执行 afind / > /tmp/all_files并保存到文件all_files。 (如果您知道这些文件不存在,则排除 sysfs 和 procfs 以及其他文件)

执行 arpm -qa | xargs rpm -al > /tmp/all_owned_files以获取 rpm“拥有”的所有文件的列表。 (假设这是基于 rpm 的系统,对于非 rpm 系统使用其他命令)

对这两个文件进行比较,然后进行梳理。

答案4

检查源目录中的命令

使干净

清理所有

或者您必须按照 Aaron 的描述删除所有文件

相关内容