Reputation: 2111
I am currently in the process of renaming a product that my team is producing (with appropriate refactoring of variables, service interfaces, class names, and so on). For the RPM renaming portion of this exercise, I have been told to use the obsoletes
tag. I'm now in the bugfix phase, it's not acting as I expect it to, and I've realized that part of my problem is I don't know exactly what RPM does in response to that tag. I've read a number of online resources but none of them covers Obsoletes in any depth, and they all seem to be focused on "when to use" rather than details of expected results.
My best guess after reading the online stuff but prior to running into conflicting evidence was something like "When you install an RPM with an obsoletes-tagged capability string, any installed RPM with that capability string as its name string is uninstalled, probably. Something may or may not happen to RPMs that provide that capability without that being their particular name, or who provide that capability and also other capabilities. Who knows what making it an update rather than an install does." If someone could provide an answer at that level of detail without the confusion or (as it turns out) inaccuracy, that would be appreciated. If there are any special rules about obsoletes/provides vs just obsoletes, that would also be helpful.
Upvotes: 8
Views: 3680
Reputation: 2111
Well, I found out my particular problem, and it's part of the answer, so I'm adding it here. The obsoletes tag doesn't do anything under rpm -i
. It only works under rpm -U
. I'm not accepting this as the answer, though, as it's not complete, and I really would still like to have a complete version (and I suspect others would find it helpful as well).
Upvotes: 3