What is Automated Linux From Scratch?
Automated Linux From Scratch (ALFS) is a project that creates the generic framework for an extendable system builder and package installer.
Why would I want to use ALFS?
After having gone through the LFS and BLFS books more than 2 or 3 times, you will quickly appreciate the ability to automate the task of compiling the software you want for your systems.
What can I do with ALFS?
The goal of ALFS is to automate the process of creating an LFS system. It seeks to make the process of building LFS easier and more efficient while still providing flexibility by granting the user total control and insight into the compilation and management of his LFS build.
How is ALFS implemented?
Currently, the official implementation is nALFS by Neven Has. nALFS is a small program written in C. It first parses an XML profile that contains information concerning the LFS build process into a series of internal commands. It can then execute these at your discretion, thus automating the compilation of LFS.
Recently, work has been done on a new implementation of ALFS, called jhalfs. Originally created by Jeremy Huntwork, but since co-authored with Manuel Canales Esparcia, jhalfs has become a light-weight, practical method of automating an LFS build. jhalfs is a Bash shell script that makes use of Subversion and xsltproc to first download the XML sources of the Linux From Scratch book and then extract any necessary commands, placing them into executable shell scripts. If you do not already have the necessary source packages in place on your system jhalfs can fetch them. Finally, jhalfs generates a Makefile which will control the execution of the shell scripts, allowing for recovery if the build should encounter an error. Since jhalfs extracts its commands to run directly from the LFS book, there are no profiles to edit or maintain.
Note: The 0.2 version of jhalfs will only build LFS 6.1.1. The default for jhalfs 0.2 is to build LFS development therefore you must pass the "-L 6.1.1" parameter to the jhalfs program. To build LFS development version, use the trunk version of jhalfs. This is available via svn with the command: "svn export svn://svn.linuxfromscratch.org/ALFS/jhalfs/trunk jhalfs".
There are many in-depth features that have been requested for future ALFS implementations. Because of this, development has been slated for an entirely new build tool which will be called alfs. To see a list of features that will appear in alfs, please read our Software Requirements Specification. If you wish to help develop this new tool, please subscribe to the alfs-discuss mailing list and leave a note there explaining your desire to help.
- Project Leader: Thomas Pegg
- Developer (XML): Matthew Burgess
- Developer (jhalfs): George Boudreau
- Developer (jhalfs): Manuel Canales Esparcia
- Developer (jhalfs): Jeremy Huntwork
- Developer (nALFS): Jamie Bennett
- Developer (Profile Editor): Joachim Beckers