Installing a compiler by default

Rocco Stanzione grasshopper at linuxkungfu.org
Thu Jun 8 18:20:45 BST 2006


On Thursday 08 June 2006 11:44, 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.

One of the first things I install is build-essential, and 'apt-get install 
build-essential' is one of the more common answers to questions asked on irc.  
+1.

> 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

I agree with all these arguments, and I don't have any more to add just now.

> 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)

I once avoided getting hit by slapper, in spite of a vulnerable apache+openssl 
server, by having gcc executable only by myself.  For Ubuntu, we could make 
this a group permission or UID=1000.  This doesn't help if the user's account 
is compromised, but can help prevent compromised services (like apache) from 
using gcc.

>  * 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.

Thanks,

Rocco



More information about the ubuntu-devel mailing list