The GUI interface is better to actually do them, and the command line
is better for "documenting" them.
By "GUI" I'm referring to Synaptic because it makes the task much
easier than the "Add/Remove..." program (which is also a GUI).
As to why I wrote the command line is better for "documenting them",
here's an example of what I needed to do to setup a complete compile
and development system (so I could build my astronomy programs):
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install build-essential
sudo apt-get install manpages-dev
sudo apt-get install manpages-posix-dev
sudo apt-get install manpages-posix
sudo apt-get install libc6-dev
sudo apt-get install gcc-doc
sudo apt-get install libx11-dev
sudo apt-get install xorg-dev
sudo apt-get install x11proto-print-dev
sudo apt-get install libxp-dev
sudo apt-get install apt-file
sudo apt-get install devscripts fakeroot
A few weeks ago when I wanted to install the penguin-command program
(a Linux version of the missile-command arcade game), I had to install
some sound packages. Synaptic didn't provide much help determining
exactly what I needed, so each time I attempted to rebuild the game
I found something else missing, and eventually ended up doing this:
sudo apt-get install libsdl1.2debian
sudo apt-get install libsdl1.2debian-all
sudo apt-get install libsdl1.2-dev
sudo apt-get install libsdl1.2-image1.2
sudo apt-get install libsdl1.2-image1.2-dev
sudo apt-get install libsdl1.2-mixer1.2
sudo apt-get install libsdl1.2-mixer1.2-dev
and the game now works great. :-)
So, the real answer to your question is: it depends. :-)