用新版本更新手动编译的unix程序?

我想更新我以前手动编译到/ opt的程序版本。 我可以编译新版本,让它覆盖以前的安装(假设没有兼容性问题)还是这种不好的做法?

我在完全备份的服务器上执行此操作; 所以最糟糕的是我可以重新形象。

我可以编译新版本,让它覆盖以前的安装(假设没有兼容性问题)还是这种不好的做法?

是的,你应该很好。 二进制文件总是被覆盖,有时是由于手动编译的软件包,但是由于yum / apt /等原因更频繁。 二进制包更新。

这真的取决于程序和版本之间的差异,以及它的安装过程是如何工作的。 例如,如果您使用不同的设置对其进行了configuration,导致在支持外部dynamic模块(Apache,heartbeat,ProFTPd等)的程序中生成了不同的模块集,则目录中可能还有模块这是build立在旧版本之上的。

根据安装过程,configuration文件也可能被覆盖或者新的configuration文件未被写入。 这经常让我用postfix来困扰,在master.cf中需要新的服务,但是Postfix有用地提供了一个工具来修复这些实例。

就个人而言,在我手动安装软件(而不是使用分发软件包)的罕见情况下,我试图让它们进入基于版本的命名目录,然后创build一个从通用名称到具体名称的符号链接。 这样我就可以将新版本安装到一个全新的目录中。 否则,将旧目录移开可能是一个好主意,比如将其重命名为“.old”,然后重新安装。

通常是的。 生成文件可能会提供一个“干净的”选项来卸载旧的二进制文件。

如果您打算经常这样做 – 学习如何构build适当的包,并使用package-install-options来安装/更新到新版本或发行版。