Installing a compiler by default

Matt Zimmerman mdz at ubuntu.com
Tue Jun 13 19:13:49 BST 2006


On Thu, Jun 08, 2006 at 07:26:27PM -0700, Corey Burger wrote:
> 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".

Obviously, statistics are difficult to gather, but both scenarios are seen
regularly in Ubuntu support discussions.  Many Linux novices know how to
compile something simple (like a kernel module) to get them going (this is
by and large a distribution-independent skill) but are inexperienced with
the packaging system in Ubuntu, both which packages they need and where to
get them.

Additionally, I have seen a disturbing frequency of WRONG answers to this
question given in forums, on IRC, etc.  I see people looking for a compiler
who find and install, e.g., the gcc-3.4 package, find that they still don't
have a 'gcc' in their PATH, and when they ask about it, they are told to
futz with the gcc symlinks in /usr/bin, rename the binaries, and other such
problematic "solutions".

What I've tried to explain here is the idea of bridging the gap between
Linux knowledge and Ubuntu knowledge.  Users are learning the wrong ways to
solve their problems, when this is easily prevented by making Ubuntu a
little bit closer to what they expect from other, similar systems.

This is also important to more experienced users.  I have myself been
frustrated by the fact that gcc and linux-headers are not installed on the
live CD, because swap space is often required in order to install them, and
getting at them is inconvenient (the latter could be addressed by making the
ship-live repository available immediately to apt).

> Problems mentioned by mdz
> 
> 1. Linux systems ship with gcc
> Fedora ships on 5 cds.

The packages we're discussing are already on the CD; there would be no
significant change regardless of whether we install it or not.

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

I think that I have identified solid use cases, but consider that this is
a cost-benefit game.  This means that we have two questions to ask:

1. How much benefit is there in doing it?

2. What does it cost us in return?

If we can agree that the first answer is at least "some", the fact that the
second answer is "practically none", it seems like an obvious choice.  We're
talking about an increase of around 1% in the size of the installation, a
few tens of megabytes.  If that expenditure helps even a relatively small
number of users get out of a tight squeeze easily, I think it's worth it.

We've made similar decisions regarding dozens of other software already.  If
we have a choice about whether to include a driver or not, it really doesn't
matter very much how many users need it.  If we can make it Just Work for
a few more users per 1000, at the cost of including an additional unused
kernel module for everyone else, we accept that cost because it's trivial
compared to the benefit.

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

But if we can make it not fail, with a trivial cost to other users,
shouldn't we?

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

See above regarding the difference between being new to Ubuntu and new to
Linux.  If we can make a user's life easier, they are more likely to make
valuable contributions to the community in the future, and users with Linux
experience are more likely to dive in.  They're already enthusiasts,
practically by definition, because it takes a certain adventurous motivation
to start using Linux these days.

-- 
 - mdz



More information about the ubuntu-devel mailing list