On Thu, Dec 25, 2025 at 10:59 AM Nicolas Kovacs <[email protected]> wrote: > On RHEL-based systems you can use dnf group install Base to get a > reasonably complete set of command-line tools like vim, tree, man pages, > links, lynx, pinfo, etc. > What would be the Debian equivalent of that? Of course I can still try > to make a list of all the command-line tools I'm using in my daily work. > But before doing that I wonder if there isn't some easier way to do this. > Debian seems to have tasksel lists for various desktop environments. Is > there something similar for common command-line tools ?
$ tasksel --new-install --list-tasks 2>>/dev/null | sed -e '/desktop/d;/server/d;/blend/d;s/^[^ ] *//' | sort -u standard standard system utilities $ tasksel --task-package=standard dhcpcd-base libnss-systemd systemd-timesyncd libpam-systemd $ apt-cache rdepends manpages | fgrep task live-task-standard $ echo $(apt-cache depends live-task-standard | sed -e 's/Depends://;s/Recommends://;s/|//;s/ *//g' | sort -u) | fold -s -w 72 <default-logind> <logind> apt-listchanges bash-completion bind9-host bzip2 dbus debian-faq doc-debian file gettext-base groff-base inetutils-telnet inetutils-traceroute krb5-locales libc-l10n liblockfile-bin libnss-systemd libpam-elogind libpam-systemd live-task-base live-task-localisation live-task-standard locales lsof man-db manpages media-types ncurses-term netcat-openbsd openssh-client pciutils perl python3 reportbug traceroute ucf usbutils wamerican wget xz-utils $ echo $(aptitude -F '%p' search '?or(?essential,?priority(required),?priority(important),?priority(standard))') | fold -s -w 72 adduser amd64-microcode apt apt-listchanges apt-utils base-files base-passwd bash bash-completion bind9-dnsutils bind9-host bsdutils bzip2 ca-certificates coreutils cpio cron cron-daemon-common dash dbus debconf debconf-i18n debian-archive-keyring debian-faq debianutils dhcpcd-base diffutils dmidecode doc-debian dpkg e2fsprogs fdisk file findutils gettext-base grep groff-base gzip hostname ifupdown inetutils-telnet init init-system-helpers intel-microcode iproute2 iputils-ping kmod krb5-locales less libc-bin libc-l10n liblockfile-bin libnss-systemd libpam-modules libpam-modules-bin libpam-runtime libpam-systemd libpam-wtmpdb linux-sysctl-defaults locales login login.defs logrotate lsof man-db manpages mawk media-types mount nano ncurses-base ncurses-bin ncurses-term netbase netcat-traditional nftables openssh-client passwd pciutils perl perl-base procps readline-common reportbug sed sensible-utils systemd systemd-sysv systemd-timesyncd sysvinit-utils tar traceroute tzdata ucf udev util-linux util-linux-extra vim-common vim-tiny wamerican wget whiptail wtmpdb xz-utils $ aptitude -F '%P' search '?true' | sort -fu extra important optional required standard Unknown $ (for P in $(aptitude -F '%P' search '?true' | fgrep -v Unknown | sort -u); do echo $(aptitude -F '%P' search "?priority($P)" | wc -l) $P; done) | sort -bn 31 important 33 required 40 standard 202 extra 69613 optional $ aptitude -F '%P' search '?not(?or(?priority(required),?priority(important),?priority(standard),?priority(optional),?priority(extra)))' | sort | uniq -c | sort -bnr 66022 Unknown $ Not all packages have a priority. You might presume all packages marked as essential, or of priority required are installed. Perhaps might presume likewise for priority important. So, you probably want to add packages of priority standard that aren't installed. Might also want to cover packages in/required by live-task-standard and/or tasksel's standard task. With aptitude one can filter for not installed '?and(?not(?installed),...)' apt-get doesn't particularly care if you tell it to install something that's already installed, it will just mark it as manually installed, and if --reinstall option is given, will reinstall it, but otherwise won't reinstall it. So, if you want to do it by Ansible, perhaps have it: install aptitude and tasksel apt-get update use aptitude to get list of, or install, priority standard packages that aren't installed, maybe also important and/or required (might presume they're already there, or if not, not for good reason, but if one does choose to install those, there might possibly be conflict(s)?, e.g. there may be something(s) that are, e.g. of priority required, that might be satisfied by possible alternative packages that are mutually exclusive. E.g. systemd-sysv is priority important, but conflicts with sysvinit-core. And perhaps also the packages for tasksel's standard, and the live-task-standard package or select packages thereof (or excluding some). May want to review those with at least each major Debian release, as things may change relative to whatever packages you may typically have/want installed, and there may possibly be some conflicts. With apt-get install, one can also append - to end of name of package to remove it or not install it (or purge it if --purge option was given). That can be useful when a dependency has alternatives, and one wants to exclude (or remove) one or more of those alternatives. Also highly useful when one or more packages must be installed at any given time to satisfy a dependency, and one doesn't want to remove the package dependent upon such, but one wants to switch which package(s) are installed to satisfy the dependency. Debian gives you choices, lots of choices. Red Hat removes many choices - so fewer to no issues with conflicts on Red Hat, and one can even generally tell Red Hat to install "everything", and it will generally do so. Debian you can't do that, because some things conflict, so, you get to make choices. Red Hat often simply takes those choices away. 69,830 packages https://www.debian.org/News/2025/20250809

