我对在Linux上编译和安装程序很陌生。我了解常见的流程是这样的:
./configure
make
make install
我想知道如果我犯了错误或者出现问题,是否有一种“回滚”的方法。
我对在Linux上编译和安装程序很陌生。我了解常见的流程是这样的:
./configure
make
make install
我想知道如果我犯了错误或者出现问题,是否有一种“回滚”的方法。
./configure
是一个脚本,用于确保/设置您的系统,以便编译可以正确进行。然后make
运行实际编译的Makefile。然后make install
使用install
作为参数运行makefile,实际上将二进制文件和配置文件复制到适当(由脚本作者确定)的系统目录中,这就是为什么经常需要使用提升的特权运行make install
的原因。uninstall
参数,实际上删除了复制到系统目录的所有内容。根据我的经验,这并不总是一个干净的过程。除非确保所有更改都被完美跟踪并自己编写回滚脚本,否则没有绝对可靠的回滚方法。make uninstall
,如果这不起作用并且您自己无法解决问题,请尝试在与所讨论产品相关的邮件列表或论坛上发布消息。make
,就可以获得运行程序所需的所有内容,只要您将工作目录保持为运行make
的位置即可。也就是说,make
将创建所有二进制文件和配置文件等,您可以从该目录使用软件。如果不将东西复制到系统目录中,例如使用make install
,则您将没有任何全局可访问的二进制文件或适当的环境变量。因此,如果您只是尝试运行一个不是其他软件依赖的自包含二进制文件,则实际上不需要运行make install
,也不必担心回滚。一切都包含在您的原始工作目录中。make unistall
无法解决问题,那么您就需要自行删除文件(除非有一个卸载脚本)。checkinstall
来避免所有混乱。这样它还会为您的系统创建一个软件包文件,这意味着您将能够从包管理器中卸载软件,如apt-get remove my_software
。检查 Makefile 脚本是否有
make uninstall
目标。发现这些并不罕见。
否则,您可能需要检查安装位置并编写自己的回退脚本。
./configure
命令会接受各种参数。make
和 make install
命令,并意识到需要重新配置软件,那么您需要首先使用该软件提供的 uninstall
脚本卸载软件。
make uninstall
命令也可能生效。