Search code examples
linuxrpmrpmbuild

Transaction check error installing local rpms


I try to install two springBoot module with rpm, this is the error I get:

  file /path/config/application.yaml from install of master-2.0.0-SNAPSHOT.noarch conflicts with file from package worker-2.0.0-SNAPSHOT.noarch
  file /path/config/log4j2.xml from install of master-2.0.0-SNAPSHOT.noarch conflicts with file from package worker-2.0.0-SNAPSHOT.noarch

Can somebody explain why this is a problem and what to do.


Solution

  • Problem is that both packages master-2.0.0-SNAPSHOT and worker-2.0.0-SNAPSHOT try to deploy same file (application.yaml and log4j2.xml) into same directory (/path/config).

    In RPM (and possibly any other packaging system) no package can overwrite a file owned by other package.

    To resolve the problem you can:

    • add component name to the deployment path (say /path/master/config or /path/worker/config) so that each component has it's own set of deployed files.
    • if you intend to share configuration between components and have them both use same config file, factor the configuration into a third package (e.g. config-2.0.0-SNAPSHOT)