Linux From Scratch
Encyclopedia
Linux From Scratch is a type of a Linux
installation and the name of a book written by Gerard Beekmans
among others. The book gives readers instructions on how to build a Linux system from source
. The book is available freely from the Linux From Scratch website and is currently in version 7.0.
Linux From Scratch is a way to install a working Linux
system by building all components of it manually. This is, naturally, a longer process than installing a pre-compiled Linux distribution
. According to the Linux From Scratch website, the advantages to this method are a compact, flexible and secure system and a greater understanding of the internal workings of the Linux-based operating systems.
To keep LFS small and focused, the book Beyond Linux From Scratch (BLFS) was created which presents instructions on how to further develop the basic Linux system that was created in LFS. It introduces and guides the reader through additions to the system including networking, X
, sound, printer and scanner support. Since Release 5.0, the BLFS book version matches the LFS book version.
In addition to the LFS and BLFS books, Cross Linux from Scratch (CLFS) describes cross compiling and Hardened Linux From Scratch (HLFS) focuses on security enhancements like the use of Stack-smashing protection
, PaX
and Address space layout randomization
using grsecurity
. Cross Linux from Scratch provides the necessary instructions to build a base, command line only Linux distribution
. While LFS is limited to the x86 architecture
, CLFS supports a broader range of processors
. CLFS addresses advanced techniques not included in the LFS book such as cross-build toolchain
s, multilibrary support (32 & 64-bit libraries side-by-side), and alternative instruction set architectures such as x86-64
, Itanium
, SPARC
, MIPS
, and Alpha
. Hardened Linux From Scratch focuses on creating a more secure version of the original Linux From Scratch as its main purpose, including embedded systems.
and a working Linux system with a compiler and some essential software libraries are required to build LFS. Instead of installing from an existing Linux system, one can also use a Live CD (e.g., the Linux From Scratch Live CD). The LFS Live CD contains all the source packages (in the full version of the Live CD only), the LFS book, automated building tools and (except for the minimal Live CD version) an Xfce
GUI environment to work in.
First a toolchain
must be compiled consisting of the tools used to compile LFS like GCC
, glibc, binutils and other necessary utilities. Then the root directory
must be changed (using chroot
) to the toolchain's partition
to start building the final system. One of the first packages to compile is glibc; after that, the toolchain's linker must be adjusted to link against the newly built glibc, so that all other packages that will make up the finished system can be linked against it as well. During the chroot
phase, bash's hashing feature is turned off and the temporary toolchain's bin directory moved to the end of PATH. This way the newly compiled programs come first in PATH and the new system builds on its own new components.
This is a list of the packages included in CLFS version 1.1.0. Unless otherwise noted, this list is applicable to all supported architectures.
As of Linux from Scratch version 6.3, the first package built by the user is GNU binutils. When building it, users are encouraged to time that build process using shell constructs and dub that time that system's "standard build unit". Once this number is known, an estimate of the time required to build later packages is expressed relative to the known SBU.
Several packages built during compilation take much longer to build than binutils, including the GNU C library (rated at 9.5 SBUs). The unit is not a concrete description, and must be interpreted as an approximation; many various and unrelated factors influence the wall-clock time that a package requires to build.
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
installation and the name of a book written by Gerard Beekmans
Gerard Beekmans
Gerard Beekmans is the initiator and organizer of the Linux From Scratch project.-External links:* interview with Beekmans on Toolbox.com* interview with Beekmans on Linux.com...
among others. The book gives readers instructions on how to build a Linux system from source
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
. The book is available freely from the Linux From Scratch website and is currently in version 7.0.
Linux From Scratch is a way to install a working Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
system by building all components of it manually. This is, naturally, a longer process than installing a pre-compiled Linux distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
. According to the Linux From Scratch website, the advantages to this method are a compact, flexible and secure system and a greater understanding of the internal workings of the Linux-based operating systems.
To keep LFS small and focused, the book Beyond Linux From Scratch (BLFS) was created which presents instructions on how to further develop the basic Linux system that was created in LFS. It introduces and guides the reader through additions to the system including networking, X
X Window System
The X window system is a computer software system and network protocol that provides a basis for graphical user interfaces and rich input device capability for networked computers...
, sound, printer and scanner support. Since Release 5.0, the BLFS book version matches the LFS book version.
In addition to the LFS and BLFS books, Cross Linux from Scratch (CLFS) describes cross compiling and Hardened Linux From Scratch (HLFS) focuses on security enhancements like the use of Stack-smashing protection
Stack-smashing protection
Buffer overflow protection refers to various techniques used during software development to enhance the security of executable programs by detecting buffer overflows on stack-allocated variables as they occur and preventing them from becoming serious security vulnerabilities...
, PaX
PaX
PaX is a patch for the Linux kernel that implements least privilege protections for memory pages. The least-privilege approach allows computer programs to do only what they have to do in order to be able to execute properly, and nothing more. PaX was first released in 2000.PaX flags data memory as...
and Address space layout randomization
Address space layout randomization
Address space layout randomization is a computer security method which involves randomly arranging the positions of key data areas, usually including the base of the executable and position of libraries, heap, and stack, in a process's address space.- Benefits :Address space randomization hinders...
using grsecurity
Grsecurity
grsecurity is a set of patches for the Linux kernel with an emphasis on enhancing security. Its typical application is in computer systems that accept remote connections from untrusted locations, such as web servers and systems offering shell access to its users.Released under the GNU General...
. Cross Linux from Scratch provides the necessary instructions to build a base, command line only Linux distribution
Linux distribution
A Linux distribution is a member of the family of Unix-like operating systems built on top of the Linux kernel. Such distributions are operating systems including a large collection of software applications such as word processors, spreadsheets, media players, and database applications...
. While LFS is limited to the x86 architecture
X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
, CLFS supports a broader range of processors
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...
. CLFS addresses advanced techniques not included in the LFS book such as cross-build toolchain
Toolchain
In software, a toolchain is the set of programming tools that are used to create a product...
s, multilibrary support (32 & 64-bit libraries side-by-side), and alternative instruction set architectures such as x86-64
X86-64
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets. x86-64 also provides 64-bit general purpose registers and numerous other...
, Itanium
Itanium
Itanium is a family of 64-bit Intel microprocessors that implement the Intel Itanium architecture . Intel markets the processors for enterprise servers and high-performance computing systems...
, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....
, MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
, and Alpha
DEC Alpha
Alpha, originally known as Alpha AXP, is a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations. Alpha was implemented in microprocessors...
. Hardened Linux From Scratch focuses on creating a more secure version of the original Linux From Scratch as its main purpose, including embedded systems.
Requirements and procedure
A clean partitionDisk partitioning
Disk partitioning is the act of dividing a hard disk drive into multiple logical storage units referred to as partitions, to treat one physical disk drive as if it were multiple disks. Partitions are also termed "slices" for operating systems based on BSD, Solaris or GNU Hurd...
and a working Linux system with a compiler and some essential software libraries are required to build LFS. Instead of installing from an existing Linux system, one can also use a Live CD (e.g., the Linux From Scratch Live CD). The LFS Live CD contains all the source packages (in the full version of the Live CD only), the LFS book, automated building tools and (except for the minimal Live CD version) an Xfce
Xfce
Xfce is a free software desktop environment for Unix and other Unix-like platforms, such as Linux, Solaris, and BSD – though recent compatibility issues have arisen with regard to BSD Unix platforms...
GUI environment to work in.
First a toolchain
Toolchain
In software, a toolchain is the set of programming tools that are used to create a product...
must be compiled consisting of the tools used to compile LFS like GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
, glibc, binutils and other necessary utilities. Then the root directory
Root directory
In computer file systems, the root directory is the first or top-most directory in a hierarchy. It can be likened to the root of a tree — the starting point where all branches originate.-Metaphor:...
must be changed (using chroot
Chroot
A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name files outside the designated directory tree. The term "chroot" may refer to the chroot...
) to the toolchain's partition
Disk partitioning
Disk partitioning is the act of dividing a hard disk drive into multiple logical storage units referred to as partitions, to treat one physical disk drive as if it were multiple disks. Partitions are also termed "slices" for operating systems based on BSD, Solaris or GNU Hurd...
to start building the final system. One of the first packages to compile is glibc; after that, the toolchain's linker must be adjusted to link against the newly built glibc, so that all other packages that will make up the finished system can be linked against it as well. During the chroot
Chroot
A chroot on Unix operating systems is an operation that changes the apparent root directory for the current running process and its children. A program that is run in such a modified environment cannot name files outside the designated directory tree. The term "chroot" may refer to the chroot...
phase, bash's hashing feature is turned off and the temporary toolchain's bin directory moved to the end of PATH. This way the newly compiled programs come first in PATH and the new system builds on its own new components.
List of LFS software
This is a list of the packages included in LFS version 6.7:Component | Description | License | Version |
---|---|---|---|
Autoconf Autoconf GNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available.... |
Tool for producing configure scripts Configure script (computing) Developing a program to be run on a wide number of different computers is a complex task. A Configure script matches the libraries on the user's computer, with those required by the program, just before compiling it from its source code.... for C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... , Fortran Fortran Fortran is a general-purpose, procedural, imperative programming language that is especially suited to numeric computation and scientific computing... , Fortran 77, Erlang, Objective-C Objective-C Objective-C is a reflective, object-oriented programming language that adds Smalltalk-style messaging to the C programming language.Today, it is used primarily on Apple's Mac OS X and iOS: two environments derived from the OpenStep standard, though not compliant with it... software on Unix-like Unix-like A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification.... computer systems. |
GNU GPL | 2.67 |
Automake Automake GNU Automake is a programming tool that produces portable makefiles for use by the make program, used in compiling software. It is made by the Free Software Foundation as one of GNU programs, and is part of the GNU build system. The makefiles produced follow the GNU Coding Standards.It is written... |
A programming tool Programming tool A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications... that produces portable makefiles for use by the make program, used in compiling software. |
GNU GPL | 1.11.1 |
Bash | A free software Free software Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do... Unix shell Unix shell A Unix shell is a command-line interpreter or shell that provides a traditional user interface for the Unix operating system and for Unix-like systems... written for the GNU Project GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984... |
GNU GPL | 4.1 |
Binutils | A collection of programming tool Programming tool A programming tool or software development tool is a program or application that software developers use to create, debug, maintain, or otherwise support other programs and applications... s for the manipulation of object code Object code Object code, or sometimes object module, is what a computer compiler produces. In a general sense object code is a sequence of statements in a computer language, usually a machine code language.... in various object file formats. |
GNU GPL | 2.20.1 |
Bison GNU bison GNU bison, commonly known as Bison, is a parser generator that is part of the GNU Project. Bison reads a specification of a context-free language, warns about any parsing ambiguities, and generates a parser which reads sequences of tokens and decides whether the sequence conforms to the syntax... |
A parser generator that is part of the GNU Project GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984... . Bison converts a grammar Formal grammar A formal grammar is a set of formation rules for strings in a formal language. The rules describe how to form strings from the language's alphabet that are valid according to the language's syntax... description for a context-free grammar Context-free grammar In formal language theory, a context-free grammar is a formal grammar in which every production rule is of the formwhere V is a single nonterminal symbol, and w is a string of terminals and/or nonterminals .... into source code for a C C (programming language) C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system.... , C++ C++ C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell... or Java Java (programming language) Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities... parser. |
GNU GPL | 2.4.3 |
Bzip2 Bzip2 bzip2 is a free and open source implementation of the Burrows–Wheeler algorithm. It is developed and maintained by Julian Seward. Seward made the first public release of bzip2, version 0.15, in July 1996.-Compression efficiency:... |
A free Free software Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do... and open source Open-source software Open-source software is computer software that is available in source code form: the source code and certain other rights normally reserved for copyright holders are provided under a software license that permits users to study, change, improve and at times also to distribute the software.Open... lossless data compression Lossless data compression Lossless data compression is a class of data compression algorithms that allows the exact original data to be reconstructed from the compressed data. The term lossless is in contrast to lossy data compression, which only allows an approximation of the original data to be reconstructed, in exchange... algorithm Algorithm In mathematics and computer science, an algorithm is an effective method expressed as a finite list of well-defined instructions for calculating a function. Algorithms are used for calculation, data processing, and automated reasoning... and program developed by Julian Seward Julian Seward Julian Seward is a compiler writer and Free Software contributor who lives in Cambridge, UK. He is commonly known for creating the bzip2 compression tool, as well as the valgrind memory debugging toolset founded in 2000... . |
GNU GPL | 1.0.5 |
Coreutils | A package Software package (installation) In package management systems, which are commonly used with Linux-based operating systems, a package is a specific piece of software which the system can install and uninstall.... of GNU GNU GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"... software containing many of the basic tools, such as cat Cat (Unix) The cat command is a standard Unix program used to concatenate and display files. The name is from catenate, a synonym of concatenate.- Specification :... , ls Ls In computing, ls is a command to list files in Unix and Unix-like operating systems. ls is specified by POSIX and the Single UNIX Specification.- History :An ls utility appeared in the original version of AT&T UNIX... , and rm Rm (Unix) rm is a basic UNIX command used to remove objects such as files, directories, device nodes, symbolic links, and so on from the filesystem... , needed for Unix-like Unix-like A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification.... operating system Operating system An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system... s. |
GNU GPL | 8.5 |
DejaGNU DejaGnu DejaGnu is a framework for testing other programs. It has a main script called runtest that goes through a directory looking at configuration files and then runs some tests with given criteria. The purpose of the DejaGnu package is to provide a single front end for all tests. It is a part of the... |
A framework for testing other programs. It has a main script called runtest that goes through a directory looking at configuration files and then runs some tests with given criteria. | GNU GPL | 1.4.4 |
Diff Diff In computing, diff is a file comparison utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file. Diff displays the changes made per line for text files. Modern implementations also... utils |
A file comparison File comparison File comparison in computing compares the contents of computer files, finding their common contents and their differences. The result of the comparison may be presented in a graphic user interface or as part of larger tasks in networks, file systems, or revision control.Some widely-used file... utility that outputs the differences between two files. |
GNU GPL | 3.0 |
E2fsprogs E2fsprogs e2fsprogs is a set of utilities for maintaining the ext2, ext3 and ext4 file systems. Since those file systems are often the default for Linux distributions, it is commonly considered to be essential software.... |
e2fsprogs (sometimes called the e2fs programs) is a set of utilities for maintaining the ext2 Ext2 The ext2 or second extended filesystem is a file system for the Linux kernel. It was initially designed by Rémy Card as a replacement for the extended file system .... , ext3 Ext3 The ext3 or third extended filesystem is a journaled file system that is commonly used by the Linux kernel. It is the default file system for many popular Linux distributions, including Debian... and ext4 Ext4 The ext4 or fourth extended filesystem is a journaling file system for Linux, developed as the successor to ext3.It was born as a series of backward compatible extensions to ext3, many of them originally developed by Cluster File Systems for the Lustre file system between 2003 and 2006, meant to... file system File system A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the... s. |
GNU GPL | 1.41.12 |
Expect Expect Expect is a Unix automation and testing tool, written by Don Libes as an extension to the Tcl scripting language, for interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, ssh, and others. It uses Unix pseudo terminals to wrap up subprocesses transparently, allowing the... |
Expect is a Unix Unix Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna... automation and testing tool as an extension to the Tcl Tcl Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own... scripting language, for interactive applications Application software Application software, also known as an application or an "app", is computer software designed to help the user to perform specific tasks. Examples include enterprise software, accounting software, office suites, graphics software and media players. Many application programs deal principally with... such as telnet TELNET Telnet is a network protocol used on the Internet or local area networks to provide a bidirectional interactive text-oriented communications facility using a virtual terminal connection... , ftp, passwd Passwd (command) passwd is a tool on most Unix and Unix-like operating systems used to change a user's password. The password entered by the user is run through a key derivation function to create a hashed version of the new password, which is saved... , fsck Fsck The system utility fsck is a tool for checking the consistency of a file system in Unix and Unix-like operating systems such as Linux.-Use:... , rlogin Rlogin rlogin is a software utility for Unix-like computer operating systems that allows users to log in on another host via a network, communicating via TCP port 513.It was first distributed as part of the 4.2BSD release.... , tip Tip (unix utility) tip is a unix utility for establishing a terminal connection to a remote system via a modem. It is commonly associated with Sun's Solaris as it comes with that operating system.-Basics:... , ssh Secure Shell Secure Shell is a network protocol for secure data communication, remote shell services or command execution and other secure network services between two networked computers that it connects via a secure channel over an insecure network: a server and a client... , and others. |
Public domain Public domain Works are in the public domain if the intellectual property rights have expired, if the intellectual property rights are forfeited, or if they are not covered by intellectual property rights at all... |
5.44.1.15 |
File | 5.04 | ||
Find Find In Unix-like and some other operating systems, find is a command-line utility that searches through one or more directory trees of a file system, locates files based on some user-specified criteria and applies a user-specified action on each matched file... utils |
4.4.2 | ||
Flex Flex lexical analyser flex is a free software alternative to lex. It is frequently used with the free Bison parser generator. Unlike Bison, flex is not part of the GNU Project. Flex was written in C by Vern Paxson around 1987... |
flex (fast lexical analyzer generator) is a free software Free software Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do... alternative to lex Lex programming tool Lex is a computer program that generates lexical analyzers . Lex is commonly used with the yacc parser generator. Lex, originally written by Mike Lesk and Eric Schmidt, is the standard lexical analyzer generator on many Unix systems, and a tool exhibiting its behavior is specified as part of the... . |
BSD license | 2.5.35 |
Gawk | Gawk is a programming language Programming language A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.... that is designed for processing text-based data, either in files or data streams |
GNU GPL | 3.1.8 |
GCC GNU Compiler Collection The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain... |
The GNU Compiler Collection (usually shortened to GCC) is a compiler Compiler A compiler is a computer program that transforms source code written in a programming language into another computer language... system produced by the GNU Project GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984... supporting various programming language Programming language A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.... s |
GNU GPL | 4.5.2 |
GDBM Dbm dbm was the first of a family of simple database engines, originally written by Ken Thompson and released by AT&T in 1979. The name is a three letter acronym for database manager.... |
GDBM simple database engine Database engine A database engine is the underlying software component that a database management system uses to create, read, update and delete data from a database.... s |
GNU GPL | 1.8.3 |
Gettext Gettext In computing, gettext is an internationalization and localization system commonly used for writing multilingual programs on Unix-like computer operating systems. The most commonly-used implementation of gettext is GNU gettext, released by the GNU Project in 1995.- History :gettext was originally... |
Gettext is the GNU GNU GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"... internationalization and localization Internationalization and localization In computing, internationalization and localization are means of adapting computer software to different languages, regional differences and technical requirements of a target market... (i18n) library. |
GNU GPL | 0.18.1.1 |
Glibc | The GNU C Library, commonly known as glibc, is the C standard library C standard library The C Standard Library is the standard library for the programming language C, as specified in the ANSI C standard.. It was developed at the same time as the C POSIX library, which is basically a superset of it... released by the GNU Project GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984... . |
GNU GPL | 2.12.1 |
GMP GNU Multi-Precision Library The GNU Multiple Precision Arithmetic Library, also known as GMP, is a free library for arbitrary-precision arithmetic, operating on signed integers, rational numbers, and floating point numbers... |
The GNU Multiple-Precision Library, also known as GMP, is a free Free software Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do... library for arbitrary-precision arithmetic Arbitrary-precision arithmetic In computer science, arbitrary-precision arithmetic indicates that calculations are performed on numbers whose digits of precision are limited only by the available memory of the host system. This contrasts with the faster fixed-precision arithmetic found in most ALU hardware, which typically... , operating on signed integer Integer The integers are formed by the natural numbers together with the negatives of the non-zero natural numbers .They are known as Positive and Negative Integers respectively... s, rational numbers, and floating point Floating point In computing, floating point describes a method of representing real numbers in a way that can support a wide range of values. Numbers are, in general, represented approximately to a fixed number of significant digits and scaled using an exponent. The base for the scaling is normally 2, 10 or 16... numbers. |
GNU GPL | 5.0.1 |
Grep Grep grep is a command-line text-search utility originally written for Unix. The name comes from the ed command g/re/p... |
grep is a command line text search utility originally written for Unix Unix Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna... . |
GNU GPL | 2.6.3 |
Groff Groff (software) Groff is the GNU replacement for the troff and nroff text formatters. It is an original implementation written primarily in C++ by James Clark and is modeled after ditroff, including many extensions. The first version, 0.3.1, was released June 1990. The first stable version, 1.04, was announced in... |
Groff is the GNU GNU GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"... replacement for the troff Troff troff is a document processing system developed by AT&T for the Unix operating system.-History:troff can trace its origins back to a text formatting program called RUNOFF, written by Jerome H. Saltzer for MIT's CTSS operating system in the mid-1960s... and nroff Nroff nroff is a Unix text-formatting program; it produces output suitable for simple fixed-width printers and terminal windows... text formatters. |
GNU GPL | 1.20.1 |
GRUB | GNU GRUB (short for GNU GRand Unified Bootloader) is a boot loader package from the GNU Project GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984... . |
GNU GPL | 1.98 |
Gzip Gzip Gzip is any of several software applications used for file compression and decompression. The term usually refers to the GNU Project's implementation, "gzip" standing for GNU zip. It is based on the DEFLATE algorithm, which is a combination of Lempel-Ziv and Huffman coding... |
Gzip is a software application used for file compression. gzip is short for GNU zip | GNU GPL | 1.4 |
Iana-Etc. | 2.30 | ||
Inetutils | 1.8 | ||
IPRoute2 Iproute2 iproute2 is a collection of utilities for controllingTCP and UDP IP networking and traffic control in Linux, in both IPv4 and IPv6 networks. It is currently maintained by Stephen Hemminger... |
2.6.35 | ||
Kbd | 1.15.2 | ||
Less Less (Unix) less is a terminal pager program on Unix, Windows, and Unix-like systems used to view the contents of a text file one screen at a time. It is similar to more, but has the extended capability of allowing both forward and backward navigation through the file... |
less is a terminal pagerTerminal pager A terminal pager, or paging program, is a computer program used to view the contents of a text file moving down the file one line or one screen at a time. Some, but not all, pagers allow movement up a file. A popular cross-platform terminal pager is more. more can move forwards and backwards in... program Computer program A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute... on Unix Unix Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna... , Windows Microsoft Windows Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal... and Unix-like Unix-like A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification.... systems used to view (but not change) the contents of a text file Text file A text file is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists within a computer file system... one screen at a time. |
Dual: either GPL GNU General Public License The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project.... or BSD-like License |
436 |
LFS-Bootscripts | 6.7 (20100627) | ||
Libtool Libtool GNU Libtool is a GNU programming tool from the GNU build system used for creating portable compiled libraries. To quote the introduction in the :Libtool is typically used with Autoconf and Automake, two other tools of the GNU build system.... |
GNU Libtool is a GNU GNU GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"... programming tool from the GNU build system GNU build system The GNU build system, also known as the Autotools, is a suite of programming tools designed to assist in making source-code packages portable to many Unix-like systems.... used for creating portable compiled libraries Library (computer science) In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications.... . |
GNU GPL | 2.2.10 |
Linux kernel Linux kernel The Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software.... |
The Linux kernel is an operating system kernel Kernel (computing) In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources... used by the Linux Linux Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds... family of Unix-like Unix-like A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification.... operating system Operating system An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system... s. |
GNU GPL | 2.6.35.4 |
GNU m4 GNU m4 GNU m4 is the GNU version of the m4 macro preprocessor. It is designed to avoid many kinds of limits found in traditional m4s: limits like maximum line lengths, maximum size of a macro, number of macros, etc... |
GNU m4 is the GNU GNU GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"... version of the m4 macro preprocessor. |
GNU GPL | 1.4.14 |
Make | Make is a utility Utility software Utility software is system software designed to help analyze, configure, optimize or maintain a computer. A single piece of utility software is usually called a utility or tool.... for automatically build Build Automation Build automation is the act of scripting or automating a wide variety of tasks that software developers do in their day-to-day activities including things like:* compiling computer source code into binary code* packaging binary code* running tests... ing executable programs and libraries from source code Source code In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source... . |
GNU GPL | 3.82 |
Man-DB | 2.5.7 | ||
Man-pages | 3.25 | ||
Module-Init-Tools | 3.12 | ||
MPC MPC -Astronomy:* Megaparsec, unit of length used in astronomy* Minor Planet Center, Smithsonian Astrophysical Observatory**Minor Planet Circulars, or astronomical publication from the Minor Planet Center... |
0.8.2 | ||
MPFR MPFR GNU MPFR is a portable C library for arbitrary-precision binary floating-point computation with correct rounding, based on GNU Multi-Precision Library. The computation is both efficient and has a well-defined semantics. It copies the ideas from the ANSI/IEEE-754 standard for fixed-precision... |
3.0.0 | ||
ncurses Ncurses ncurses is a programming library that provides an API which allows the programmer to write text user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator... |
a programming library for writing text user interfaces in a terminal-independent manner | 5.7 | |
Patch Patch (Unix) patch is a Unix program that updates text files according to instructions contained in a separate file, called a patch file. The patch file is a text file that consists of a list of differences and is produced by running the related diff program with the original and updated file as arguments... |
2.6.1 | ||
Perl Perl Perl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular... |
5.12.1 | ||
Pkg-config | 0.25 | ||
Procps | 3.2.8 | ||
Psmisc | 22.12 | ||
Readline | GNU readline is a software library created and maintained by the GNU Project GNU Project The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984... . |
GNU GPL | 6.1 |
Sed Sed sed is a Unix utility that parses text and implements a programming language which can apply transformations to such text. It reads input line by line , applying the operation which has been specified via the command line , and then outputs the line. It was developed from 1973 to 1974 as a Unix... |
sed (stream editor) is a Unix Unix Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna... utility that (a) parses text files and (b) implements a programming language Programming language A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely.... which can apply textual transformations to such files. |
GNU GPL | 4.2.1 |
Shadow Shadow password In computing, Unix-like operating systems use the shadow password database mechanism to increase the security level of passwords by restricting all but highly privileged users' access to encrypted password data... |
4.1.4.2 | ||
Sysklogd | 1.5 | ||
Sysvinit | 2.88dsf | ||
tar Tar (file format) In computing, tar is both a file format and the name of a program used to handle such files... |
1.23 | ||
Tcl Tcl Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own... |
8.5.8 | ||
Texinfo Texinfo Texinfo is a typesetting syntax used for generating documentation in both on-line and printed form with a single source file... |
4.13a | ||
Udev Udev udev is the device manager for the Linux kernel. Primarily, it manages device nodes in /dev. It is the successor of devfs and hotplug, which means that it handles the /dev directory and all user space actions when adding/removing devices, including firmware load.-History:udev was new in Linux... |
161 | ||
Udev Udev udev is the device manager for the Linux kernel. Primarily, it manages device nodes in /dev. It is the successor of devfs and hotplug, which means that it handles the /dev directory and all user space actions when adding/removing devices, including firmware load.-History:udev was new in Linux... Configuration Tarball |
6.6 (20100128) | ||
Util-linux-ng Util-linux util-linux is a standard package of the Linux operating system. A fork, util-linux-ng—with ng meaning "next generation"—was created when development stalled, but as of January 2011 has been renamed back to util-linux, and is the official version of the package.It includes the following... |
2.18 | ||
Vim Vim (text editor) Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface... |
7.3 | ||
Vim Vim (text editor) Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface... language Language Language may refer either to the specifically human capacity for acquiring and using complex systems of communication, or to a specific instance of such a system of complex communication... files (optional) |
7.3 | ||
Zlib Zlib zlib is a software library used for data compression. zlib was written by Jean-Loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program. Zlib is also a crucial component of many software platforms including Linux, Mac OS X,... |
Zlib is a software library Library (computer science) In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications.... used for data compression Data compression In computer science and information theory, data compression, source coding or bit-rate reduction is the process of encoding information using fewer bits than the original representation would use.... . |
zlib license Zlib License The zlib License is a permissive free software license which defines the terms under which the zlib and libpng software libraries can be distributed. It is also used by other free software packages.... |
1.2.5 |
This is a list of the packages included in CLFS version 1.1.0. Unless otherwise noted, this list is applicable to all supported architectures.
- AutoconfAutoconfGNU Autoconf is a tool for producing configure scripts for building, installing and packaging software on computer systems where a Bourne shell is available....
2.61 - AutomakeAutomakeGNU Automake is a programming tool that produces portable makefiles for use by the make program, used in compiling software. It is made by the Free Software Foundation as one of GNU programs, and is part of the GNU build system. The makefiles produced follow the GNU Coding Standards.It is written...
1.10.1 - Bash 3.2
- Bash Documentation 3.2
- Bin86 (x86_64 non-multilib only)
- Binutils 2.18
- BisonGNU bisonGNU bison, commonly known as Bison, is a parser generator that is part of the GNU Project. Bison reads a specification of a context-free language, warns about any parsing ambiguities, and generates a parser which reads sequences of tokens and decides whether the sequence conforms to the syntax...
2.3 - Bzip2Bzip2bzip2 is a free and open source implementation of the Burrows–Wheeler algorithm. It is developed and maintained by Julian Seward. Seward made the first public release of bzip2, version 0.15, in July 1996.-Compression efficiency:...
1.0.4 - CLFS-Bootscripts 1.0pre10
- Coreutils 6.9
- DejaGNUDejaGnuDejaGnu is a framework for testing other programs. It has a main script called runtest that goes through a directory looking at configuration files and then runs some tests with given criteria. The purpose of the DejaGnu package is to provide a single front end for all tests. It is a part of the...
1.4.4 - DiffDiffIn computing, diff is a file comparison utility that outputs the differences between two files. It is typically used to show the changes between one version of a file and a former version of the same file. Diff displays the changes made per line for text files. Modern implementations also...
utils 2.8.7 - E2fsprogsE2fsprogse2fsprogs is a set of utilities for maintaining the ext2, ext3 and ext4 file systems. Since those file systems are often the default for Linux distributions, it is commonly considered to be essential software....
1.40.4 - Elftoaout 2.3 (Sparc and Sparc64 only)
- ExpectExpectExpect is a Unix automation and testing tool, written by Don Libes as an extension to the Tcl scripting language, for interactive applications such as telnet, ftp, passwd, fsck, rlogin, tip, ssh, and others. It uses Unix pseudo terminals to wrap up subprocesses transparently, allowing the...
5.43.0 - File 4.23
- FindFindIn Unix-like and some other operating systems, find is a command-line utility that searches through one or more directory trees of a file system, locates files based on some user-specified criteria and applies a user-specified action on each matched file...
utils 4.2.32 - FlexFlex lexical analyserflex is a free software alternative to lex. It is frequently used with the free Bison parser generator. Unlike Bison, flex is not part of the GNU Project. Flex was written in C by Vern Paxson around 1987...
2.5.35 - Gawk 3.1.6
- GCCGNU Compiler CollectionThe GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
4.2.4 - GettextGettextIn computing, gettext is an internationalization and localization system commonly used for writing multilingual programs on Unix-like computer operating systems. The most commonly-used implementation of gettext is GNU gettext, released by the GNU Project in 1995.- History :gettext was originally...
0.17 - Glibc 2.7
- GrepGrepgrep is a command-line text-search utility originally written for Unix. The name comes from the ed command g/re/p...
2.5.3 - GroffGroff (software)Groff is the GNU replacement for the troff and nroff text formatters. It is an original implementation written primarily in C++ by James Clark and is modeled after ditroff, including many extensions. The first version, 0.3.1, was released June 1990. The first stable version, 1.04, was announced in...
1.19.2 - GRUB 0.97
- GzipGzipGzip is any of several software applications used for file compression and decompression. The term usually refers to the GNU Project's implementation, "gzip" standing for GNU zip. It is based on the DEFLATE algorithm, which is a combination of Lempel-Ziv and Huffman coding...
1.3.12 - Hfsutils 3.2.6 (PowerPC and PowerPC64 only)
- Iana-Etc. 2.20
- Inetutils 1.5
- IPRoute2Iproute2iproute2 is a collection of utilities for controllingTCP and UDP IP networking and traffic control in Linux, in both IPv4 and IPv6 networks. It is currently maintained by Stephen Hemminger...
2.6.23 - Kbd 1.13
- LessLessLess may refer to:* Less , a band from the San Francisco bay area* LESS , a dynamic stylesheet language.* less , a Unix utility used to view the contents of a text file one screen at a time...
418 - LILOLiloLilo may refer to:People* Lilo , a French actress and singer, the leading lady in the Broadway production of Can-Can* Lilo, nickname of Carmine Galante, American mobster* lilo, nickname of Rob Levin, founder of the freenode IRC network...
22.8 (x86_64 non-multilib only) - LibtoolLibtoolGNU Libtool is a GNU programming tool from the GNU build system used for creating portable compiled libraries. To quote the introduction in the :Libtool is typically used with Autoconf and Automake, two other tools of the GNU build system....
1.5.26 - LinuxLinux kernelThe Linux kernel is an operating system kernel used by the Linux family of Unix-like operating systems. It is one of the most prominent examples of free and open source software....
2.6.24.7 - GNU m4GNU m4GNU m4 is the GNU version of the m4 macro preprocessor. It is designed to avoid many kinds of limits found in traditional m4s: limits like maximum line lengths, maximum size of a macro, number of macros, etc...
1.4.10 - Make 3.81
- Man 1.6e
- Man-pages 3.01
- Mktemp 1.5
- Module-Init-Tools 3.4
- NcursesNcursesncurses is a programming library that provides an API which allows the programmer to write text user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator...
5.6 - Parted 1.8.8 (PowerPC and PowerPC64 only)
- PatchPatch (computing)A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...
2.5.9
- PerlPerlPerl is a high-level, general-purpose, interpreted, dynamic programming language. Perl was originally developed by Larry Wall in 1987 as a general-purpose Unix scripting language to make report processing easier. Since then, it has undergone many changes and revisions and become widely popular...
5.8.8 - PowerPC Utils 1.1.3 (PowerPC and PowerPC64 only)
- Procps 3.2.7
- Psmisc 22.6
- Readline 5.2
- SedSedsed is a Unix utility that parses text and implements a programming language which can apply transformations to such text. It reads input line by line , applying the operation which has been specified via the command line , and then outputs the line. It was developed from 1973 to 1974 as a Unix...
4.1.5 - ShadowShadow passwordIn computing, Unix-like operating systems use the shadow password database mechanism to increase the security level of passwords by restricting all but highly privileged users' access to encrypted password data...
4.1.2 - Silo 1.4.13 (Sparc and Sparc64 only)
- Sysklogd 1.5
- Sysvinit 2.86
- tarTar (file format)In computing, tar is both a file format and the name of a program used to handle such files...
1.20 - TclTclTcl is a scripting language created by John Ousterhout. Originally "born out of frustration", according to the author, with programmers devising their own languages intended to be embedded into applications, Tcl gained acceptance on its own...
8.4.16 - TexinfoTexinfoTexinfo is a typesetting syntax used for generating documentation in both on-line and printed form with a single source file...
4.11 - Tree 1.5.1.1
- UdevUdevudev is the device manager for the Linux kernel. Primarily, it manages device nodes in /dev. It is the successor of devfs and hotplug, which means that it handles the /dev directory and all user space actions when adding/removing devices, including firmware load.-History:udev was new in Linux...
124 - Util-linux-ng 2.14
- VimVim (text editor)Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
7.1 - VimVim (text editor)Vim is a text editor written by Bram Moolenaar and first released publicly in 1991. Based on the vi editor common to Unix-like systems, Vim is designed for use both from a command line interface and as a standalone application in a graphical user interface...
7.1 languageLanguageLanguage may refer either to the specifically human capacity for acquiring and using complex systems of communication, or to a specific instance of such a system of complex communication...
files (optional) - YabootYabootYaboot is a boot loader for PowerPC-based hardware running Linux, particularly New World ROM Macintosh systems. It is built to run within the Open Firmware layer common to most such systems instead of working as a Mac OS 9 program like its predecessor BootX....
1.3.13 (PowerPC and PowerPC64 only) - ZlibZlibzlib is a software library used for data compression. zlib was written by Jean-Loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program. Zlib is also a crucial component of many software platforms including Linux, Mac OS X,...
1.2.3
Standard build unit
A "standard build unit" ("SBU") is a term used during initial bootstrapping of the system, and represents the amount of time required to build the first package in LFS on a given computer. Its creation was prompted by the long length of time required to build an LFS system, and the desire of many of users to know how long a source tarball will take to build ahead of time.As of Linux from Scratch version 6.3, the first package built by the user is GNU binutils. When building it, users are encouraged to time that build process using shell constructs and dub that time that system's "standard build unit". Once this number is known, an estimate of the time required to build later packages is expressed relative to the known SBU.
Several packages built during compilation take much longer to build than binutils, including the GNU C library (rated at 9.5 SBUs). The unit is not a concrete description, and must be interpreted as an approximation; many various and unrelated factors influence the wall-clock time that a package requires to build.