|
Kali Linux Revealed Pdf ko'rish
|
bet | 126/174 | Sana | 15.01.2024 | Hajmi | 11,68 Mb. | | #137314 |
Bog'liq Kali-Linux-Revealed-2021-editionmetapackage and Virtual
Package
It is essential to clearly distinguish metapackages from virtual packages. The former
are real packages (including real
.deb
files), whose only purpose is to express depen-
dencies.
Virtual packages, however, do not exist physically; they are only a means of identify-
ing real packages based on common, logical criteria (for example, service provided, or
compatibility with a standard program or a pre-existing package).
Providing a Service Let’s discuss the first case in greater detail with an example: all mail
servers, such as postfix or sendmail are said to provide the mail-transport-agent virtual package.
Thus, any package that needs this service to be functional (e.g. a mailing list manager, such as
smartlist or sympa) simply states in its dependencies that it requires a mail-transport-agent instead
of specifying a large yet incomplete list of possible solutions. Furthermore, it is useless to install
two mail servers on the same machine, which is why each of these packages declares a conflict
with the mail-transport-agent virtual package. A conflict between a package and itself is ignored
by the system, but this technique will prohibit the installation of two mail servers side by side.
Interchangeability with Another Package The Provides field is also interesting when the con-
tent of a package is included in a larger package. For example, the libdigest-md5-perl Perl module
was an optional module in Perl 5.6, and has been integrated as standard in Perl 5.8. As such, the
package perl has since version 5.8 declared Provides: libdigest-md5-perl so that the dependencies
on this package are met if the system has Perl 5.8 (or newer). The libdigest-md5-perl package itself
was deleted, since it no longer had any purpose when old Perl versions were removed.
215
Chapter 8 — Debian Package Management
|
| |