不幸的是,没有标准,这是从源代码进行安装的危险之一。一些Makefile会包含“卸载”,因此
正在运行时
./configure --prefix=/mingw
在我以前运行的库的MinGW / MSYS系统上,>
'./configure --prefix=/mingw && make && make install'
我遇到此消息:
警告:已经安装了Vamp插件SDK版本。如果安装新版本而不先删除旧版本,请担心。 (继续)
这让我担心。 “ make install”的反义词是什么,即如何在Linux中卸载库? “清洁”会完成这项工作,还是涉及其他步骤?
[在我以前运行过的库的MinGW / MSYS系统上运行./configure --prefix = / mingw时,我碰到了这个问题...] [/ configure --prefix = / mingw && make && make install'] >
make clean
从您的源代码/构建树中删除任何中间文件或输出文件。但是,它仅影响源代码/构建树。它不会接触文件系统的其余部分,因此不会删除以前安装的软件。
[如果您很幸运,可以运行make uninstall
。但是,这取决于图书馆的作者。一些作者提供了uninstall
目标,而其他作者则没有。
如果您不走运,则必须手动将其卸载。运行make -n install
可能会有所帮助,因为它将显示该软件自行安装但实际上不做任何事情的步骤。然后,您可以手动撤消这些步骤。
Make
可以告诉您它知道什么以及它将做什么。假设您有一个“安装”目标,该目标执行以下命令:
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
前言
以下内容可能会起作用,也可能不会起作用,这一切都是按原样给出的,只有在出现某些损坏,数据丢失等情况时,您和您才是负责人。但我希望一切顺利!
如果sudo make uninstall
不可用:
在基于Debian的系统中,代替(或在*之后)进行make install
,您可以运行sudo checkinstall
来制作自动安装的.deb
文件。然后,您可以使用系统包管理器将其删除(例如apt
/synaptic
/aptitude
/ dpkg
)。 Checkinstall
如果您有一个manifest
文件,其中列出了与make install
一起安装的所有文件,则可以运行我从另一个答案中获得的此命令:
cat install_manifest.txt | xargs echo rm | sh
根据所讨论程序的makefile / configure脚本/ autofoo魔术程度,以下可能会解决您的问题:
make uninstall
[make clean
通常只清除包含源代码本身的目录中的构建文件,而很少接触任何已安装的软件。
Makefile通常不包含卸载目标-通常,您必须自己完成操作,方法是从安装文件的目录中删除文件。例如,如果您构建了一个程序并将其(使用make install
)安装到/usr/local
中,则需要浏览/usr/local/bin
,/usr/local/libexec
,/usr/local/share/man
等,然后删除不需要的文件。有时,一个Makefile包含一个uninstall
目标,但并非总是如此。
当然,通常在Linux系统上,您可以使用软件包管理器
安装软件,该软件能够“自动”卸载软件。“ stow”实用程序旨在解决此问题:http://www.gnu.org/software/stow/
不幸的是,没有标准,这是从源代码进行安装的危险之一。一些Makefile会包含“卸载”,因此
make uninstall
从源目录可能有效。否则,可能是手动撤消make install
所做的任何事情。
[make clean
通常只清理源目录-删除生成/编译的文件等,可能不是您想要的。
不幸的是,没有标准,这是从源代码进行安装的危险之一。一些Makefile会包含“卸载”,因此
我知道很少有支持“进行卸载”的软件包,但更多支持分阶段安装的软件包都可以进行make install DESTDIR = xxx“。
您可以使用它来创建要安装的软件包,而不是直接从源代码安装。我没有用checkinstall运气,但是fpm效果很好。
这还可以帮助您删除以前使用make install
安装的软件包。您只需将构建的软件包强行安装在已安装的make软件包上,然后将其卸载。