
nALFS User's Guide

Version 1.1.8-20031009

nALFS Development Team

   Copyright  2001-2003 nALFS Development Team

   This book explains in detail how to install and use nALFS v1.1.8.

   Copyright (c) 2001-2003, nALFS Development Team

   All rights reserved.

   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions are
   met:
     * Redistributions in any form must retain the above copyright
       notice, this list of conditions and the following disclaimer.
     * The names "Linux From Scratch", "Automated Linux From Scratch", or
       the names of its contributors may not be used to endorse or
       promote products derived from this material without specific prior
       written permission.
     * Any material derived from "Linux From Scratch" must contain a
       reference to the "Linux From Scratch" project.
     * Any material derived from "Automated Linux From Scratch" must
       contain a reference to the "Automated Linux From Scratch" project.

   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
   ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     _________________________________________________________________
     _________________________________________________________________

Dedication

   This book is dedicated to the LFS and ALFS communities.

   Table of Contents
   [1]Preface

        [2]Foreword
        [3]Organization
        [4]Who Would Want To Read This Book
        [5]Prerequisites

              [6]Ncurses
              [7]libXML2
              [8]Curl
              [9]OpenSSL
              [10]Other

   1. [11]Welcome to nALFS

        [12]Introduction
        [13]Acknowledgements
        [14]Conventions Used In This Book
        [15]Contact Information

              [16]Mailing Lists
              [17]News Server
              [18]WWW Links
              [19]Other

        [20]ChangeLog

   2. [21]nALFS Installation and Configuration

        [22]Quick Start
     _________________________________________________________________

Preface

Foreword

   From the Editor

   Being a Systems Engineer by trade and having used Linux From Scratch
   (LFS) for about a year, I was looking for a way to automate tasks on
   my Linux servers at work. One day, while surfing the LFS website, I
   found the ALFS project and then the nALFS implementation. After trying
   it out, I fell in love with the tool. I have been able to completely
   automate server builds, software package installation and
   administrative tasks across my data center. Since I like the product
   so much, I wanted to give back to the project and decided to take on
   the task of documentation. I hope you like the product as much as I do
   and it provides the same utility to your environment as it has mine.

     James Robertson
     jwrober@linuxfromscratch.org
     _________________________________________________________________

Organization

   PAGE TO BE WRITTEN
     _________________________________________________________________

Who Would Want To Read This Book

   This is the user's guide for nALFS v1.1.8. If you have nALFS installed
   on your computer and want to know how to use it, then you have found
   the right place. nALFS is a tool to automate the build procedure for
   the LFS book. It can also be used to automate software package
   installation steps or any other administrative task you can think of.
   The ALFS DTD has many features available for use inside the tool.
     _________________________________________________________________

Prerequisites

   nALFS v1.1.8 requires a functioning Linux system with the following
   libraries and programs already installed and configured.
     _________________________________________________________________

Ncurses

   Any recent version should work. If for some reason your system does
   not have ncurses installed, the LFS book provides an excellent
   installation procedure at
   [23]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/ncurses.htm
   l.
     _________________________________________________________________

libXML2

   Any version greater than v2.5.1 should work. One primary feature you
   are looking for is support for XInclude. If for some reason your
   system does not have libXML2 installed or XInclude compiled in, the
   BLFS book provides an excellent installation procedure at
   [24]http://www.linuxfromscratch.org/blfs/view/cvs/general/libxml2.html
   .
     _________________________________________________________________

Curl

     Note: This package is optional.

   Any version greater than v7.10 should work. If for some reason your
   system does not have Curl installed, the BLFS book provides an
   excellent installation procedure at
   [25]http://www.linuxfromscratch.org/blfs/view/cvs/basicnet/curl.html.
     _________________________________________________________________

OpenSSL

     Note: This package is optional.

   Any version greater than v0.9.7 should work. If for some reason your
   system does not have OpenSSL installed, the BLFS book provides an
   excellent installation procedure at
   [26]http://www.linuxfromscratch.org/blfs/view/cvs/general/openssl.html
   .
     _________________________________________________________________

Other

   Of course, any system needs to have the following packages installed
   for the XML handlers to work and to even get the package installed.
   Links to install procedures are provided, just in case.
     * Bzip2 --
       [27]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/bzip2.h
       tml
     * Coreutils --
       [28]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/coreuti
       ls.html
     * Findutils --
       [29]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/finduti
       ls.html
     * Vim or another editor --
       [30]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/vim.htm
       l
     * Libtool --
       [31]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/libtool
       .html
     * Make --
       [32]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/make.ht
       ml
     * Patch --
       [33]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/patch.h
       tml
     * Tar --
       [34]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/tar.htm
       l
     * Util-linux --
       [35]http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/util-li
       nux.html
     _________________________________________________________________

Chapter 1. Welcome to nALFS

Introduction

   LFS stands for Linux From Scratch and it's a project, led by
   [36]Gerard Beekmans -- <gerard@linuxfromscratch.org>, which helps you
   build your own Linux system.

   What this means is that you will use nothing but the source code of
   various software packages needed for a fully functional Linux system.
   You will compile the packages one-by-one on your own computer. During
   this process, you will be able to tweak every single corner of your
   system, by editing a bunch of configuration files, creating your own
   boot scripts etc.

   All this might sound a bit complicated and require too much work. But
   even if it is, it's well worth it. One of the LFS project's secondary
   goals is education. Great care is taken in each step to explain what
   is occuring at each phase of the build procedure.

   Best of all it that it does not have to be that complicated or time
   consuming. With only a few keystrokes and the right software, you can
   just sit back and relax, while your system is being built -- from
   scratch. This is where the ALFS project comes into play.

   ALFS stands for Automated Linux From Scratch, and its aim is to
   provide a much simpler method for building a Linux system.

   ALFS uses profiles (simple XML files) which describe what actions are
   to be taken and what commands executed. Feeding the program (like
   nALFS) with those profiles, will make the program act upon them.

   For example, if you want to create a directory, all you have to do is
   to put:
<mkdir>
        <name>/some/directory</name>
</mkdir>

   in the profile and leave the rest to the program. Of course, you are
   not limited to just compiling packages for LFS. You can do just about
   anything. All it takes is a little time to write a profile for it.

   This might seem very similar to ordinary shell scripting, but it has
   also a lot of advantages. With this approach nALFS (after reading any
   properly formatted profile) can be instructed to pause execution,
   start execution from a selected element (by browsing a profile in a
   tree-like mode), enter special environments like chroot, and much much
   more.
     _________________________________________________________________

Acknowledgements

   For an in depth look at "who did what", you can grep through the
   source code files containing the program's changes. Below is just a
   list of people, in alphabetical order, that had some involvement in
   the nALFS code and/or documentation.
     * [37]Marcus R. Brown <mrbrown@0xd6.org> -- Project developer.
     * [38]Christophe Devine <devine@cr0.net> -- Project developer.
     * [39]Vassili Dzuba <vassili@linuxfromscratch.org> -- Project
       developer.
     * [40]Kevin P. Fleming <kpfleming@linuxfromscratch.org> -- Project
       developer.
     * [41]Charless Fowlkes <fowlkes@cs.berkeley.edu> -- Project
       developer.
     * [42]Neven Has <neven@linuxfromscratch.org> -- nALFS Creator,
       Project developer.
     * [43]Peter van Kampen <pterk@datatailors.com> -- Project developer.
     * [44]James Robertson <jwrober@linuxfromscratch.org> --
       Documentation editor.
     * [45]Maik Schreiber <bZ@iq- computing.de> -- Project developer.
     * [46]Fabien Steinmetz <fabien.st@netcourrier.com> -- Project
       developer.
     * Countless other people on the ALFS mailing lists who are making
       this project happen by giving their suggestions, testing the tool
       and submitting bug reports.
     _________________________________________________________________

Conventions Used In This Book

   To make things easy to follow, there are a number of conventions used
   throughout the book. Following are some examples:
   ./configure --prefix=/usr

     This form of text is designed to be typed in exactly as seen unless
     otherwise noted in the surrounding text.

   install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir'

     This form of text (fixed width text) is showing screen output,
     probably as the result of commands issued and is also used to show
     filenames such as ~/.nALFSrc

   Emphasis

     This form of text is used for several purposes in the book but
     mainly to emphasize important points or to give examples as to what
     to type.

   [47]http://www.linuxfromscratch.org/alfs

     This form of text is used for hyperlinks, both within the book and
     to external pages such as HowTo's, download locations, websites,
     etc.

cat > $LFS/etc/group << "EOF">
        root:x:0:
        bin:x:1:
        ......
EOF

     This type of section is used mainly when creating configuration
     files. The first command (in bold) tells the system to create the
     file $LFS/etc/group from whatever is typed on the following lines
     until the sequence EOF is encountered. Therefore, this whole
     section is generally typed as seen.
     _________________________________________________________________

Contact Information

Mailing Lists

   The nALFS uses two mailing list hosted from the Linux From Scratch
   servers.

   Please direct the majority of your emails to the ALFS mailing list at
   [48]alfs-discuss@linuxfromscratch.org. This is an excellent place to
   post questions and bug reports. For complete mailing list information,
   refer to
   [49]http://www.linuxfromscratch.org/mailman/listinfo/alfs-discuss.

   The second list is really for the development team's use and is
   available at [50]alfs-log@linuxfromscratch.org. This is an excellent
   place to see the daily activity of the project. For complete mailing
   list information, refer to
   [51]http://www.linuxfromscratch.org/mailman/listinfo/alfs-log
     _________________________________________________________________

News Server

   All the mailing lists hosted at linuxfromscratch.org are also
   accessible via the NNTP server. All messages posted to a mailing list
   will be copied to its correspondent newsgroup, and vice versa.

   The news server can be reached at [52]news.linuxfromscratch.org.
     _________________________________________________________________

WWW Links

   Some other links that might interest you:

   Linux From Scratch:

     [53]http://www.linuxfromscratch.org

   Automated Linux From Scratch:

     [54]http://www.linuxfromscratch.org/alfs
     _________________________________________________________________

Other

   The current nALFS documentation maintainer is James Robertson. If you
   need to reach James, send an email to
   [55]jwrober@linuxfromscratch.org.

   The current nALFS source code owner is Neven Has. If you need to reach
   Neven, send an email to [56]neven@linuxfromscratch.org.
     _________________________________________________________________

ChangeLog

   1.1.8-20031009 -- October 9th, 2003
     * October 9th, 2003 [jwrober]: Filled in the prerequisites page.
     * October 7th, 2003 [jwrober]: Added a quick start page from the
       README and basic prerequisites.
     * October 6th, 2003 [jwrober]: Updated the introduction and contact
       info pages.
     * October 6th, 2003 [jwrober]: Preface -- Added a foreward from the
       editor.
     * October 3rd, 2003 [jwrober]: Preface -- Added an introduction,
       updated the acknowledgements, audience and prerequisites.
     * September 29th, 2003 [jwrober]: Added the preface. Most of it is
       empty.
     * September 26th, 2003 [jwrober]: Base document created.
     _________________________________________________________________

Chapter 2. nALFS Installation and Configuration

Quick Start

   Just in case you want to dive right in, this is the quickest way to
   go.

   To configure, compile, install and run nALFS, just type:
./configure
make
make install
nALFS profiles/LFS/latest.xml

   When you enter the program, type "?" for a list of all available
   commands.

References

   1. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#preface
   2. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#preface-foreword
   3. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#preface-organization
   4. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#preface-audience
   5. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#preface-prerequisites
   6. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN57
   7. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN63
   8. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN71
   9. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN79
  10. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN87
  11. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#chapter00
  12. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#ch0-introduction
  13. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#ch0-acknowledgements
  14. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#ch0-conventions
  15. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#ch0-contactinfo
  16. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN220
  17. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN230
  18. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN236
  19. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#AEN247
  20. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#ch0-changelog
  21. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#chapter01
  22. file://localhost/home/jwrober/tmp/nalfsusersguidebuild/nALFS-USERS-GUIDE-CVS-NOHUNKS.html#ch1-quick-start
  23. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/ncurses.html
  24. http://www.linuxfromscratch.org/blfs/view/cvs/general/libxml2.html
  25. http://www.linuxfromscratch.org/blfs/view/cvs/basicnet/curl.html
  26. http://www.linuxfromscratch.org/blfs/view/cvs/general/openssl.html
  27. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/bzip2.html
  28. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/coreutils.html
  29. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/findutils.html
  30. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/vim.html
  31. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/libtool.html
  32. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/make.html
  33. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/patch.html
  34. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/tar.html
  35. http://www.linuxfromscratch.org/lfs/view/cvs/chapter06/util-linux.html
  36. mailto:gerard@linuxfromscratch.org
  37. mailto:mrbrown@0xd6.org
  38. mailto:devine@cr0.net
  39. mailto:vassili@linuxfromscratch.org
  40. mailto:kpfleming@linuxfromscratch.org
  41. mailto:fowlkes@cs.berkeley.edu
  42. mailto:neven@linuxfromscratch.org
  43. mailto:pterk@datatailors.com
  44. mailto:jwrober@linuxfromscratch.org
  45. mailto:bZ@iq-computing.de
  46. mailto:fabien.st@netcourrier.com
  47. http://www.linuxfromscratch.org/alfs
  48. mailto:alfs-discuss@linuxfromscratch.org
  49. http://www.linuxfromscratch.org/mailman/listinfo/alfs-discuss
  50. mailto:alfs-log@linuxfromscratch.org
  51. http://www.linuxfromscratch.org/mailman/listinfo/alfs-log
  52. news:news.linuxfromscratch.org
  53. http://www.linuxfromscratch.org/
  54. http://www.linuxfromscratch.org/alfs
  55. mailto:jwrober@linuxfromscratch.org
  56. mailto:neven@linuxfromscratch.org
