我想为我的应用程序提供一个
make install
目标,我想知道如何处理
安装应用程序后重命名文件。
我至少可以想到两个选择:
a) 如果我只是在
make install
期间将新文件复制到目标文件夹中,旧文件可能会保持安装状态(可能会导致问题)
b) 如果更新需要以前的
make uninstall
:用户应该启动 make uninstall
还是我应该将其添加到我的 make install
目标中?如果用户忘记了 make uninstall
我最终会遇到与 a) 中相同的问题
如何确保旧安装的文件确实被删除?
这对 SO 来说并不是一个合适的问题,因为它基本上是基于意见的。
然而,显而易见的答案是,您的新版本无法确保旧版本中的所有文件都消失了,因为新版本无法知道哪些文件是旧版本的一部分,除非您打算保留一个列表永久保留所有旧版本的内容。
相反,通常做的是,作为安装步骤的一部分,您还安装刚刚安装的版本的文件列表,然后当您为新版本运行
make install
时,您可以使用旧版本创建的列表它已安装,删除所有这些文件,或检查它们是否存在,如果存在,则告诉用户首先运行make uninstall
或类似的操作。
有时人们甚至安装 makefile 本身或其中的一部分,以便他们可以运行“旧”makefile 的
uninstall
目标。
这是软件包管理器将为您提供的一件事:它会记住所有已安装的文件并可以再次删除它们。但如果你愿意的话,你可以自己做。