> One problem that seems to pop up a lot is students running make and then
> forgetting make install.
> What I have thought about is to produce a simple list of files of
> critical directories at appropriate times where a comparison to a
> reference list could highlight missing files.
A student of shell operations should try to create the reference list
by himself.
I posted a solution to this list recently:
for file in *html
do
echo -n $file;
sed -n -r '/Installed [Pp]rograms?:/,/<\/span>/p' $file |\
sed -e 's/</\n</g' -e 's/>/>\n/g' |\
grep -v '^<.*>$' | tr -s '\n' ' '
echo; echo
done | sed 's/(.[^(]*)//g'
I observe some discrepancies between what this list produces and what
is actually installed. Is the content of "installed programs" actually
checked with each update of the LFS Book? There is also the possibility
that installation of a small number of programs is architecture dependent.
---
Relying on one big sanity check is usually not a good idea. It may
fit the needs of experienced users or ALFS, but for novices I
recommend conducting checks frequently. It should be a habit. A
simple, common-sense test with obvious results is better than one that
is sophisticated, produces much output and difficult to interpret.
If forgetting "make install" is the typical mistake for many students,
the remedy would be examining whether the intended installation
succeeded at the end of each section.
One would do the following after the "grep" section:
ls -l /tools/bin/grep /tools/bin/[ef]grep # Chapter 5
ls -l /usr/bin/grep /usr/bin/[ef]grep # Chapter 6
The problem with the above is that it won't help when one skips a whole
section. To check for that I recommend:
find /tools/bin -newer /tools/bin/bash # files installed after bash
---
As a general issue I notice that in any profession a significant
portion of what is known as "experience" is conducting checks and
interpreting the results. Computer specialists are an exception in
this sense. I don't think there is an O'Reilly book dedicated to this
subject. One obvious cause is that the computer industry is still in
its infancy and not much experience has been accumulated in the
aggregate.
I believe there is another, less obvious, reason.
When doing LFS people execute commands that they aren't familiar with.
This is why we have this in 4.2. "Creating the $LFS/tools Directory":
ln -sv $LFS/tools /
Note
The above command is correct. The ln command has a few
syntactic variations, so be sure to check info coreutils ln and
ln(1) before reporting what you may think is an error.
And it is why many students would skip "make install" and not notice.
Computer engineers are specialized. A large part of the expertize is
knowing what to ignore. A person of this kind avoids venturing into
the unfamiliar.
Preventing mistakes when one is operating in unfamiliar territory is
an skill which has hitherto been given little attention.
--
http://lists.linuxfromscratch.org/listinfo/lfs-dev
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page