The process of adding and removing a package involves updating the
GDBM files and
HashDir objects that represent the various
subdirectories in the system repository.
All of these HashDir objects obediently record the
contents of the updated files.
The system repository's commit function receives a
FileInstall object, which is passed to
each HashDir object's own commit
function.
In this manner, the contents of the system repository are atomatically updated,
as described in Chapter 15, Installing files and packages.