Installing a compiler by default

Adam Conrad adconrad at ubuntu.com
Fri Jun 9 20:29:05 BST 2006


Peter Garrett wrote:
> 
> There is no way that including a compiler and related tools in any way
> impacts the user experience for the beginner. Where it *does* impact that
> user is when the user finds that the tools are missing, and has to go
> looking for help.

Not including the compiler can send big "hrm, maybe I should look for a
different way to do this" warning bells to a user.

Take, for instance, the HUGE number of people who download the nvidia
driver sources and install them.  Do I think we should prevent this
somehow?  No, people are free to compile and install whatever they like.

However, if the nvidia installed Just Works, out of the box, there's a
fair chance they've just overwritten mesa's libGL.so on the system, and
possibly broken other things too, and without ever being the wiser.

If the nvidia installer fails early because there's no compiler, then
the user either A) has enough clue to install a compiler and kernel
headers, then they can shoot themselves in the foot all they want, or B)
the user doesn't know what's wrong, goes seeking support or
documentation, and finds out that they can "apt-get install nvidia-glx",
which WON'T break their system hideously.

I don't think that "not having a compiler installed by default" is
"crippling the system" or "dumbing it down", but I do think that "people
who need to compile things can be expected to find a compiler to do so"
is not really such a bad motto.  They will have to download other
development packages anyway for pretty much anything other than Hello World.

A big note to everyone who thinks that somehow "build-essential" is a
package meant to provide you with a full development environment:  IT'S
NOT FOR THAT.

build-essential is defined by Debian Policy as "the base set of packages
above those marked Essential: yes" that a Debian source package doesn't
need to build-depend on.  It includes libc-dev, gcc, g++, make, and
dpkg-dev.  These are not enough tools to do much of anything except
compile some kernel modules and hello.c.

Anyone who thinks that having build-essential installed will somehow
make life easier for "casual developers" or "people who want install
from tarballs" has obviously never tried using it for those cases.  You
will still need a mess of libfoo-dev packages to provide headers for the
dependencies of whatever you're trying to compile, etc.

... Adam




More information about the ubuntu-devel mailing list