Control: severity -1 minor On Thu, Jul 21, 2022 at 02:36:06PM +0200, Sébastien Villemot wrote: > Package: apt > Version: 2.5.1 > Severity: normal > > Dear Maintainer, > > I noticed that the ?archive pattern does not behave the same in apt as in > aptitude.
That is incorrect. > > My system has both unstable and experimental suites enabled (see below > debian.sources). > > When I run: > > aptitude versions '~i~Aexperimental' > > I get a list of those installed package versions that effectively come from > experimental (8 in total on my system, in particular I use GCC 12 by default): > > Package cpp: > i A 4:12-20211211-1 > experimental > 100 > > Package g++: > i 4:12-20211211-1 > experimental > 100 > > … > > However, when I run: > > apt list '~i~Aexperimental' > > I get a list of 297 packages. It seems to include all the installed packages > for which a more recent version exists in experimental, independently of > whether I installed that more recent version or not. For example, the output > contains: > > wfrench/unstable,now 1.2.6-1 all [installed,automatic] > > wfrench 1.2.6-1 actually comes from unstable, but there is indeed a 1.2.7-1 > currently in experimental (which I did not install). That is correct. What you fail to realize is that apt list lists packages, not versions, so it matches like aptitude search, not aptitude versions. You'll have to wrap the search in ?any-version if you want operations to match against the same version, as in aptitude search. To give an example on my weird Ubuntu install: jak@jak-t480s:~:master$ apt policy apt apt: Installed: 2.5.1+0~202206301128~ubuntu21.10.1 Candidate: 2.5.1+0~202206301128~ubuntu21.10.1 Version table: *** 2.5.1+0~202206301128~ubuntu21.10.1 500 500 http://ppa.launchpad.net/deity/sid/ubuntu impish/main amd64 Packages 100 /var/lib/dpkg/status 2.5.1 500 500 mirror+file:/etc/apt/mirrors.list kinetic/main amd64 Packages jak@jak-t480s:~:master$ apt list '?installed?archive(kinetic)?name(^apt$)' Listing... Done apt/impish,now 2.5.1+0~202206301128~ubuntu21.10.1 amd64 [installed] N: There is 1 additional version. Please use the '-a' switch to see it jak@jak-t480s:~:master$ aptitude search '?installed?archive(kinetic)?name(^apt$)' i apt - commandline package manager jak@jak-t480s:~:master$ aptitude versions '?installed?archive(kinetic)?name(^apt$)' jak@jak-t480s:~:master$ aptitude search '?any-version(?installed?archive(kinetic)?name(^apt$))' jak@jak-t480s:~:master$ aptitude install '?installed?archive(kinetic)?name(^apt$)' -s apt is already installed at the requested version (2.5.1+0~202206301128~ubuntu21.10.1) apt is already installed at the requested version (2.5.1+0~202206301128~ubuntu21.10.1) The aptitude versions command I believe is the only thing in aptitude that actually matches versions and is very confusing. Because in your example, if you used `aptitude install` with your pattern, it would have installed those same 297 packages that `apt list` lists. -- debian developer - deb.li/jak | jak-linux.org - free software dev ubuntu core developer i speak de, en