我有几个希望使用 rpm 部署的应用程序。我的应用程序部署中的某些文件会覆盖其他已部署包中的文件。简单地在部署包中包含新文件会导致 rpm 冲突。
我正在寻找使用 rpm 更新/替换已安装文件的正确方法。
我已经提出了一些解决方案,但似乎没有什么是完全正确的。
- 维护包含原始文件的自定义版本的 rpm。
尽管与其他一些可能的解决方案相比,这看起来不像是黑客攻击,但这似乎是一项相对较小回报的大量工作。
- 将 rpm 中的文件包含在另一个名称中,然后将它们复制到帖子部分。
这会起作用,但意味着会在系统中乱扔文件的多个副本。这也意味着每个文件的 rpm 构建规范中的额外维护。
- 在 post 部分使用 wget 替换来自某些已知服务器的原始文件。
这类似于复制技术,但文件甚至不会存在于 rpm 中。不过,这可能就像一个很好的中央配置机构。
- 将文件部署为新文件,然后使用符号链接覆盖原始文件。
这也类似于复制技术,但更简洁。这里的问题是某些文件不像符号链接那样表现得很好。