Let's get to the core problem

Eric A. Ayer mwalker at ee.pdx.edu
Sat Jun 24 15:12:34 PDT 2000

First of all, I finally read through all of the original "Ok, let's start"
message, and yes Gerard, I am subscribed to this list :)

Now I've been seeing a lot of ideas about what different boot methods to use,
and although those ideas will be important later, now is not the time to
consider them.  It's a case of bottom-up design (dealing with details before
dealing with the top level of the design).  As an engineer and programmer, I
can assure you that this approach will kill the project at the beginning.

So the question is how to build a tool for automated installation of LFS
systems.  First I suggest building the simplest Linux system to install from,
namely, a bootable CD.  Adding a single boot (kernel) disk would be a trivial
task, and will cover all non-bootable CDs.  Second, the install tool needs to
be designed and built.

Some thoughts on the bootable CD:  First, the files included on the CD should,
in my humble opinion, be limited to those that are necessary for booting and
compiling the sources (plus the sources themselves).  Unneeded programs would
be un-included.  That means going through each package and picking out what is
needed and what is not.  More on this later.  Second, keep in mind that ISO
images are not capable of supporting links, hard or soft, and we're going to
need those, so a purely ISO boot system may not work.

A lot of the installation of the various packages comes down to running shell
commands.  Granted, a shell script is not the answere to the entire process of
the install, but a lot of things may come down to being shell scripts.  One
possibility I see is that the commands in the shell scripts could be run one
by one in a sort of single step mode, so the user can see and/or change what
will be run.  I can imagine something like an "ncurses screen" showing the
commands for configuring, making, etc, either just as they are running or in
interactive mode.

Should we implement LSB in this?  I really like the idea of a standard base,
and I see why it is needed (badly).  However, I don't want to create a
standard base that is designed purely for one set of vendors, namely, the
database vendors.  If the standard base is created, it should provide a common
system that can be used for many applications, providing a stable environment
for all of them.  Now the DB guys aren't going to like that statement, but just
keep in mind that, if LSB promotes a system that runs DB and nothing else,
nobody's going to use it.

I would think that DB only needs a basic system to run on, pretty much where
the LFS project (officially) stops.  The kernel, init, and basic utilities may
be all that is needed for LSB, and if basic networking and some form of X are
needed, that's ok too.  Specifying an entire filesystem layout that is not
compatible with other apps would be way too much, but requiring a few things
may be ok.

Lately, I have been working on my own set of install scripts.  There is a file
called "vars" which set a few shell variables, like TARDIR, INSTDIR, and such,
and also defines a few shell functions.  Then there are scripts to install
each program.  They all use vars, and they have different modes of installation
such as regualr, bootdisk, keep sources, etc.  The idea was that the user
could install just the required files for a bootdisk system (I really don't
like that my bootdisk was 45MB compressed), or tweak a few things if they
wanted to.  Perhaps some of my ideas, like the others I have seen, can contrib.

Related to this last item, I have a shell programming question.  I wanted to
write a shell function to copy directories from one place to another recurs-
ively, creating sub-dirs as needed and checking for overwrites.  This is one
of those functions in vars.  I found that shell functions can't be recursive,
so I need to get a directory listing into a shell variable and step through
each item.  Easy enough to create the variable - dirvar=`ls`.  But how do you
get one item out of that variable?  I remember doing this before, sucking out
one word from the variable, but I can't remember how.  Any ideas?

Anyway, hope this helps the project.


Mail archive: http://www.pcrdallas.com/mail-archives/alfs-discuss
IRC access: server: irc.linuxfromscratch.org port: 6667 channel: #LFS
Unsubscribe: email alfs-discuss-request at linuxfromscratch.org and put
"unsubscribe" (without the quotation marks) in the body of the message
(no subject is required)

More information about the alfs-discuss mailing list