[Aptitude-devel] Bug#931482: Old forbid-versions hanging around in /var/lib/aptitude/pkgstates

積丹尼 Dan Jacobson jidanni at jidanni.org
Sat Jul 6 00:34:45 BST 2019

Package: aptitude
Version: 0.8.11-7
Severity: minor

The only way to find old ForbidVer entries is
# grep-status -sPackage,ForbidVer -F ForbidVer --ge 0 /var/lib/aptitude/pkgstates
Package: chromium-common
ForbidVer: 74.0.3729.108-1

As one couldn't just look for any "F" in this list
# aptitude search ~i|grep chromium-common
i A chromium-common - web browser - common resources used by the chromium packages

as the package has already advanced to a newer version:

# aptitude show chromium-common
Package: chromium-common
Version: 75.0.3770.90-1
New: yes
State: installed
Forbidden version: 74.0.3729.108-1

So to maintain a clean /var/lib/aptitude/pkgstates without old ForbidVer
hanging around, one must do
# grep-status -sPackage,ForbidVer -F ForbidVer --ge 0 /var/lib/aptitude/pkgstates
and then
# aptitude show on any packages found,
and then compare the two versions shown,
and if the ForbidVer is lower, then do

           To revert the action, “aptitude install <package>” will
           remove the ban. To remove the forbidden version without
           installing the candidate version, the current version should
           be appended: “install <package>=<version>”.

as mentioned on the aptitude man page.

Also mention "aptitude purge <package>" will remove the ban. And one
doesn't even have to answer "y" when asked if your really want to remove it.

OK, so maybe the man page should say

"Note: forbid-version is not cleared by full-upgrade, safe-upgrade, ...
etc." (if indeed true. I'm not sure.)

"use grep-status ... ... ... to find all packages that have a
forbid-version notation. aptitude search ~i|grep F... won't show them

Also maybe forbid-version should be added to

?action(action), ~aaction
    Matches packages upon which the given action is going to be
    performed. action can be “install”, “upgrade”, “downgrade”,
    “remove”, “purge”, “hold” (tests whether a package has been
    placed on hold), or “keep” (tests whether a package will be

but then again there is this "but is it forbidden against an obsolete
version" problem that needs to be documented.

(Also note the ForbidVer may refer to a version number way ahead...
once offered in experimental, but we forbid it, and then they removed it
from experimental. (user is subscribed to sid and experimental)

More information about the Aptitude-devel mailing list