View on
MetaCPAN is shutting down
For details read Perl NOC. After June 25th this page will redirect to
Thierry Vignaud > urpmi > urpm::main_loop



Annotate this POD


Open  0
View/Report Bugs


urpm::main_loop - The install/remove main loop for urpm based programs (urpmi, gurpmi, rpmdrake, drakx)



run($urpm, $state, $something_was_to_be_done, $ask_unselect, $callbacks)

Run the main urpm loop:

  • mount removable media if needed
  • split the work in smaller transactions
  • for each transaction:
    • prepare the transaction
    • download packages needed for this small transaction
    • verify packages
    • split package that should be installed instead of upgraded,
    • install source package only (whatever the user is root or not, but use rpm for that)
    • install/remove other packages
  • migrate the chrooted rpmdb if needed
  • display the final success/error message(s)

Warning: locking is left to callers...


$urpm: the urpm object
$state: the state object (see URPM)
$ask_unselect: an array ref of packages that could not be selected
$callbacks: a hash ref of callbacks :
packages download:
trans_log($mode, $file, $percent, $total, $eta, $speed): called for displaying download progress
post_download(): called after completing download of packages
interaction with user:
ask_yes_or_no($_title, $msg)
need_restart($need_restart_formatted) called when restarting urpmi is needed (priority upgrades)
message($_title, $msg): display a message (with a title for GUIes)
signature management:
pre_check_sig(): signature checking startup (for rpmdrake)
check_sig(): signature checking progress (for rpmdrake)
bad_signature($msg, $msg2): called when a package is not/badly signed
removable media management:
pre_removable(): called before handling removable media (for rpmdrake)
copy_removable($medium_name): called for asking inserting a CD/DVD
post_extract($set, $transaction_sources, $transaction_sources_install) called after handling removable media (for rpmdrake)
packages installation callbacks (passed to urpm::install::install(), see URPM for parameters)
open_helper(): called when opening a package, must return a fd
close_helper(): called when package is closed
inst() called for package opening/progress/end
trans() called for transaction opening/progress/end
uninst(): called for erasure progress
error() called for cpio, script or unpacking errors
finish callbacks (mainly GUI callbacks for rpmdrake/gurpmi/drakx)
completed(): called when everything is completed (for cleanups)
trans_error_summary($nok, $errors) called to warn than $nok transactions failed with $errors messages
success_summary() called on success
already_installed_or_not_installable($msg1, $msg2)


Copyright (C) 1999-2005 MandrakeSoft SA

Copyright (C) 2005-2010 Mandriva SA

Copyright (C) 2011-2017 Mageia

syntax highlighting: