“make install”与之相反,即如何在Linux中卸载一个库?
在跑步的时候
./configure --prefix=/mingw
在MinGW / MSYS系统上,我以前运行过一个库
'./configure --prefix=/mingw && make && make install'
我遇到这个消息:
警告:已经安装了版本的Vamp插件SDK。 如果你安装一个新的版本,而不是先删除旧的版本,那么你会担心和忧虑。 (继续)
这让我担心。 什么是“安装”的相反,即如何在Linux中卸载图书馆? 将“干净”做这项工作,还是有其他步骤?
make clean
从您的源/构build树中删除任何中间或输出文件。 但是,它只影响源/构build树; 它不会触及文件系统的其余部分,因此不会删除以前安装的软件。
如果你幸运的话,运行make uninstall
将工作。 然而,这是由图书馆的作者来提供的。 有些作者提供uninstall
目标,有些则不提供。
如果你不幸运,你将不得不手动卸载它。 运行make -n install
会很有帮助,因为它会显示软件将自行安装的步骤,但实际上并不会执行任何操作。 然后您可以手动反转这些步骤。
如果sudo make uninstall
不可用:
在基于Debian的系统中,您可以运行sudo checkinstall
来创build一个自动安装的.deb
文件,而不是进行make install
。 然后您可以使用系统软件包pipe理器(例如apt
/ synaptic
/ aptitude
/ dpkg
)将其删除。 Checkinstall还支持创build其他types的包,例如RPM。
另请参阅http://community.linuxmint.com/tutorial/view/162以及一些基本的checkinstall用法和debian checkinstall软件包 。
如果你有一个manifest
文件列出所有使用make install
的文件,你可以运行这个命令,我从另一个答案:
cat install_manifest.txt | xargs echo rm | sh
如果你有sudo make install
你将需要添加一个sudo到你的卸载:
cat install_manifest.txt | xargs echo sudo rm | sh
根据问题的程序的makefile / configure脚本/ autofoo魔法的效果如何,以下内容可能会解决您的问题:
make uninstall
问题是你应该在你已经安装的版本的源代码树上执行这个,并且使用和你安装时一样的configuration。
make clean
通常只会清除包含源代码本身的目录中的内置文件,而很less涉及任何已安装的软件。
Makefiles一般不包含卸载目标 – 通常你必须自己去做,通过从安装目录中删除文件。 例如,如果你build立了一个程序并将它(使用make install
) make install
到/usr/local
,你需要查看/usr/local/bin
, /usr/local/libexec
, /usr/local/share/man
等,并删除不需要的文件。 有时一个Makefile包含一个uninstall
目标,但并不总是如此。
当然,通常在Linux系统上使用软件包pipe理器来安装软件,软件能够“自动”地卸载软件。
“stow”实用程序旨在解决此问题: http : //www.gnu.org/software/stow/
不幸的是没有标准,这是从源代码安装的危险之一。 一些Makefiles将包括一个“卸载”,所以
make uninstall
从源代码目录可能工作。 否则,可能是手动撤销make install
所做的任何事情。
make clean
通常只是清理源码目录 – 删除生成/编译的文件之类的东西,可能不是你在做什么。