【发布时间】:2012-08-03 21:24:35
【问题描述】:
我是在 linux 上编译和安装程序的新手。我理解常见的流程是做
./configure
make
make install
我想知道如果我在某处出错或出现问题,是否有某种方法可以“回滚”。
【问题讨论】:
标签: linux installation
我是在 linux 上编译和安装程序的新手。我理解常见的流程是做
./configure
make
make install
我想知道如果我在某处出错或出现问题,是否有某种方法可以“回滚”。
【问题讨论】:
标签: linux installation
同意其他答案,我想澄清一下。如果我的理解是正确的,通常./configure 是一个脚本,可以确保/设置您的系统,以便编译能够正确进行。然后make 运行一个实际编译的 Makefile。然后make install 运行带有install 作为参数的makefile,实际上将您的二进制文件和配置文件复制到适当的(由脚本作者确定)系统目录,这就是为什么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 也可以工作。
【讨论】: