[opensuse-packaging] RPM transactions
We don't call gtk-update-icon-cache in scriplets since calling it after every package install would make the distro installation very long. I understand we can't call it in %post, but exactly why can't we call it from %posttrans? Isn't the whole distribution installation a single RPM transaction? If no, what's exactly a RPM transaction? After installation, if ZYpp commit.downloadMode is set to DownloadInAdvance or DownloadInHeaps doesn't this reduces also the number of transactions (to just one in the case of DownloadInAdvance)? There is still the problem of uninstall, but I don't expect users to uninstall a lot of packages at the same time. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Mon, Jun 07, 2010 at 08:32:27PM +0200, Cristian Morales Vega wrote:
Isn't the whole distribution installation a single RPM transaction?
No.
If no, what's exactly a RPM transaction?
Everything you feed to rpm (or rpmlib) in one single step, e.g. multiple arguments on the rpm command line.
After installation, if ZYpp commit.downloadMode is set to DownloadInAdvance or DownloadInHeaps doesn't this reduces also the number of transactions (to just one in the case of DownloadInAdvance)?
No. We could do that, but see below.
There is still the problem of uninstall, but I don't expect users to uninstall a lot of packages at the same time.
Some background: rpm does all the erasures at the end of the (rpm-)transaction. So if a transaction dies in the middle because of a broken scriptlet you've got a very broken system. AFAIK there's no easy way to continue the transaction. But Zypp offers a "retry/ignore" dialog, which needs this. Thus, every Zypp-transaction is broken down into multiple rpm-transactions. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Markus Rex, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
Hello, On Jun 8 11:04 Michael Schroeder wrote (shortened):
On Mon, Jun 07, 2010 at 08:32:27PM +0200, Cristian Morales Vega wrote:
... what's exactly a RPM transaction?
Everything you feed to rpm (or rpmlib) in one single step, e.g. multiple arguments on the rpm command line. ... Some background: rpm does all the erasures at the end of the (rpm-)transaction. So if a transaction dies in the middle because of a broken scriptlet you've got a very broken system. AFAIK there's no easy way to continue the transaction.
Isn't "all or nothing" the usual semantics of a transaction? I.e. if a transaction dies in the middle, nothing had actually changed. It seems, what is called "RPM transactions" are no usual transactions. But what else is the semantics of "RPM transactions"? I found http://www.linuxjournal.com/article/7034 which talks about RPM rollback via --repackage but it seems we don't use it because there is nothing in /var/spool/repackage on my system and I have "%_repackage_all_erasures 0" and "%_rollback_transaction_on_failure 0" in my /usr/lib/rpm/macros. I guess a reason why we don't we use it is that it may fill up disk space (very important on nowadays zillion GB harddisks ;-) or that RPM's transactional rollback feature might be still a work-in-progress or is there another reason no to use it? Kind Regards Johannes Meixner -- SUSE LINUX Products GmbH, Maxfeldstrasse 5, 90409 Nuernberg, Germany AG Nuernberg, HRB 16746, GF: Markus Rex -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On 8.6.2010 11:04, Michael Schroeder wrote:
Some background: rpm does all the erasures at the end of the (rpm-)transaction. So if a transaction dies in the middle because of a broken scriptlet you've got a very broken system. AFAIK there's no easy way to continue the transaction. But Zypp offers a "retry/ignore" dialog, which needs this. Thus, every Zypp-transaction is broken down into multiple rpm-transactions.
Would it be possible for zypp to tell rpmlib not to run %posttrans scriptlets (after each "mini-transaction") and run them from zypp after the zypp-transaction? Michal -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
On Tue, Jun 08, 2010 at 12:38:21PM +0200, Michal Marek wrote:
On 8.6.2010 11:04, Michael Schroeder wrote:
Some background: rpm does all the erasures at the end of the (rpm-)transaction. So if a transaction dies in the middle because of a broken scriptlet you've got a very broken system. AFAIK there's no easy way to continue the transaction. But Zypp offers a "retry/ignore" dialog, which needs this. Thus, every Zypp-transaction is broken down into multiple rpm-transactions.
Would it be possible for zypp to tell rpmlib not to run %posttrans scriptlets (after each "mini-transaction") and run them from zypp after the zypp-transaction?
AFAIK that's not possible, sorry. M. -- To unsubscribe, e-mail: opensuse-packaging+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-packaging+help@opensuse.org
participants (4)
-
Cristian Morales Vega
-
Johannes Meixner
-
Michael Schroeder
-
Michal Marek