当使用make install来升级软件包时,我应该先运行make for pre-existing软件包的卸载程序吗?

如果我不能运行先卸载,是典型的结果没有比简单地躺在没有使用的文件更糟?

如果给定的是,是普遍适用的答案,还是依赖于包? automake文档声明一个卸载目标被创build,但也许有例外。

谢谢

没有办法保证新版本的make卸载过程将使用您安装的版本来做正确的事情。 您还需要确保您的新旧版本具有相同的configuration选项。 它会做错事的风险太大了,特别是如果你是以root身份运行的话。

这是为什么为您的系统构build适当的软件包非常有用的众多原因之一。 创buildDebian或RPM软件包并不难,而且有像dh-make这样的工具,可以为您提供90%的工作,特别是基于autotools的软件包。 使用包装的优点是,当您升级时,您知道以前版本的文件都不会被安装,并且您知道包已经在您的系统上创build了哪些文件。 您还可以了解以前的软件包是如何构build的,并可以使用较新的版本重复构build。 如果您使用“./configure; make; make install”从源代码进行编译,那么您有可能会失去使用哪些选项的知识,使用了哪些进程,以及应用了哪些补丁。

这些优点绝对值得您花费大量的精力来学习打包自己的软件。

试图在强制从源代码安装时使用类似checkinstall的东西。 (它也可以构buildrpm / deb包)

同意David Pashleybuild筑适当的包裹是最好的方法。