Why does tasksel exist when there are already meta packages?
tasksel
is ancient, ancient history, and is there mainly for historical reasons. Better just to forget about it.
Tasksel can't really express complex dependencies that include version comparisons, optional dependencies, alternative packages, conflicts, etc.
To give a simple example: the tasksel task dns-server
installs bind9
, while a meta-package could depend on bind9|pdns-server
(and a bunch of other DNS servers, but this is just an example), which means installing one of the 2 listed packages fulfils the dependency.
one of the reason for using tasksel
is that you don't need tu know the name of installed package (for example SSH Server
vs package openssh-server
)