It has been asked before, but with different answers, e.g.: 1) dpkg-query --list | awk '/^ii +/ { print $2; }' 2) dpkg --get-selections | cut -f 1 3) ... etc ... Given that the output is the same: $ diff \ <(dpkg --get-selections | cut -f 1) \ <(dpkg-query --list | awk '/^ii +/ { print $2; }') \ && echo same-output same-output I wonder, what's the golden way to do this and why?