将使用 rpm 安装的文件复制到另一个位置可以吗?

将使用 rpm 安装的文件复制到另一个位置可以吗?

我有一个脚本,用于在我的 docker 镜像中安装一些 rpm,如下所示。

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无法解释的事情。

我现在无法更改脚本,因为它是部署过程的一部分,而且已经实施了很长时间。我只是想了解这些文件中的一个cp或几个是否mv仍能使它们正常运行。

答案1

这样做会抵消使用包的大部分优势。

  • 修复软件包以将其文件放在您想要的位置。这样,如果您使用 rpm 来验证文件,它将对正在使用的文件进行校验。
  • 仅使用 yum 安装。它在多个方面都更安全,包括安装依赖项。
  • 不要删除 yumdb 或 rpmdb。也许你想减小容器的大小,但我认为删除软件包列表毫无意义。
  • 不要使用 --nodeps。要么这些是合法的依赖项,会破坏您的系统,要么它们对您没有任何作用,最好在没有它们的情况下重建软件包。

这些的一个副作用是,您无法通过在安装时更改前缀来重新定位打包程序的位置,只能在构建包时更改。很少有发行版或包使用此功能,所以我认为您损失不大。

相关内容