如何卸载从源代码构建和安装的软件? (使用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 的描述删除所有文件