将以rpm安装的文件复制到其他位置可以吗?

我有一个脚本我用来安装一些RPM在我的docker图像,如下所示。

yumdownloader common-jars-${RELEASE_VERSION} \ test-jars-${RELEASE_VERSION} \ rpm -ivh --force --nodeps --prefix /usr/local/integrations *rpm && \ rm -rf *.rpm && \ rm -rf /var/lib/yum/yumdb 

这会导致每个rpm文件的内容被加载到/usr/local/integrations

后来将/usr/local/integrations的内容复制到另一个目录并在那里使用它们有什么问题吗? 我担心的是, rpm -i命令可能会在常规cp无法解释的覆盖范围内做一些事情。

我现在无法更改脚本,因为它是很长一段时间的部署过程的一部分。 我只是想了解这些文件的cpmv是否仍然会允许它们正常工作。

这样做会否定使用软件包的优点。

  • 修复软件包,把它的文件放在你想要的地方。 这样,如果你使用rpm来validation文件,它将检查正在使用的文件。
  • 只能用yum进行安装。 在几个方面更安全,包括安装依赖关系。
  • 不要删除yumdb或rpmdb。 也许你想减小容器的大小,但我没有看到删除包列表的重点。
  • 不要使用–nodeps。 要么这些是合法的依赖关系,你会打破你的系统,或者他们什么也不做,最好是重build没有他们的包。

这些的一个副作用就是你不能通过在安装时更改前缀来重新定位包装者,只需要打包生成时间。 很less的发行版或软件包使用这个function,所以我不认为你会损失太多。