Compiling

Jonathan Hutchins hutchins at opus1.com
Mon Mar 4 18:21:22 CST 2002


I'd like to pull this idea back from a Gentoo install fest or a "compile
everything from scratch" idea to what I was driving at to begin with -
taking the non-programming user from a pre-compiled binary environment and
getting them through their first custom-compiled kernel.  I think that would
be ambitious enough for a "compile-fest".

There are some HOWTOs that help, and in the Kernel source is a document that
lists the suggested or required version of each program, library, compiler,
etc. to compile the kernel.  The thing is, it lists them by file, not by
binary package.  I know that the RPM tools will let you hunt individual
files, but it's an arduous process.

What I'm after is a list of RPMs that are the make-or-break installations if
you want to compile a kernel.  Give me a list of these and all I need is to
run the "make" scripts.  Yes, there's a lot to learn about optimizing the
kernel, but at least I'm not going to be lost in dependency hell.

Since one of the things an RPM can do is to check dependencies and list
what's needed, it would actually be possible to construct an RPM that did
just that for a specific project like this.  Run rpm -ivh kernel-compile,
and it will tell you "these rpms need to be installed, the rest are fine".
Once they get the newer RPM managers actually working, they will offer to
download and install the packages.

So I guess I'll proceed on this with these assumptions:

 - You're an intelligent person with a good technical knowledge of PC's at a
system administrator level.
 - You are not now and never have been a PC Programmer, and do not intend to
become one.
 - You are running an RPM based distribution, on which you have removed or
not installed anything that looked like a development tool or library.

Most of what I've found so far either assumes that you do some compiling and
programming already, or that you are on a non-RPM platform (or both).

My next step, personally, is to print out the detailed explanation of the
"make config" choices to study and mark up.  Once I have the configuration
plan in hand, I'll start installing the required packages and do a trial
compile.

One thing that's not at all clear is that if you change kernels too much,
your modules and library links change too, and unless you have more than one
complete trees, you could end up unable to go back because your new modules
won't work with your old kernel, or the new kernel wanted new libraries
which over-wrote the old ones.  Developers deal with this by having the
whole kernel/boot/module/library/compile tree in more than one place and
version, but there are places where this has to be managed by manually
switching links.




More information about the Kclug mailing list