RPM4
view release on metacpan or search on metacpan
lib/RPM4/Transaction.pm view on Meta::CPAN
package RPM4::Transaction;
sub newspec {
my ($self, $filename, %options) = @_;
$options{transaction} = $self;
RPM4::Spec->new(
$filename,
%options
);
}
sub transpbs {
my ($self) = @_;
return RPM4::Transaction::Problems->new($self);
}
1;
__END__
=head1 NAME
RPM4::Transaction
=head1 DESCRIPTION
This object allow to access to the rpm transaction packages and installing rpms on the
system.
=head1 METHODS
=head2 RPM4::Transaction->traverse_headers(sub)
Go through the rpm database and for each header run the callback passed as
argument.
Argument passed to the callback function is the current header as a Hdlist::Header object.
Ex:
$db->traverse_headers( sub {
my ($h) = @_;
print $h->queryformat("%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}");
});
=head2 RPM4::Transaction->injectheader($header)
Add the header into rpmdb. This is not installing a package, the function
only fill information into the rpmdb.
Return 0 on success.
=head2 RPM4::Transaction->deleteheader($index)
Remove header from rpmdb locate at $index. This is not uninstalling a package,
this function only delete information from rpmdb.
Return 0 on success
=head2 RPM4::Transaction->transadd(header, filename, upgrade, relocation, force)
Add rpm headers for next transaction. This means this rpm are going to be
installed on the system.
- header is an Hdlist::Header object,
- filename, if given, is the rpm file you want to install, and should
of course match the header,
- upgrade is a boolean flag to indicate whether the rpm is going to be upgraded
(1 by default).
Returns 0 on success.
See: $RPM4::Transaction->transcheck(), $RPM4::Transaction->transrun().
=head2 RPM4::Transaction->transremove(rpm_name)
Add rpm to remove for next transaction. This mean the rpm will be uninstalled
from the system.
Argument is the exact rpm name (%{NAME}) or a string as NAME(EPOCH:VERSION-RELEASE).
Returns the number of selected rpms for this transaction.
=head2 RPM4::Transaction->transcheck()
Check current transaction is possible.
Returns 0 on success, 1 on error during check.
=head2 RPM4::Transaction->transorder()
Call to rpmlib to order the transaction, aka sort rpm installation /
desintallation.
Returns 0 on success.
=head2 RPM4::Transaction->transpb
Return an array of problem found during L<RPM4::Transaction->transcheck> or
L<RPM4::Transaction->transrun>
=head2 RPM4::Transaction->transrun($callback, $flags...)
Really run transaction and install/uninstall packages.
$callback can be:
- undef value, let rpm show progression with some default value.
- array ref: each value represent a rpm command line options:
PERCENT: show percentage of progress (--percent)
HASH: print '#' during progression (--hash)
LABEL: show rpm name (--verbose)
- code ref: rpm is fully silent, the perl sub is called instead. Arguments
passed to the subroutine are in a hash:
( run in 0.952 second using v1.01-cache-2.11-cpan-71847e10f99 )