3

我是在 linux 上编译和安装程序的新手。我理解常见的流程是做 ./configure

make

make install

我想知道如果我在某处犯错或出现问题,是否有某种方法可以“回滚”。

4

4 回答 4

4

同意其他答案,我想澄清一下。如果我的理解是正确的,通常./configure是一个脚本,可以确保/设置您的系统,以便编译能够正确进行。然后make运行一个实际编译的 Makefile。然后make install运行 ​​makefileinstall作为参数,它实际上将二进制文件和配置文件复制到适当的(由脚本作者确定)系统目录,这就是为什么经常make install必须以提升的权限运行的原因。

通常,make 脚本采用一个uninstall参数,该参数实际上会擦除复制到系统目录的所有内容。根据我的经验,这并不总是一个干净的过程。如果不确保自己完美跟踪所有更改并自己编写回滚脚本,就没有防火的回滚方式。

简而言之,尝试make uninstall如果这不起作用并且您自己无法弄清楚,请尝试在与特定产品相关的邮件列表或论坛上发帖。

编辑以获取更多信息:make只要您保持工作目录与您从哪里运行一样,只需运行即可获得运行程序所需的一切make。也就是说,make将创建您所有的二进制文件和配置文件等,您可以从该目录中使用该软件。但是,如果您不将内容复制到系统目录(例如使用make install. 因此,如果您只是想运行一个独立的二进制文件,而不是其他软件所依赖的软件,那么您实际上不需要运行make install,也不必担心回滚。一切都将包含在您的原始工作目录中。

于 2012-08-03T21:34:31.283 回答
2

如果make unistall没有成功,那么您必须自己删除文件(除非有 unistall 脚本。

避免所有混乱的一种好方法是checkinstall从源代码安装后使用。这样,它还将为您的系统创建一个包文件,这意味着您将能够从包管理器中卸载软件,例如apt-get remove my_software.

于 2012-08-03T21:31:07.973 回答
1

检查 Makefile 脚本是否有

make uninstall

目标。找到这些并不罕见。

否则,您可能需要检查东西的安装位置并拥有自己的退出脚本。

于 2012-08-03T21:27:10.777 回答
0

通常./configure接受各种参数。

所以假设你做了一个make然后make install意识到你想重新配置你的软件,你必须首先使用uninstall软件提供的脚本卸载它。

make uninstall也可以工作。

于 2012-08-03T21:30:14.410 回答