First, an introduction. I just found a development server with all kinds of GUI packages installed. I'd like to know why. Therefore, I'd like to know which software has been installed that requires X.
I can answer this by answering two closely related questions:
- How can I list all installed packages that no other package depends on?
- How can I list all installed packages that no other package depends on, and that, directly or indirectly, depend on a given package? (E.g.,
x11-common
.)
For the first question, apt-mark showmanual
is a useful approximation, but it may not be exactly right.
For the second question, what I'm using now postprocesses the apt-rdepends
output to list only results for which no dependencies are listed that are listed as results.
Is this correct? Is there an easier way? I notice the result contains quite a few packages that aren't marked as manually installed.
I need this on Ubuntu 14.04, 16.04, and 18.04.
/var/log/apt
? You should be able to see the install history there. – waltinator Feb 01 '19 at 14:13login
for example) but I guess you could parse the output ofaptitude why
e.g.dpkg --get-selections | while read pkg status; do [[ "$status" == "install" ]] && { aptitude why "$pkg" | grep '^Unable to find a reason'; }; done
. It will be painfully slow (but you might not care, for a one-off). – steeldriver Feb 01 '19 at 16:26APT::Install-Recommends
andAPT::AutoRemove::RecommendsImportant
are set to false. Or do you also want the manually installed packages that are not depended upon by any other package? – Stefan Hamcke Feb 01 '19 at 16:50apt-mark showmanual
gives me that. – Reinier Post Apr 11 '19 at 13:35apt-mark show-manual
results and filtering out all initially installed packages. That's not what I want to do. – Reinier Post Apr 11 '19 at 14:01