“ make install”的反义词是什么,即如何在Linux中卸载库?

白昼怎懂夜的黑 提交于 2020-02-27 07:31:02

在跑步的时候

./configure --prefix=/mingw 

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

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

我遇到了此消息:

警告:已经安装了Vamp插件SDK版本。 如果安装新版本而不先删除旧版本,请担心。 (续)

这让我担心。 “ make install”的反义词是什么,即如何在Linux中卸载库? “清洁”会完成这项工作吗,还是有其他步骤涉及?


#1楼

取决于所讨论程序的makefile / configure脚本/ autofoo魔术程度,以下内容可能会解决您的问题:

make uninstall

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


#2楼

make clean通常仅清除包含源代码本身的目录中的已构建文件,而很少接触任何已安装的软件。

Makefile通常不包含卸载目标-通常,您必须自己完成操作,方法是从安装文件的目录中删除文件。 例如,如果您构建了一个程序并将其安装(使用make installmake install/usr/local ,则需要浏览/usr/local/bin/usr/local/libexec/usr/local/share/man等,然后删除不需要的文件。 有时,Makefile包含uninstall目标,但并非总是如此。

当然,通常在Linux系统上,您可以使用软件包管理器来安装软件,该软件包管理器能够“自动”卸载软件。


#3楼

不幸的是,没有标准,这是从源代码安装的风险之一。 一些Makefile会包含“卸载”,因此

make uninstall

从源目录中可能有效。 否则,可能需要手动撤消make install所做的任何事情。

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


#4楼

make clean从源代码/构建树中删除所有中间文件或输出文件。 但是,它仅影响源代码/构建树。 它不会接触文件系统的其余部分,因此不会删除以前安装的软件。

如果幸运的话,可以运行make uninstall 。 但是,这取决于图书馆的作者。 有些作者提供了uninstall目标,而另一些则没有。

如果您不走运,则必须手动将其卸载。 运行make -n install可能会有所帮助,因为它将显示该软件自行安装但实际上不会执行任何操作的步骤。 然后,您可以手动撤消这些步骤。


#5楼

如果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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!