我是在 linux 上编译和安装程序的新手。我理解常见的流程是做
./configure
make
make install
我想知道如果我在某处犯错或出现问题,是否有某种方法可以“回滚”。
我是在 linux 上编译和安装程序的新手。我理解常见的流程是做
./configure
make
make install
我想知道如果我在某处犯错或出现问题,是否有某种方法可以“回滚”。
同意其他答案,我想澄清一下。如果我的理解是正确的,通常./configure
是一个脚本,可以确保/设置您的系统,以便编译能够正确进行。然后make
运行一个实际编译的 Makefile。然后make install
运行 makefileinstall
作为参数,它实际上将二进制文件和配置文件复制到适当的(由脚本作者确定)系统目录,这就是为什么经常make install
必须以提升的权限运行的原因。
通常,make 脚本采用一个uninstall
参数,该参数实际上会擦除复制到系统目录的所有内容。根据我的经验,这并不总是一个干净的过程。如果不确保自己完美跟踪所有更改并自己编写回滚脚本,就没有防火的回滚方式。
简而言之,尝试make uninstall
如果这不起作用并且您自己无法弄清楚,请尝试在与特定产品相关的邮件列表或论坛上发帖。
编辑以获取更多信息:make
只要您保持工作目录与您从哪里运行一样,只需运行即可获得运行程序所需的一切make
。也就是说,make
将创建您所有的二进制文件和配置文件等,您可以从该目录中使用该软件。但是,如果您不将内容复制到系统目录(例如使用make install
. 因此,如果您只是想运行一个独立的二进制文件,而不是其他软件所依赖的软件,那么您实际上不需要运行make install
,也不必担心回滚。一切都将包含在您的原始工作目录中。
如果make unistall
没有成功,那么您必须自己删除文件(除非有 unistall 脚本。
避免所有混乱的一种好方法是checkinstall
从源代码安装后使用。这样,它还将为您的系统创建一个包文件,这意味着您将能够从包管理器中卸载软件,例如apt-get remove my_software
.
检查 Makefile 脚本是否有
make uninstall
目标。找到这些并不罕见。
否则,您可能需要检查东西的安装位置并拥有自己的退出脚本。
通常./configure
接受各种参数。
所以假设你做了一个make
然后make install
意识到你想重新配置你的软件,你必须首先使用uninstall
软件提供的脚本卸载它。
make uninstall
也可以工作。