[Bug 1713219] Re: 'apt-mark showauto' and 'apt show' is slow
David Kalnischkies
1713219 at bugs.launchpad.net
Mon Mar 22 20:50:03 UTC 2021
Mechanical train signals used to signal if the next section is clear vs.
blocked by another train used to have the arm raised if it was clear and
down if not. That was so that if the mechanic would fail in some way the
arm would fall down and rest in the "blocked" state rather than in a
"clear" state potentially causing huge problems.
I like to think that it is the same here. If the data gets lost,
corrupted or whatever we fall back to a safe state: protected from
autoremove as manual installed rather than causing havoc. In reality the
original implementer might not have thought that far, but he isn't
around anymore to ask him… and it isn't really important, is it?
Your precived "slowness" might be an out of dated cache. Have you
recently run an apt command with root rights? If it is not run as root
apt will build the cache in memory only. That cache can also easily be
many megabytes big, which can take a while to shuffle into disk cache on
a slow spinning disk.
Your script might be very fast, but it is also wrong (Auto-Installed is
not the only field which can be set there even if for apt its the only
one used. Other clients could use other fields and in that case apt
would of course also keep the manual entries…) and doesn't even begin to
support what apt-mark does. If you want to constructively work on
speeding apt in these cases is to look at where the time is lost and
optimize those codepaths. Showing off your script-foo is not helping and
borderline trolling… after all, I can easily point at a lot of traveling
salesperson (well, perhaps not in corona times), but that seems like a
very hard problem for computers somehow.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1713219
Title:
'apt-mark showauto' and 'apt show' is slow
Status in apt package in Ubuntu:
Triaged
Bug description:
$ time apt-mark showauto >/dev/null
real 0m0.587s
user 0m0.552s
sys 0m0.016s
When I run the command first time, it is even much slower.
I could do the job in fraction of a time using awk in POSIX shell
script:
auto_file='/var/lib/apt/extended_states'
eval $(apt-config shell auto_file Dir::State::extended_states/f)
awk '/^Package:/ {
pkg=$2
getline; arch=$2
getline
if($2==1) print pkg ":" arch
}' "$auto_file" | CL_ALL=C sort -u
real 0m0.019s
user 0m0.008s
sys 0m0.000s
That prints architecture for every package and shows entries in
slightly different order, though. And the file could be out of date
showing packages that are not installed?!?
Similarly
apt show <pkg>
is slow. (It also shows whether a package is manually or automatically
installed.
ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: apt 1.0.1ubuntu2.17
ProcVersionSignature: Ubuntu 4.4.0-92.115~14.04.1-generic 4.4.76
Uname: Linux 4.4.0-92-generic x86_64
ApportVersion: 2.14.1-0ubuntu3.25
Architecture: amd64
CurrentDesktop: XFCE
Date: Sat Aug 26 12:59:00 2017
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-09-21 (1070 days ago)
InstallationMedia: Ubuntu-Studio 14.04.1 LTS "Trusty Tahr" - Release amd64 (20140722.1)
SourcePackage: apt
UpgradeStatus: No upgrade log present (probably fresh install)
modified.conffile..etc.cron.daily.apt: [modified]
modified.conffile..etc.kernel.postinst.d.apt.auto.removal: [modified]
mtime.conffile..etc.cron.daily.apt: 2017-05-03T10:27:27.617839
mtime.conffile..etc.kernel.postinst.d.apt.auto.removal: 2017-06-01T14:39:39.236080
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1713219/+subscriptions
More information about the foundations-bugs
mailing list