在运行

./configure --prefix=/mingw 

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

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

我看到了这条信息:

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

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


当前回答

不幸的是,没有标准,这是从源代码安装的危险之一。一些makefile文件将包含“卸载”,因此

make uninstall

从源目录可以工作。否则,可能需要手动撤销make install所做的一切。

Make clean通常只是清理源目录-删除生成/编译的文件之类的,可能不是你想要的。

其他回答

如果sudo make uninstall不可用:

在基于Debian的系统中,你可以运行sudo checkinstall来生成一个自动安装的.deb文件,而不是(或在*之后)执行make install。然后,您可以使用系统包管理器(例如apt/synaptic/aptitude/dpkg)删除它。Checkinstall还支持创建其他类型的包,例如RPM。

参见http://community.linuxmint.com/tutorial/view/162和一些基本的checkinstall用法和debian checkinstall包。


*:如果你是在安装了make install后阅读这篇文章,你仍然可以按照上面的说明,然后执行dpkg -r $PACKAGE_NAME_YOU_CHOSEN。

方法1

从源文件夹:

#让卸载

方法2

如果没有卸载步骤:

打开install_manifest.txt(由#make install创建) 删除所有列出的目录/文件 删除您遗漏的所有剩余文件: #xargs rm < install_manifest.txt 删除所有隐藏目录/文件: $rm -rf ~/.packagename

删除源文件夹。

方法3

如果以上选项都无效,请查看安装过程:

#make -n install

并反转安装过程:

#rm -rf创建的所有目录/文件

例子

例如,这是如何从源代码卸载nodejs, npm和nvm:

如何完全卸载Node.js,重新安装(Mac OS X)

你可以使用上面的任何一种方法。

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文件将包含“卸载”,因此

make uninstall

从源目录可以工作。否则,可能需要手动撤销make install所做的一切。

Make clean通常只是清理源目录-删除生成/编译的文件之类的,可能不是你想要的。

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