Linux From Scratch Version 7.8
Gerard Beekmans
Computers & Technology
Linux From Scratch Version 7.8
Free
Description
Contents
Reviews

There are many reasons why you would want to read this book. One of the questions many people raise is, “why go through all the hassle of manually building a Linux system from scratch when you can just download and install an existing one?”



One important reason for this project's existence is to help you learn how a Linux system works from the inside out. Building an LFS system helps demonstrate what makes Linux tick, and how things work together and depend on each other. One of the best things that this learning experience can provide is the ability to customize a Linux system to suit your own unique needs.


Another key benefit of LFS is that it allows you to have more control over the system without relying on someone else's Linux implementation. With LFS, you are in the driver's seat and dictate every aspect of the system.


LFS allows you to create very compact Linux systems. When installing regular distributions, you are often forced to install a great many programs which are probably never used or understood. These programs waste resources. You may argue that with today's hard drive and CPUs, such resources are no longer a consideration. Sometimes, however, you are still constrained by size considerations if nothing else. Think about bootable CDs, USB sticks, and embedded systems. Those are areas where LFS can be beneficial.


Another advantage of a custom built Linux system is security. By compiling the entire system from source code, you are empowered to audit everything and apply all the security patches desired. It is no longer necessary to wait for somebody else to compile binary packages that fix a security hole. Unless you examine the patch and implement it yourself, you have no guarantee that the new binary package was built correctly and adequately fixes the problem.
The goal of Linux From Scratch is to build a complete and usable foundation-level system. If you do not wish to build your own Linux system from scratch, you may not entirely benefit from the information in this book.


There are too many other good reasons to build your own LFS system to list them all here. In the end, education is by far the most powerful of reasons. As you continue in your LFS experience, you will discover the power that information and knowledge truly bring.


Donate or contribute to the LFS Project.

Language
English
ISBN
Unknown
Linux From Scratch
Table of Contents
Preface
Foreword
Audience
LFS Target Architectures
LFS and Standards
Rationale for Packages in the Book
Prerequisites
Host System Requirements
Typography
Structure
Part I - Introduction
Part II - Preparing for the Build
Part III - Building the LFS System
Errata
Part I. Introduction
Chapter 1. Introduction
1.1. How to Build an LFS System
1.2. What's new since the last release
1.3. Changelog
1.4. Resources
1.4.1. FAQ
1.4.2. Mailing Lists
1.4.3. IRC
1.4.4. Mirror Sites
1.4.5. Contact Information
1.5. Help
1.5.1. Things to Mention
1.5.2. Configure Script Problems
1.5.3. Compilation Problems
Part II. Preparing for the Build
Chapter 2. Preparing a New Partition
2.1. Introduction
2.2. Creating a New Partition
2.2.1. Other Partition Issues
2.2.1.1. The Root Partition
2.2.1.2. The Swap Partition
2.2.1.3. Convenience Partitions
2.3. Creating a File System on the Partition
2.4. Setting The $LFS Variable
2.5. Mounting the New Partition
Chapter 3. Packages and Patches
3.1. Introduction
3.2. All Packages
3.3. Needed Patches
Chapter 4. Final Preparations
4.1. Introduction
4.2. Creating the $LFS/tools Directory
4.3. Adding the LFS User
4.4. Setting Up the Environment
4.5. About SBUs
4.6. About the Test Suites
Chapter 5. Constructing a Temporary System
5.1. Introduction
5.2. Toolchain Technical Notes
5.3. General Compilation Instructions
5.4. Binutils-2.25.1 - Pass 1
5.4.0. 
5.4.1. Installation of Cross Binutils
5.4.2. 
5.5. GCC-5.2.0 - Pass 1
5.5.0. 
5.5.1. Installation of Cross GCC
5.5.2. 
5.6. Linux-4.2 API Headers
5.6.0. 
5.6.1. Installation of Linux API Headers
5.6.2. 
5.7. Glibc-2.22
5.7.0. 
5.7.1. Installation of Glibc
5.7.2. 
5.8. Libstdc++-5.2.0
5.8.0. 
5.8.1. Installation of Target Libstdc++
5.8.2. 
5.9. Binutils-2.25.1 - Pass 2
5.9.0. 
5.9.1. Installation of Binutils
5.9.2. 
5.10. GCC-5.2.0 - Pass 2
5.10.0. 
5.10.1. Installation of GCC
5.10.2. 
5.11. Tcl-core-8.6.4
5.11.0. 
5.11.1. Installation of Tcl-core
5.11.2. Contents of Tcl-core
5.12. Expect-5.45
5.12.0. 
5.12.1. Installation of Expect
5.12.2. Contents of Expect
5.13. DejaGNU-1.5.3
5.13.0. 
5.13.1. Installation of DejaGNU
5.13.2. Contents of DejaGNU
5.14. Check-0.10.0
5.14.0. 
5.14.1. Installation of Check
5.14.2. Contents of Check
5.15. Ncurses-6.0
5.15.0. 
5.15.1. Installation of Ncurses
5.15.2. 
5.16. Bash-4.3.30
5.16.0. 
5.16.1. Installation of Bash
5.16.2. 
5.17. Bzip2-1.0.6
5.17.0. 
5.17.1. Installation of Bzip2
5.17.2. 
5.18. Coreutils-8.24
5.18.0. 
5.18.1. Installation of Coreutils
5.18.2. 
5.19. Diffutils-3.3
5.19.0. 
5.19.1. Installation of Diffutils
5.19.2. 
5.20. File-5.24
5.20.0. 
5.20.1. Installation of File
5.20.2. 
5.21. Findutils-4.4.2
5.21.0. 
5.21.1. Installation of Findutils
5.21.2. 
5.22. Gawk-4.1.3
5.22.0. 
5.22.1. Installation of Gawk
5.22.2. 
5.23. Gettext-0.19.5.1
5.23.0. 
5.23.1. Installation of Gettext
5.23.2. 
5.24. Grep-2.21
5.24.0. 
5.24.1. Installation of Grep
5.24.2. 
5.25. Gzip-1.6
5.25.0. 
5.25.1. Installation of Gzip
5.25.2. 
5.26. M4-1.4.17
5.26.0. 
5.26.1. Installation of M4
5.26.2. 
5.27. Make-4.1
5.27.0. 
5.27.1. Installation of Make
5.27.2. 
5.28. Patch-2.7.5
5.28.0. 
5.28.1. Installation of Patch
5.28.2. 
5.29. Perl-5.22.0
5.29.0. 
5.29.1. Installation of Perl
5.29.2. 
5.30. Sed-4.2.2
5.30.0. 
5.30.1. Installation of Sed
5.30.2. 
5.31. Tar-1.28
5.31.0. 
5.31.1. Installation of Tar
5.31.2. 
5.32. Texinfo-6.0
5.32.0. 
5.32.1. Installation of Texinfo
5.32.2. 
5.33. Util-linux-2.27
5.33.0. 
5.33.1. Installation of Util-linux
5.34. Xz-5.2.1
5.34.0. 
5.34.1. Installation of Xz
5.34.2. 
5.35. Stripping
5.36. Changing Ownership
Part III. Building the LFS System
Chapter 6. Installing Basic System Software
6.1. Introduction
6.1.1. About libraries
6.2. Preparing Virtual Kernel File Systems
6.2.1. Creating Initial Device Nodes
6.2.2. Mounting and Populating /dev
6.2.3. Mounting Virtual Kernel File Systems
6.3. Package Management
6.3.1. Upgrade Issues
6.3.2. Package Management Techniques
6.3.2.1. It is All in My Head!
6.3.2.2. Install in Separate Directories
6.3.2.3. Symlink Style Package Management
6.3.2.4. Timestamp Based
6.3.2.5. Tracing Installation Scripts
6.3.2.6. Creating Package Archives
6.3.2.7. User Based Management
6.3.3. Deploying LFS on Multiple Systems
6.4. Entering the Chroot Environment
6.5. Creating Directories
6.5.1. FHS Compliance Note
6.6. Creating Essential Files and Symlinks
6.7. Linux-4.2 API Headers
6.7.0. 
6.7.1. Installation of Linux API Headers
6.7.2. Contents of Linux API Headers
6.8. Man-pages-4.02
6.8.0. 
6.8.1. Installation of Man-pages
6.8.2. Contents of Man-pages
6.9. Glibc-2.22
6.9.0. 
6.9.1. Installation of Glibc
6.9.2. Configuring Glibc
6.9.2.1. Adding nsswitch.conf
6.9.2.2. Adding time zone data
6.9.2.3. Configuring the Dynamic Loader
6.9.3. Contents of Glibc
6.10. Adjusting the Toolchain
6.11. Zlib-1.2.8
6.11.0. 
6.11.1. Installation of Zlib
6.11.2. Contents of Zlib
6.12. File-5.24
6.12.0. 
6.12.1. Installation of File
6.12.2. Contents of File
6.13. Binutils-2.25.1
6.13.0. 
6.13.1. Installation of Binutils
6.13.2. Contents of Binutils
6.14. GMP-6.0.0a
6.14.0. 
6.14.1. Installation of GMP
6.14.2. Contents of GMP
6.15. MPFR-3.1.3
6.15.0. 
6.15.1. Installation of MPFR
6.15.2. Contents of MPFR
6.16. MPC-1.0.3
6.16.0. 
6.16.1. Installation of MPC
6.16.2. Contents of MPC
6.17. GCC-5.2.0
6.17.0. 
6.17.1. Installation of GCC
6.17.2. Contents of GCC
6.18. Bzip2-1.0.6
6.18.0. 
6.18.1. Installation of Bzip2
6.18.2. Contents of Bzip2
6.19. Pkg-config-0.28
6.19.0. 
6.19.1. Installation of Pkg-config
6.19.2. Contents of Pkg-config
6.20. Ncurses-6.0
6.20.0. 
6.20.1. Installation of Ncurses
6.20.2. Contents of Ncurses
6.21. Attr-2.4.47
6.21.0. 
6.21.1. Installation of Attr
6.21.2. Contents of Attr
6.22. Acl-2.2.52
6.22.0. 
6.22.1. Installation of Acl
6.22.2. Contents of Acl
6.23. Libcap-2.24
6.23.0. 
6.23.1. Installation of Libcap
6.23.2. Contents of Libcap
6.24. Sed-4.2.2
6.24.0. 
6.24.1. Installation of Sed
6.24.2. Contents of Sed
6.25. Shadow-4.2.1
6.25.0. 
6.25.1. Installation of Shadow
6.25.2. Configuring Shadow
6.25.3. Setting the root password
6.25.4. Contents of Shadow
6.26. Psmisc-22.21
6.26.0. 
6.26.1. Installation of Psmisc
6.26.2. Contents of Psmisc
6.27. Procps-ng-3.3.11
6.27.0. 
6.27.1. Installation of Procps-ng
6.27.2. Contents of Procps-ng
6.28. E2fsprogs-1.42.13
6.28.0. 
6.28.1. Installation of E2fsprogs
6.28.2. Contents of E2fsprogs
6.29. Coreutils-8.24
6.29.0. 
6.29.1. Installation of Coreutils
6.29.2. Contents of Coreutils
6.30. Iana-Etc-2.30
6.30.0. 
6.30.1. Installation of Iana-Etc
6.30.2. Contents of Iana-Etc
6.31. M4-1.4.17
6.31.0. 
6.31.1. Installation of M4
6.31.2. Contents of M4
6.32. Flex-2.5.39
6.32.0. 
6.32.1. Installation of Flex
6.32.2. Contents of Flex
6.33. Bison-3.0.4
6.33.0. 
6.33.1. Installation of Bison
6.33.2. Contents of Bison
6.34. Grep-2.21
6.34.0. 
6.34.1. Installation of Grep
6.34.2. Contents of Grep
6.35. Readline-6.3
6.35.0. 
6.35.1. Installation of Readline
6.35.2. Contents of Readline
6.36. Bash-4.3.30
6.36.0. 
6.36.1. Installation of Bash
6.36.2. Contents of Bash
6.37. Bc-1.06.95
6.37.0. 
6.37.1. Installation of Bc
6.37.2. Contents of Bc
6.38. Libtool-2.4.6
6.38.0. 
6.38.1. Installation of Libtool
6.38.2. Contents of Libtool
6.39. GDBM-1.11
6.39.0. 
6.39.1. Installation of GDBM
6.39.2. Contents of GDBM
6.40. Expat-2.1.0
6.40.0. 
6.40.1. Installation of Expat
6.40.2. Contents of Expat
6.41. Inetutils-1.9.4
6.41.0. 
6.41.1. Installation of Inetutils
6.41.2. Contents of Inetutils
6.42. Perl-5.22.0
6.42.0. 
6.42.1. Installation of Perl
6.42.2. Contents of Perl
6.43. XML::Parser-2.44
6.43.0. 
6.43.1. Installation of XML::Parser
6.43.2. Contents of XML::Parser
6.44. Autoconf-2.69
6.44.0. 
6.44.1. Installation of Autoconf
6.44.2. Contents of Autoconf
6.45. Automake-1.15
6.45.0. 
6.45.1. Installation of Automake
6.45.2. Contents of Automake
6.46. Diffutils-3.3
6.46.0. 
6.46.1. Installation of Diffutils
6.46.2. Contents of Diffutils
6.47. Gawk-4.1.3
6.47.0. 
6.47.1. Installation of Gawk
6.47.2. Contents of Gawk
6.48. Findutils-4.4.2
6.48.0. 
6.48.1. Installation of Findutils
6.48.2. Contents of Findutils
6.49. Gettext-0.19.5.1
6.49.0. 
6.49.1. Installation of Gettext
6.49.2. Contents of Gettext
6.50. Intltool-0.51.0
6.50.0. 
6.50.1. Installation of Intltool
6.50.2. Contents of Intltool
6.51. Gperf-3.0.4
6.51.0. 
6.51.1. Installation of Gperf
6.51.2. Contents of Gperf
6.52. Groff-1.22.3
6.52.0. 
6.52.1. Installation of Groff
6.52.2. Contents of Groff
6.53. Xz-5.2.1
6.53.0. 
6.53.1. Installation of Xz
6.53.2. Contents of Xz
6.54. GRUB-2.02~beta2
6.54.0. 
6.54.1. Installation of GRUB
6.54.2. Contents of GRUB
6.55. Less-458
6.55.0. 
6.55.1. Installation of Less
6.55.2. Contents of Less
6.56. Gzip-1.6
6.56.0. 
6.56.1. Installation of Gzip
6.56.2. Contents of Gzip
6.57. IPRoute2-4.2.0
6.57.0. 
6.57.1. Installation of IPRoute2
6.57.2. Contents of IPRoute2
6.58. Kbd-2.0.3
6.58.0. 
6.58.1. Installation of Kbd
6.58.2. Contents of Kbd
6.59. Kmod-21
6.59.0. 
6.59.1. Installation of Kmod
6.59.2. Contents of Kmod
6.60. Libpipeline-1.4.1
6.60.0. 
6.60.1. Installation of Libpipeline
6.60.2. Contents of Libpipeline
6.61. Make-4.1
6.61.0. 
6.61.1. Installation of Make
6.61.2. Contents of Make
6.62. Patch-2.7.5
6.62.0. 
6.62.1. Installation of Patch
6.62.2. Contents of Patch
6.63. Sysklogd-1.5.1
6.63.0. 
6.63.1. Installation of Sysklogd
6.63.2. Configuring Sysklogd
6.63.3. Contents of Sysklogd
6.64. Sysvinit-2.88dsf
6.64.0. 
6.64.1. Installation of Sysvinit
6.64.2. Contents of Sysvinit
6.65. Tar-1.28
6.65.0. 
6.65.1. Installation of Tar
6.65.2. Contents of Tar
6.66. Texinfo-6.0
6.66.0. 
6.66.1. Installation of Texinfo
6.66.2. Contents of Texinfo
6.67. Eudev-3.1.2
6.67.0. 
6.67.1. Installation of Eudev
6.67.2. Configuring Eudev
6.67.3. Contents of Eudev
6.68. Util-linux-2.27
6.68.0. 
6.68.1. FHS compliance notes
6.68.2. Installation of Util-linux
6.68.3. Contents of Util-linux
6.69. Man-DB-2.7.2
6.69.0. 
6.69.1. Installation of Man-DB
6.69.2. Non-English Manual Pages in LFS
6.69.3. Contents of Man-DB
6.70. Vim-7.4
6.70.0. 
6.70.1. Installation of Vim
6.70.2. Configuring Vim
6.70.3. Contents of Vim
6.71. About Debugging Symbols
6.72. Stripping Again
6.73. Cleaning Up
Chapter 7. System Configuration and Bootscripts
7.1. Introduction
7.1.1. System V
7.2. LFS-Bootscripts-20150222
7.2.0. 
7.2.1. Installation of LFS-Bootscripts
7.2.2. Contents of LFS-Bootscripts
7.3. Overview of Device and Module Handling
7.3.1. History
7.3.2. Udev Implementation
7.3.2.1. Sysfs
7.3.2.2. Device Node Creation
7.3.2.3. Module Loading
7.3.2.4. Handling Hotpluggable/Dynamic Devices
7.3.3. Problems with Loading Modules and Creating Devices
7.3.3.1. A kernel module is not loaded automatically
7.3.3.2. A kernel module is not loaded automatically, and Udev is not intended to load it
7.3.3.3. Udev loads some unwanted module
7.3.3.4. Udev creates a device incorrectly, or makes a wrong symlink
7.3.3.5. Udev rule works unreliably
7.3.3.6. Device naming order changes randomly after rebooting
7.3.4. Useful Reading
7.4. Managing Devices
7.4.1. Network Devices
7.4.1.1. Disabling Persistent Naming on the Kernel Command Line
7.4.1.2. Creating Custom Udev Rules
7.4.2. CD-ROM symlinks
7.4.3. Dealing with duplicate devices
7.5. General Network Configuration
7.5.1. Creating Network Interface Configuration Files
7.5.2. Creating the /etc/resolv.conf File
7.5.3. Configuring the system hostname
7.5.4. Customizing the /etc/hosts File
7.6. System V Bootscript Usage and Configuration
7.6.1. How Do the System V Bootscripts Work?
7.6.2. Configuring Sysvinit
7.6.2.1. Changing Run Levels
7.6.3. Udev Bootscripts
7.6.3.1. Module Loading
7.6.3.2. Handling Hotpluggable/Dynamic Devices
7.6.4. Configuring the System Clock
7.6.5. Configuring the Linux Console
7.6.6. Creating Files at Boot
7.6.7. Configuring the sysklogd Script
7.6.8. The rc.site File
7.6.8.1. Customizing the Boot and Shutdown Scripts
7.7. The Bash Shell Startup Files
7.8. Creating the /etc/inputrc File
7.9. Creating the /etc/shells File
Chapter 8. Making the LFS System Bootable
8.1. Introduction
8.2. Creating the /etc/fstab File
8.3. Linux-4.2
8.3.0. 
8.3.1. Installation of the kernel
8.3.2. Configuring Linux Module Load Order
8.3.3. Contents of Linux
8.4. Using GRUB to Set Up the Boot Process
8.4.1. Introduction
8.4.2. GRUB Naming Conventions
8.4.3. Setting Up the Configuration
8.4.4. Creating the GRUB Configuration File
Chapter 9. The End
9.1. The End
9.2. Get Counted
9.3. Rebooting the System
9.4. What Now?
Part IV. Appendices
Appendix A. Acronyms and Terms
Appendix B. Acknowledgments
Appendix C. Dependencies
Appendix D. Boot and sysconfig scripts version-20150222
D.1. /etc/rc.d/init.d/rc
D.2. /lib/lsb/init-functions
D.3. /etc/rc.d/init.d/mountvirtfs
D.4. /etc/rc.d/init.d/modules
D.5. /etc/rc.d/init.d/udev
D.6. /etc/rc.d/init.d/swap
D.7. /etc/rc.d/init.d/setclock
D.8. /etc/rc.d/init.d/checkfs
D.9. /etc/rc.d/init.d/mountfs
D.10. /etc/rc.d/init.d/udev_retry
D.11. /etc/rc.d/init.d/cleanfs
D.12. /etc/rc.d/init.d/console
D.13. /etc/rc.d/init.d/localnet
D.14. /etc/rc.d/init.d/sysctl
D.15. /etc/rc.d/init.d/sysklogd
D.16. /etc/rc.d/init.d/network
D.17. /etc/rc.d/init.d/sendsignals
D.18. /etc/rc.d/init.d/reboot
D.19. /etc/rc.d/init.d/halt
D.20. /etc/rc.d/init.d/template
D.21. /etc/sysconfig/modules
D.22. /etc/sysconfig/createfiles
D.23. /etc/sysconfig/udev-retry
D.24. /sbin/ifup
D.25. /sbin/ifdown
D.26. /lib/services/ipv4-static
D.27. /lib/services/ipv4-static-route
Appendix E. Udev configuration rules
E.1. 55-lfs.rules
Appendix F. LFS Licenses
F.1. Creative Commons License
F.2. The MIT License
Index
The book hasn't received reviews yet.