[opensuse-packaging] how to not skip a version when upgrading
Hi, so I have this question: If I have package foo with different version, as foo-1.0, foo-2.0 and foo-3.0, my understanding is that, if I have foo-1.0 installed and run "*zypper dup*", I will get foo-3.0 installed, skipping foo-2.0. Is this correct? Is there a way to force the installation of foo-2.0 and afterwards foo-3.0? I can only think of having foo-3.0 on a different repo and adding this repo after installing foo-2.0, but sounds a bit hacky. The problem I am trying to address is the case that I have multiple machines with foo-1.0 and need to go to foo-2.0 and then to foo-3.0 because the API or file format may be only compatible between foo-1.0 and foo-2.0, foo-2.0 and foo-3.0, but not between foo-1.0 and foo-3.0. This sounds like it should be a "typical" problem on a rolling release as Tumbleweed ... right? Any ideas/experience? thanks in advance jordi
Hello, Am Donnerstag, 13. Juli 2017, 15:34:28 CEST schrieb Jordi Massaguer Pla:
so I have this question: If I have package foo with different version, as foo-1.0, foo-2.0 and foo-3.0, my understanding is that, if I have foo-1.0 installed and run "*zypper dup*", I will get foo-3.0 installed, skipping foo-2.0.
Is this correct?
Yes.
Is there a way to force the installation of foo-2.0 and afterwards foo-3.0? I can only think of having foo-3.0 on a different repo and adding this repo after installing foo-2.0, but sounds a bit hacky.
The problem I am trying to address is the case that I have multiple machines with foo-1.0 and need to go to foo-2.0 and then to foo-3.0 because the API or file format may be only compatible between foo-1.0 and foo-2.0, foo-2.0 and foo-3.0, but not between foo-1.0 and foo-3.0.
This sounds like it should be a "typical" problem on a rolling release as Tumbleweed ... right?
Not really - jumping from 1.0 to 2.0 to 3.0 within a few days sounds unlikely in Tumbleweed, so if you update often enough, this shouldn't be a problem.
Any ideas/experience?
Does this have to happen as part of "zypper dup"? zypper in foo-2.0 would be the easiest solution. (Run zypper al foo if you want to run zypper dup afterwards.) If you really need to enforce a specific version during zypper dup, I'd create and install a dummy package with Requires: foo = 2.0 before running zypper dup. Regards, Christian Boltz --
Ich _habe_ einen vernünftigen Mailer! Und warum benutzt Du ihm nicht? Mach ich gerade. Komisch, bei mir wird angezeigt, daß Du KMail benutzt. [> Manfred Misch und Bernd Brodesser in suse-linux]
-- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 07/13/2017 08:05 PM, Christian Boltz wrote:
Is there a way to force the installation of foo-2.0 and afterwards foo-3.0? I can only think of having foo-3.0 on a different repo and adding this repo after installing foo-2.0, but sounds a bit hacky.
The problem I am trying to address is the case that I have multiple machines with foo-1.0 and need to go to foo-2.0 and then to foo-3.0 because the API or file format may be only compatible between foo-1.0 and foo-2.0, foo-2.0 and foo-3.0, but not between foo-1.0 and foo-3.0.
This sounds like it should be a "typical" problem on a rolling release as Tumbleweed ... right? Not really - jumping from 1.0 to 2.0 to 3.0 within a few days sounds unlikely in Tumbleweed, so if you update often enough, this shouldn't be a problem.
That is what we did in the past. But still you can have the case of someone installing an iso and running the updates.
Any ideas/experience? Does this have to happen as part of "zypper dup"?
zypper in foo-2.0 would be the easiest solution. (Run zypper al foo if you want to run zypper dup afterwards.)
If you really need to enforce a specific version during zypper dup, I'd create and install a dummy package with Requires: foo = 2.0 before running zypper dup.
Yeah but then you need to update this new package to update the foo package, and you have the same problem. Running "zypper install foo-2.0 && zypper al foo" sounds like a good idea but unfortunately we cannot make sure the user won't run "zypper dup" before. Thanks Christian for your suggestions Any other ideas :) ? -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On Friday 2017-07-14 12:01, Jordi Massaguer Pla wrote:
If you really need to enforce a specific version during zypper dup, I'd create and install a dummy package with Requires: foo = 2.0 before running zypper dup.
Yeah but then you need to update this new package to update the foo package, and you have the same problem.
Running "zypper install foo-2.0 && zypper al foo" sounds like a good idea but unfortunately we cannot make sure the user won't run "zypper dup" before.
First and foremost, there is no guarantee that foo-2.0 is still in the repos. So you have to expect that there will be systems that can only go from 1.0 to 3.0. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-packaging+owner@opensuse.org
On 2017-07-13 15:34, Jordi Massaguer Pla wrote:
Is there a way to force the installation of foo-2.0 and afterwards foo-3.0? I can only think of having foo-3.0 on a different repo and adding this repo after installing foo-2.0, but sounds a bit hacky.
We are having similar problems with OpenStack where we skip a release, but upstream drops database migrations from their codebase after 1 release. One pretty simple and clean solution is to re-add those migrations, so that foo-3 can be installed on top of foo-1, because it still(again) contains the migrations that would have been run when migrating from foo-1 to foo-2
participants (4)
-
Bernhard M. Wiedemann
-
Christian Boltz
-
Jan Engelhardt
-
Jordi Massaguer Pla