Ashish Vyas
Ashish Vyas

Reputation: 617

rpm upgrading shared object used by other program

I am generating rpm-A that has program P-A.1.1, and two libs L-A.1.1 and L-B.1.1. L-A.1.1 changes some APIs it used to expose compared to it's previous version - L-A.1.0

Say the machine had another program P-B.1.0 that uses L-A.1.0.

Will installing rpm-A break program P-B.1.0?

Will L-A.1.1 co-exist with L-A.1.0?

A

Upvotes: 0

Views: 57

Answers (1)

Etan Reisner
Etan Reisner

Reputation: 81022

If you are upgrading the package that had previously provided P-A.1.0 and the new version of the package no longer provides that version of the library and only provides the P-A.1.1 version of the library then RPM will not allow that upgrade to occur without being forced because it would break P-B.1.0.

You have a number of options to handle this sort of thing.

  1. You can provide both libraries in the same package.
  2. You can change the package name (e.g. gnupg.gnupg2 or iptables/iptables-ipv6 though those are both for slightly different reasons than this).
  3. You can use library symbol versioning to have your library expose both APIs at the same time (I believe).

Upvotes: 1

Related Questions