OpenBSD::RequiredBy(3p) Perl Programmers Reference Guide #
OpenBSD::RequiredBy(3p) Perl Programmers Reference Guide
NNAAMMEE #
OpenBSD::RequiredBy - manage installed package dependencies
SSYYNNOOPPSSIISS #
use OpenBSD::RequiredBy;
# let's do things for real
our $not = 0;
my $o = OpenBSD::RequiredBy->new($pkgname);
my $o2 = OpenBSD::Requiring->new($pkgname);
print "Requirements for $pkgname are ", join(' ',$o2->list), "\n";
# add some reverse dependencies
$o->add($reverse_dep1, $reverse_dep2);
# remove some dependency
$o2->delete($dep);
# forget some cache entry
OpenBSD::RequiredBy->forget(installed_info($pkgname));
# compute the transitive closure of some dependencies
my @fulldeps = OpenBSD::Requiring->compute_closure($pkg1, $pkg2);
DDEESSCCRRIIPPTTIIOONN #
"OpenBSD::RequiredBy" handles lists of forward and reverse dependencies
for installed packages.
If $main::not is true, all change operations are done internally and
never written to disk.
"$o = OpenBSD::RequiredBy->new($pkgname)" gives access to the reverse
dependencies, "$o =OpenBSD::Requiring->new($pkgname)" gives access to
the forward dependencies.
Such an object can be used to list the dependencies "$o->list", add names
to them "$o->add(name1, name2, ...)" or remove name from them
"$o->delete(name1, name2, ...)".
The full list of forward dependencies (transitive closure) from a set of
packages is given by "OpenBSD::RequiredBy->compute_closure($name1, name2,
...)". Likewise, "OpenBSD::Requiring->compute_closure($name1, name2,
...)" yields the list of reverse dependencies.
Those lists of dependencies trim duplicates and, unless $main::not is
true, disk files are automatically synchronized whenever the lists
change.
"OpenBSD::RequiredBy" maintains a cache for efficiency. When an installed
package is deleted completely, "OpenBSD::RequiredBy->forget($dir)" and
"OpenBSD::Requiring->forget($dir)" will remove the cache entries.
perl v5.36.3 2020-12-20 OpenBSD::RequiredBy(3p)