Richard A Downing FBCS
richard at 109bean.org.uk
Mon Jan 19 01:22:29 PST 2004
Herewith corrected LFS-References Text hint with all the missing sections
included as 'not applicable'. It passes checkHint.
Richard A Downing FBCS http://www.109bean.org.uk
Anyone sending unwanted advertising e-mail to this address will be
charged $25 for network traffic and computing time. By extracting my
address from this message or its header, you agree to these terms.
-------------- next part --------------
TITLE: LFS Package Reference
LFS VERSION: 5.0 on.
AUTHOR: Richard A Downing FBCS <geek109ZZZhotmailZZZcom>
SYNOPSIS: On-line documentation and training for all the LFS packages.
LICENSE: Free Document License
DESCRIPTION: This is an index to all the packages that make up Linux from
You will find this text version of this document very hard to use. I
have published it in this way only because the LFS Hints standard
says 'text only'. You should always use the latest version on-line at:
Just in case you insist on using this version, note that the numbers
like this  refer to the list of URLs in the appendix.
This text document was produced by running 'lynx -dump' on the website
version on 2004-01-11.
There will probably never be any further revisions of this text version.
What is this Document?
This is an index to all the packages that make up Linux from
Scratch (LFS). Under each package we list, in this order:
1. The homepage for the package, or the freshmeat.net page if
there isn't a homepage we know about.
2. The URL of the manual, possibly the man page, but something to let
you learn what the package does and how to use it. There are a few
packages where we either have nothing yet to tell you here, or the
homepage is the best reference for manuals that we know.
3. Optionally, the URL's of interesting and informative material that
may help you understand the package better, use it for some common
task, or be otherwise educational.
Why would I want to use this material?
You might ask if there is any value in this list: "doesn't the LFS
book contain all I need to build LFS?"
We'll yes it does, but only just sufficient information, and a little
extra educational material so that you can troubleshoot as you
proceed. But what if you want to use your new LFS system? Don't you
want to know what you have just built?
Here is a starting place to understand the software you have already
installed, but have so far only used to build the system itself.
How is the document maintained, and how can I help?
When there is a new major release of LFS we review this document to
check if there are any new packages we need to include, or perhaps
some we don't need any more. Apart from that the content relies on
people like you sending suggestions to the document maintainer.
If you find a useful on-line document about one of the LFS packages,
just send an email to the maintainer with:
1. The URL of the material.
2. A short explanation of why you think it should be included here.
You can also email to say you found something here to be less useful
than you hoped, but we may disagree!
You may feel that your current expertise is too lowly to contribute,
but you are wrong; it is only by using the experiences of people while
they are learning that we can find out which are the best learning
tools. Please take the time to give us some feedback if you can.
We are also interested in the views of people whose first language is
not English. However, because we only speak English fluently, it's
hard for us to maintain lists of good references for other languages.
If you can do that for your language we will happily provide a link to
The Package Index
Autoconf is an extensible package of m4 macros that produce shell
scripts to automatically configure software source code packages.
The ./configure scripts that you run to start the build of almost
every source package was built by Autoconf. If you ever want to write
your own OpenSource package, or build one from CVS, you need to be
able to use Autoconf.
GNU Autoconf, AutoMake and Libtool. a printed and on-line book.
Universally known as The Goat Book
Learning Autoconf and Automake a tutorial.
Automake is a tool for automatically generating `Makefile.in' files
compliant with the GNU Coding Standards.
Automake is the second part of the GNU auto-tools. If you need
Autoconf, then you need Automake too.
Check-out the Autoconf section for other refrerences
Bash is the GNU Project's Bourne Again SHell, a complete
implementation of the POSIX.2 shell specification with interactive
command line editing, job control on architectures that support it,
csh-like features such as history substitution and brace expansion,
and a slew of other features.
The effective use of your shell is the single most important skill
that you need to make use of LFS. If and until you build a graphical
environment, such as XFree86, you will be interacting with Linux
through the shell. The shell we built for LFS is BASH.
GNU Bash Reference Manual (on-line)
GNU Bash Reference Manual (for paper orders, and PDF download)
The Advanced Bash Scripting Guide
Bash Programming - Introduction HOWTO
Working more productively with BASH 2.x
Learning the Bash Shell, 2nd Edition, a recommended paper book.
The GNU Binutils are a collection of binary tools.
These are useful tools to manipulate and interogate object libraries
and programs. If you ask difficult questions on LFS-Support, you may
be asked to use these tools, here's where you find out what they do.
Manual index for the constituent programs of binutils
Bison is a general-purpose parser generator that converts a grammar
description for an LALR context-free grammar into a C program to parse
When UNIX was young, many people attempted to write software to
generate compilers automatically from a definition of the language
that they were intended to compile. One such attempt was called: Yet
Another Compiler-Compiler, or YACC for short. Bison is a modern yacc.
(Joke Hint: Both are ungulates, only one is Tibetan)
You can use a LALR grammar to describe many computer languages, and
then use bison to parse them.
Bison reference manual
The Lex and Yacc Page helps put these tools into context.
lex & yacc, 2nd Edition a paper book that covers Bison.
bzip2 is a freely available, patent free, high-quality data
There are two formats for compressed files commonly used in the UNIX
world, Gzip and Bzip2. LFS builds both packages. Bzip2 is generally
slower tha gzip, but compresses more.
Bzip2 reference manual
The Bzip2 HOWTO
The GNU Core Utilities are the basic file, shell and text manipulation
utilities of the GNU operating system.
Early versions of LFS used three packages, fileutils, shellutils, and
textutils. but these have now been combined into a single package to
provide all the core utilities that a POSIX operating system must
provide. Here are all the little utilities to manipulate files in your
Coreutils reference manual
DejaGnu is a framework for testing other programs.
LFS uses dejagnu to test that the toolchain (binutils, gcc and glibc)
have been successfuly built and installed. Once LFS has been completed
and the /tools directory has been deleted, you won't have dejagnu on
your system anymore, so if you want it, you should re-install it.
The GNU Testing Framework Manual
You can use the diff command to show differences between two files, or
each corresponding file in two directories.
All the patches supplied as part of LFS were created using diff, it's
an important tool.
Comparing and Merging Files with GNU diff and patch, an on-line
Comparing and Merging Files with GNU diff and patch, a book in
paper or PDF format
E2fsprogs provides the filesystem utilities for use with the ext2
filesystem. It also supports the ext3 filesystem with journaling
There does not appear to be an on-line manual for e2fsprogs, if you
know of one, email a URL.
GNU ed is a line-oriented text editor. It's just about as simple as an
editor can be, yet it's very useful in scripts. You can learn enough
of it in a few minutes.
A reference manual
Expect is a tool for automating interactive applications such as
telnet, ftp, passwd, fsck, rlogin, tip, etc.
Once LFS has been completed and the /tools directory has been deleted,
you won't have expect on your system anymore, so if you want it, you
should re-install it.
An article about using expect in scripts.
Another article about using expect.
File attempts to classify files depending on their contents and prints
a description if a match is found.
File freshmeat page
An on-line man page for file
Some information about files
The GNU Find Utilities are the basic directory searching utilities of
the GNU operating system.
Finding Files, the on-line Manual
A Very Valuable Find, an on-line article
Flex is a fast lexical analyser generator.
Back when the world was young and UNIX had just been invented, sad
people wanted to analyse texts, so they wrote Lex, a lexical analyser.
Flex is a compatible, and faster, rewrite of Lex.
Flex reference Manual
Checkout the other references under Bison too.
Gawk is an implementation of the awk utility. The awk utility
interprets a special-purpose programming language that makes it
possible to handle simple data-reformatting jobs with just a few lines
When it was invented Awk was one of the seminal computer programs - it
really did change the world. Even if you give up on it's complicated
syntax, you should still be aware of it. Learning to be fluent in Awk
is a little like a European learning Japanese. Wakarimasu ka?
I give you lots of references, but awk needs lots of study.
The GNU Awk User's Guide
Getting started with awk
How to get things done with awk ?
An Awk Tutorial
The AWK Programming Language, the book on awk, by awk's inventors
Effective awk Programming, 3rd Edition, a paper book on awk
sed & awk, 2nd Edition, yet another book on awk, this time with
sed, two for the price of one!
gcc is the GNU Compiler Collection. There really is far too much that
could be listed here that we limit ourselves to just the official
sites. Program in C, C++, Objective C, Java or ADA, and you'll find
out all about GCC.
The gcc 3.3.2 reference manual, for other versions navigate from
the home page.
Gettext is the GNU internationalization library. Packages that link to
it properly can interface in many natural languages.
Gettext reference manual
The GNU C library is used as the C library in the GNU system and most
newer systems with the Linux kernel.
It's important to realise that, because most utilities and other
libraries are writen in C or C++, the C library underpins far more
than just "programming in C". It's the most critical library on your
Glibc reference manual
Grep searches one or more input files for lines containing a match to
a specified pattern.
Grep reference manual
A simple grep tutorial
Another grep tutorial
A tip about running grep with find
Groff (GNU Troff) software is a typesetting package which reads plain
text mixed with formatting commands and produces formatted output.
The troff markup language is almost as old as UNIX.
A page of references, unfortunately mostly in postscript.
This is a link to the MOM documents on your own machine.
GNU GRUB is a Multiboot boot loader.
The Grub reference manual
gzip (GNU zip) is a compression utility designed to be a replacement
Gzip2 reference manual
Inetutils is a collection of common network programs.
The best advice I can give on learning these is to read the man pages
The kbd package contains keytable files and keyboard utilities.
Kdb freshmeat page
Less is a pager. A pager is a program that displays text files in
This package contains the LFS bootscripts. There is no specific
homepage, just the:
This package contains programs that don't warrant building their whole
package just to get LFS running. It's maintained by the LFS team, so
has no specific homepage, just the:
GNU libtool is a generic library support script. It is part of the GNU
AutoTools, with Autoconf and Automake.
Please also see the Autoconf entry.
Linux is a clone of the operating system Unix, written from scratch by
Linus Torvalds with assistance from a loosely-knit team of hackers
across the Net.
Linux Kernel Project homepage
The Linux Documentation Project homepage is the source for
documents on everything Linux.
GNU m4 is an implementation of the traditional Unix macro processor.
M4 is very important as the GNU Autotools use it. It has not changed
for years and years, and may be the most stable UNIX package of all
M4 reference manual
Make is a tool which controls the generation of executables and other
non-source files of a program from the program's source files.
Once the ./configure script has done it's stuff, the rest of a
standard package build is done by make. Anyone wishing to learn how to
program should have an understanding of how make works.
Make reference manual
MAKEDEV is a script to create the device nodes in /dev. It is LFS
specific, and has no homepages except:
The man page suite, including man, apropos, and whatis consists of
programs that are used to read most of the documentation available on
a Linux system.
Type 'man man' at a shell prompt, it's the best manual you'll find,
On-line man page
The manpages package contains a large collection of man pages for
Linux covering programming APIs, file formats, protocols, etc.
The modutils package contains utilities that are intended to make a
Linux-2.4.x modular kernel manageable for all users, administrators,
and distribution maintainers.
A note here for those of an adventurous nature - Linux-2.6 uses a
different package, finding it I leave as an exercise for the reader.
Modutils freshmeat page
The ncurses (new curses) library is a freeware emulation of System V
Release 4.0 curses.
When the early users of UNIX moved on from teletypewriters to vdus,
they needed a library to make writing programs for vdus easy. Curses,
whose name is an allusion to the cursor, was the result.
The net-tools package contains a collection of programs that form the
base set of the NET-3 networking distribution for the Linux operating
Net-tools freshmeat page
Patch takes a patch file containing a difference listing produced by
the diff program and applies those differences to one or more original
files, producing patched versions.
Patch reference manual
See also the entries under diffutils
Perl is a high-level, general-purpose programming language that makes
easy things easy and hard things possible.
www.perl.org - The Home of Perl
www.perldoc.com - The Perl documentation site
Procinfo is a package to allow you to get useful information from
Procinfo freshmeat page
These utilities report what is running, who is logged in, how long the
system has been running, and what is using up memory.
Miscellaneous proc FS tools: fuser, killall, pidof, and pstree.
Sed, the GNU Stream Editor, copies the named files (standard input
default) to the standard output, edited according to a script of
Sed reference manual
A sourceforge Sed site with lots of tutorial references
Another website with references and tips (a bit MSDOS oriented
sed & awk, 2nd Edition, a book on sed with awk, two for the price
The Shadow password file utilities package includes the programs
necessary to convert traditional V7 UNIX password files to the SVR4
shadow password format, and additional tools to maintain password and
group files (that work with both shadow and non-shadow passwords).
The sysklogd package implements two system log daemons.
Sysklogd freshmeat page
Init is the parent of all processes. Its primary role is to create
processes from a script stored in the file /etc/inittab.
Sysvinit freshmeat page
The tar program provides the ability to create tar archives, as well
as various other kinds of manipulation.
Tar reference manual
Tcl provides a portable scripting environment for Unix, Windows, and
Macintosh that supports string processing and pattern matching, native
file system access, shell-like control over other programs, TCP/IP
networking, timers, and event-driven I/O.
The Tcl and Tk homepage
Texinfo is a documentation system that uses a single source to produce
both on-line information (info, HTML, XML, Docbook) and printed output
Texinfo reference manual
Util-linux s a suite of essential utilities for any Linux system.
Vim is an almost fully-compatible version of the Unix editor Vi.
Vimdoc, the Vim documentation resource
An on-line ebook for students of Vim
zlib is designed to be a free, general-purpose, legally unencumbered,
lossless data-compression library for use on virtually any computer
hardware and operating system.
? Richard A Downing FBCS 2003, 2004
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
copy of the license can be found on the GNU Website by following this
Valid XHTML 1.1!
3. mailto:geek109 at hotmail.com?Subject=LFS-References
7. mailto:geek109 at hotmail.com?Subject=LFS-References
* 1st release as a text file.
NOTE: only the on-line version is maintained actively.
More information about the hints