On 2023-08-10 09:30 -0500, David Wright wrote:

>> I was looking for a way to list packages installed from a particular
>> repo and/or sub-repo or whatever it's called (eg. main, non-free).
>> 
>> Does anyone know of a way to do this, with apt policy or otherwise?
>
> What I do in this situation is to type "apt" and press TAB twice.
> Look at the resulting list of commands and check the man page for
> the most likely looking, in this case apt-cache.
>
> An alternative method of course is to type   apt policy   into any
> search engine. This will typically tell you not only how to invoke
> the command, but also more about what it produces.
>
> As for your listing, I've done this in the past with a script that
> runs apt-cache dump, grepping the Package/Version/File lines,
> concatenating and sorting them, then filtering that list against
> the output of dpkg-query -W -f to include only installed packages.
> This yields a list like:
>
>   Package: acl Version: 2.2.53-10 File: 
> /var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_main_binary-amd64_Packages
>   Package: adduser Version: 3.118 File: 
> /var/lib/apt/lists/deb.debian.org_debian_dists_bullseye_main_binary-amd64_Packages
>   [ … … ]
>   Package: xtoolwait Version: 1.3-6.2 File: /var/lib/dpkg/status
>   [ … … ]
>   Package: yt-dlp Version: 2023.03.04-1~bpo11+1 File: /var/lib/dpkg/status
>
> which you can grep for particular subsets, though I'm usually more
> interested in grep -v for packages originating from elsewhere,
> like xtoolwait (squeeze) and yt-dlp (backports) there.
>
> There may well be better ways.

I would probably use "apt list" with a search pattern described in
apt-patterns(7), e.g. the following command lists all installed packages
from non-free:

$ apt list '~i ~snon-free/'

Lots of interesting possibilities one can toy with. :-)

Cheers,
       Sven

Reply via email to