Installing a compiler by default

Corey Burger corey.burger at gmail.com
Fri Jun 9 03:26:27 BST 2006


On 6/8/06, Matt Zimmerman <mdz at ubuntu.com> 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
>
>  * 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.
>
> --
>  - mdz

I don't think shipping GCC truly makes sense. Lets look at the use cases:

1. Person compiling something to get them on the internet
Ignore the fact that I have not seen a solid case where you can get
the source without being on net already, nor a solid case where this
is even necessary (I am sure there are, I just haven't looked at
deeply), how many users are actually technically adept enough to do
this?

2. Person wanting to compile some random stuff
If you know what compiling is, you should probably already also know
what to look for. The documentation team will fix the fact that our
help says nothing about gcc or compiling for edgy. If I google "gcc
ubuntu", the first hit I get is how to install build-essential.  Same
with "compiling ubuntu".

Problems mentioned by mdz

1. Linux systems ship with gcc
Fedora ships on 5 cds. Mandriva ships with a mis-mash of GNOME and
KDE. This is Ubuntu. We make choices because they have solid usecases,
not because other people do it. (We should, of course, look at why
they are doing it)

2. A great deal of distribution-agnostic documentation assumes the
availability of gcc
When it fails, people are going to one of two things: Give up or look
for help. If they do the former, there is not much we can do and the
latter is mostly already there (just the system help needs to be
fixed)

3. Users who are new to Ubuntu have no idea how to install the
necessary  packages for building a kernel module

By the same argument, users who are new to Ubuntu are quite likely to
have no idea how to compile either.

Conclusion:
I just don't see a compelling case where build essential is needed.

Corey



More information about the ubuntu-devel mailing list