Installing a compiler by default

Erast Benson erast at
Thu Jun 8 18:58:15 BST 2006

On Thu, 2006-06-08 at 09:44 -0700, Matt Zimmerman wrote:
> I would like to propose that, beginning in Edgy, Ubuntu desktop systems
> (both live and installed) should, by default, include the set of packages
> necessary to compile simple C programs and Linux kernel modules.
> My reasoning is based on the following points:
>  * Linux systems have traditionally shipped with gcc
>  * The most common way to obtain a new driver for a Linux system is
>    to compile it from C source code

Unfortunately for Linux-based systems this will be always a usability
killing factor unless... (see below)

>  * A common reason to install a new driver on a Linux system is to gain
>    access to the Internet, so support can be difficult to obtain in such a
>    scenario
>  * A great deal of distribution-agnostic documentation assumes the
>    availability of gcc
>  * Users who are new to Ubuntu have no idea how to install the necessary
>    packages for building a kernel module
>  * build-essential and linux-headers are already included on Ubuntu CDs, so
>    they would not occupy more space if installed by default
>  * An excessive amount of RAM is needed to install build-essential and
>    linux-headers in the live CD environment, and we only have enough space
>    for them either in preinstalled form (for the live session) OR packaged
>    form (for the installed system), not both

> Some arguments against this approach include:
>  * Most users don't need a compiler
>  * If they have already compromised a system, worms can use a compiler to
>    help propagate themselves and launch attacks (and if one is installed by
>    default, this is a more appealing technique for targeting Ubuntu systems)
>  * We should solve the same problems in more elegant ways where possible
> I'm interested in hearing more opinions one way or the other, especially
> from beyond the developer community.

Having gcc pre-installed and ready to use is a good thing but somehow I
always thought that "apt-get install gcc" on Debian(s) fulfill the need.

FYI, Solaris 10 shipped with gcc pre-installed too but for different
reasons obviously, like compiling FOSS, etc. OpenSolaris drivers are
written using kernel DDI interface which is not changing as often as
unstable Linux kernel interfaces. Usually driver compiled years ago
should work just fine on any OpenSolaris based distro such as NexentaOS.

So, theoretically, the best way to resolve a Linux kernel driver problem
would be to convince Linus to stabilize kernel interfaces at some point.
But for now, shipping gcc pre-installed + kernel headers and wrappers to
re-build drivers on the fly like DKMS is the best option. Its ugly and
creates a lot of headaches for an end users especially with a new
hardware which is not "main-line" accepted yet. But it seems to be a
right way to go for Ubuntu for now.


More information about the ubuntu-devel mailing list