Re: [courier-users] Ubuntu and Courier upgrade
Brought to you by:
mrsam
|
From: Sam V. <mr...@co...> - 2023-02-25 01:52:24
|
Matus UHLAR - fantomas writes: >> When you're talking about simple, basic packages – a couple of shell >> scripts, or standalone executables, no complex dependencies, maybe a few man >> pages – this is not complicated. dpkg will take care of installing the new >> files, remove any files that are no longer a part of the package, and the >> running executable will chug along until the shutdown script SIGTERMs it, >> and it cleans itself up gracefully. >> >> But when you get involving in complex system libraries and demons the >> situation quickly becomes not as clear-cut. I really don't want to be >> running do_release_upgrade when it replaces glibc and libstdc++ with a >> binary-incompatible version, and there's a bunch of stuff running that's >> dependent on a specific libstdc++ ABI. > > Exactly this problem is avoided by having different packages with different > ABI, e.g. libstdc++5 and libstdc++6. > > If the ABI changes, your package depends on older library version and will > use the old libraty. Restarting won't change anything here. This is not really about having multiple versions installed currently. That's a known, solved issue. This is about updating to a new ABI version, the old ABI gets removed, together with updating applications as a result of the ABI switch. So, in addition to updating from libstdc++5 to libstdc++6 all applications that were built for libstdc++5 get updated and replaced with versions that use the libstdc++6 ABI, as part of the release upgrade. If you have a goal of mitigating risks of a major update, as much as possible, you don't want to do something like that in the way Ubuntu does it: full speed ahead, and update a live system, in place. How risky this is might be a matter for debate. But it's unquestionable that doing the whole in single-user mode just has fewer moving pieces that may potentially break. > In the meantime, you can have packages depending on different library > versions installed in parallel. Proper Depends: and Breaks: statements > handle this. This is not about parallel installation. |