Summary of "Linux from Scratch: Part 7f - Sections 8.63 - 8.85"
Summary of "Linux From Scratch: Part 7f - Sections 8.63 - 8.85"
This video continues the process of building a Linux system from scratch by compiling and installing a series of essential system software packages. The speaker follows the Linux From Scratch (LFS) book instructions, providing commentary, explanations, and occasional personal anecdotes. The video covers multiple packages, their purpose, build procedures, test results, and installation steps, along with some troubleshooting and configuration notes.
Main Ideas and Concepts
- General Build Procedure Reminder
- Extract source packages with
tarinto the LFS sources directory. - Change directory into the extracted source folder.
- Follow the package-specific build instructions (configure, make, make check, make install).
- Exit the source directory and delete it after installation to keep the system clean.
- Extract source packages with
- Building and Installing Packages Covered:
- Graph (8.63)
- Package for processing and formatting text and images.
- Requires setting environment variable
PAGEfor paper size (A4for UK). - Run
configure,make,make check(with expected test failures labeled "X fail"), thenmake install.
- GRUB (Grand Unified Bootloader)
- Bootloader to manage system startup.
- Historical context given (LILO, GAK bootloaders).
- Uncertain if system uses UEFI or MBR; assumes MBR for now.
- Build with options disabling EFI emulation and turning off compiler warnings (
-Werror). - Tests not recommended due to missing dependencies in LFS environment.
- gzip
- Compression/decompression utility.
- Standard configure, make, test, install cycle.
- iproute2
- Networking tools for IPv4 and IPv6.
- ARPD program excluded due to missing Berkeley DB dependency.
- Manual removal of ARPD-related lines in makefile and man pages before build.
- kbd
- Keyboard utilities, keymaps, and fonts.
- Patch applied to fix backspace/delete key inconsistencies.
- Removes unused programs and disables PAM-dependent utilities.
- Notes about language-specific keymaps (e.g., Belarusian).
- libpipeline
- Library for managing subprocess pipelines.
- Simple configure, make, install steps.
- make
- Build automation tool used throughout LFS.
- Extensive test suite run with no failures.
- patch
- Utility to apply patches to source code.
- Standard build and test.
- tar
- Archive creation and extraction tool.
- Important for handling tarballs and backups.
- texinfo
- Tool for reading and converting info pages (alternative to man pages).
- Tests passed with minor warnings.
- Optional step to recreate info directory tree file if needed.
- vim
- Text editor, widely used and powerful.
- Configuration changes to move vimrc to
/etc. - Tests require disabling those needing
curlorwget. - Creation of symbolic links for
viand man pages for user convenience. - Notes on GUI version (gvim) and differences in package options on other distros.
- markupsafe
- Python package for safe string handling in templates.
- No test suite; simple install.
- Jinja2
- Python templating language module.
- udev
- Device manager for the Linux kernel.
- Build with options disabling features requiring systemd components not installed.
- Uses Ninja build system (hence the prior need to build Ninja).
- Installs device rules, helpers, and hardware database files.
- Notes on manually downloading missing tarballs and man pages if needed.
- Instructions to create hardware database binary and update on hardware changes.
- man-db
- Program for managing man pages.
- Configure with options disabling setuid and enabling cache ownership.
- Notes on optional tools (vgrind, graph) not included in LFS.
- procps-ng
- Utilities to monitor system processes (e.g.,
ps,top). - Build with options disabling
killcommand (provided by another package). - Enables 8-bit character support in
watch. - Tests passed.
- Utilities to monitor system processes (e.g.,
- util-linux
- Collection of essential Linux utilities.
- Build with options to avoid conflicts
- Graph (8.63)
Category
Educational