在运行

./configure --prefix=/mingw 

在我之前运行的一个库的MinGW/MSYS系统上

'./configure --prefix=/mingw && make && make install' 

我看到了这条信息:

警告:Vamp插件SDK的一个版本已经安装。如果您安装了新版本而没有先删除旧版本,那么您将会感到担忧和痛苦。(继续)

这让我很担心。“make install”的反义词是什么,即如何在Linux中卸载库?“清洁”能起作用吗,或者还有其他步骤吗?


当前回答

Make

Make是用来安装从源代码编译的程序的程序。它不是Linux包管理器,所以它不会跟踪它安装的文件。这使得之后很难卸载这些文件。

Make Install命令将构建的程序和包从makefile复制到库目录和指定位置。这些位置 可能会根据配置脚本执行的检查而有所不同。

CheckInstall

CheckInstall是用于安装或卸载从源代码编译的程序的程序。它监视并复制使用make程序安装的文件。它还使用Linux包管理器安装文件,这允许它像任何常规包一样卸载。

CheckInstall命令用于调用Make Install命令。它监视已安装的文件并从中创建一个二进制包。它还使用Linux包管理器安装二进制包。

将“source_location.deb”和“name”替换为屏幕截图中的信息。

在源包目录下执行以下命令:

安装CheckInstall sudo apt-get Install CheckInstall 执行配置脚本sudo ./ Configure 执行Make命令sudo Make 执行CheckInstall sudo CheckInstall命令 重新安装软件包sudo dpkg——install——force-overwrite source_location.deb 删除包sudo apt Remove name

这是我写的一篇文章,涵盖了整个过程的解释。

其他回答

Make可以告诉你它知道什么,它会做什么。 假设你有一个“install”目标,它执行如下命令:

cp <filelist> <destdir>/

在你的通用规则中,添加:

uninstall :; MAKEFLAGS= ${MAKE} -j1 -spinf $(word 1,${MAKEFILE_LIST}) install \
              | awk '/^cp /{dest=$NF; for (i=NF; --i>0;) {print dest"/"$i}}' \
              | xargs rm -f

一个类似的技巧可以做一个通用的使干净。

清除源代码/构建树中的任何中间文件或输出文件。然而,它只影响源代码/构建树;它不会触及文件系统的其余部分,因此不会删除先前安装的软件。

如果幸运的话,运行make uninstall就可以了。然而,这取决于图书馆的作者来提供;有些作者提供了卸载目标,有些则没有。

如果你不幸运,你将不得不手动卸载它。运行make -n install可能会很有帮助,因为它将显示软件安装自己所采取的步骤,但实际上不会执行任何操作。然后可以手动反转这些步骤。

“stow”实用程序就是用来解决这个问题的:http://www.gnu.org/software/stow/

Make

Make是用来安装从源代码编译的程序的程序。它不是Linux包管理器,所以它不会跟踪它安装的文件。这使得之后很难卸载这些文件。

Make Install命令将构建的程序和包从makefile复制到库目录和指定位置。这些位置 可能会根据配置脚本执行的检查而有所不同。

CheckInstall

CheckInstall是用于安装或卸载从源代码编译的程序的程序。它监视并复制使用make程序安装的文件。它还使用Linux包管理器安装文件,这允许它像任何常规包一样卸载。

CheckInstall命令用于调用Make Install命令。它监视已安装的文件并从中创建一个二进制包。它还使用Linux包管理器安装二进制包。

将“source_location.deb”和“name”替换为屏幕截图中的信息。

在源包目录下执行以下命令:

安装CheckInstall sudo apt-get Install CheckInstall 执行配置脚本sudo ./ Configure 执行Make命令sudo Make 执行CheckInstall sudo CheckInstall命令 重新安装软件包sudo dpkg——install——force-overwrite source_location.deb 删除包sudo apt Remove name

这是我写的一篇文章,涵盖了整个过程的解释。

根据makefile/configure脚本/autofoo魔法的问题,下面可能会解决你的问题:

make uninstall

问题是,您应该在已安装版本的源树上执行此操作,并使用与安装时完全相同的配置。