apt-forktracer - a utility for managing package versions
apt-forktracer [ -v ]
Maintaining Debian stable systems sometimes requires installation of
unofficial versions of packages:
backporting newer versions
This is necessary, when significant new functionality is
required on the system but unavailable in the official version
found in the current stable release. In this case, the version
string usually sorts as newer than the official stable version
string. This means that pinning is not necessary, as APT will
select such package version by default.
local changes to the official version
Usually these are small changes, so a minor modification of the
package version string is sufficient. There are two ways to do
Try to invent a version string newer than the current one, but
older than the next official one. This way does not require
pinning, but is difficult to do reliably. It might turn out,
that the next official version string is older than the one
invented by you, which would cause the official version to be
The other way is to modify the version string in such way that
it sorts as older than the official one. The tilde character is
very useful here, because dpkg treats it in a special way: it is
sufficient to append any string starting with the tilde, to the
version string, e.g. 1.2 → 1.2~sl.1. This requires you to
"pin" the package to that version, but it is more reliable,
because works regardless of what the next official version
number will be.
In both cases, there is one major drawback: APT will not warn you when
newer versions of official packages (point releases, security updates)
will appear in the stable release. This means you may miss some
apt-forktracer’s job let you track newer official versions of locally
Official package version definition
Official package version is a version which is available from a source,
whose Release file’s Origin header value is equal to the system
distributor identifier, as indicated by the lsb_release --id command,
or by the DISTRIB_ID field in the /etc/lsb-release file.
apt-forktracer analyzes each installed package separately, reporting on
the standard output these packages which are in a "non-standard" state.
What "non-standard" means depends on the mode of program operation:
default (non-verbose) mode
this state means packages in an incorrect state (e.g. no
candidate version) or packages whose candidate version is
different than the newest available official version.
this state also includes packages whose installed version is
different from the candidate version
In the default mode the program also reads configuration files, which
let you ignore some of the "non-standard" packages, as long as they
meet certain criteria. If there is no configuration for a given
package, then a default configuration is used. More information is
available in forktracer.conf(5).
The program outputs messages such as the following:
foobar (1.2.3->1.2.4) [Debian: 1.2.3 1.2.4] [Other origin: 1.2.2]
foobar package name
1.2.3 installed package version
1.2.4 candidate package version - see apt-cache(8).
Debian the value of the "Origin" field of one of the package sources.
Versions available from this source are listed after a colon.
another source origin
-v Turns on the verbose mode.
forktracer.conf(5), apt_preferences(5), apt-cache(8).