Changeset 87f8108


Ignore:
Timestamp:
10/15/2022 10:30:10 PM (19 months ago)
Author:
Thomas Trepl (Moody) <thomas@…>
Branches:
multilib
Children:
353b104
Parents:
6c4d9d0 (diff), 62a598f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Automatic merge of trunk into multilib

Location:
prologue
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • prologue/architecture.xml

    r6c4d9d0 r87f8108  
    1414and x86_64 (64-bit) CPUs.  On the other hand, the instructions in this book are
    1515also known to work, with some modifications, with the Power PC and ARM CPUs. To
    16 build a system that utilizes one of these CPUs, the main prerequisite, in
     16build a system that utilizes one of these alternative CPUs, the main prerequisite, in
    1717addition to those on the next page, is an existing Linux system such as an
    18 earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or other distribution
    19 that targets the architecture that you have. Also note that a 32-bit
     18earlier LFS installation, Ubuntu, Red Hat/Fedora, SuSE, or some other distribution
     19that targets that architecture. (Note that a 32-bit
    2020distribution can be installed and used as a host system on a 64-bit AMD/Intel
    21 computer.</para>
     21computer.)</para>
    2222
    23 <para>For building LFS, the gain of building on a 64-bit system
    24 compared to a 32-bit system is minimal.
     23<para>The gain from building on a 64-bit system, as
     24compared to a 32-bit system, is minimal.
    2525For example, in a test build of LFS-9.1 on a Core i7-4790 CPU based system,
    2626using 4 cores, the following statistics were measured:</para>
     
    3131
    3232<para>As you can see, on the same hardware, the 64-bit build is only 3% faster
    33 and is 22% larger than the 32-bit build. If you plan to use LFS as a LAMP
    34 server, or a firewall, a 32-bit CPU may be largely sufficient. On the other
    35 hand, several packages in BLFS now need more than 4GB of RAM to be built
    36 and/or to run, so that if you plan to use LFS as a desktop, the LFS authors
    37 recommend building on a 64-bit system.</para>
     33(and 22% larger) than the 32-bit build. If you plan to use LFS as a LAMP
     34server, or a firewall, a 32-bit CPU may be good enough. On the other
     35hand, several packages in BLFS now need more than 4 GB of RAM to be built
     36and/or to run; if you plan to use LFS as a desktop, the LFS authors
     37recommend building a 64-bit system.</para>
    3838
    39 <para>The default 64-bit build that results from LFS is considered a
     39<para>The default 64-bit build that results from LFS is a
    4040<quote>pure</quote> 64-bit system. That is, it supports 64-bit executables
    4141only. Building a <quote>multi-lib</quote> system requires compiling many
    4242applications twice, once for a 32-bit system and once for a 64-bit system.
    4343This is not directly supported in LFS because it would interfere with the
    44 educational objective of providing the instructions needed for a
    45 straightforward base Linux system. Some LFS/BLFS editors maintain a fork
    46 of LFS for multilib, which is accessible at <ulink
    47 url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But it
    48 is an advanced topic.</para>
     44educational objective of providing the minimal instructions needed for a
     45basic Linux system. Some of the LFS/BLFS editors maintain a multilib fork
     46of LFS, accessible at <ulink
     47url="https://www.linuxfromscratch.org/~thomas/multilib/index.html"/>. But
     48that's an advanced topic.</para>
    4949
    5050</sect1>
  • prologue/audience.xml

    r6c4d9d0 r87f8108  
    1919how a Linux system works from the inside out. Building an LFS system helps
    2020demonstrate what makes Linux tick, and how things work together and depend on
    21 each other. One of the best things that this learning experience can provide is
     21each other. One of the best things this learning experience can provide is
    2222the ability to customize a Linux system to suit your own unique needs.</para>
    2323
    24 <para>Another key benefit of LFS is that it allows you to have more control
    25 over the system without relying on someone else's Linux implementation. With
    26 LFS, you are in the driver's seat and dictate every aspect of the
     24<para>Another key benefit of LFS is that it gives you control
     25of the system without relying on someone else's Linux implementation. With
     26LFS, you are in the driver's seat. <emphasis>You</emphasis> dictate every aspect of your
    2727system.</para>
    2828
    29 <para>LFS allows you to create very compact Linux systems. When installing
    30 regular distributions, you are often forced to install a great many
    31 programs which are probably never used or understood. These programs waste
    32 resources. You may argue that with today's hard drive and CPUs, such
     29<para>LFS allows you to create very compact Linux systems. With
     30other distributions you are often forced to install a great many
     31programs you neither use nor understand. These programs waste
     32resources. You may argue that with today's hard drives and CPUs, wasted
    3333resources are no longer a consideration. Sometimes, however, you are still
    34 constrained by size considerations if nothing else. Think about bootable
     34constrained by the system's size, if nothing else. Think about bootable
    3535CDs, USB sticks, and embedded systems. Those are areas where LFS can be
    3636beneficial.</para>
     
    3838<para>Another advantage of a custom built Linux system is security. By compiling
    3939the entire system from source code, you are empowered to audit everything
    40 and apply all the security patches desired. It is no longer necessary to
     40and apply all the security patches you want. You don't have to
    4141wait for somebody else to compile binary packages that fix a security hole.
    4242Unless you examine the patch and implement it yourself, you have no
     
    4949book.</para>
    5050
    51 <para>There are too many other good reasons to build your own LFS system to
    52 list them all here. In the end, education is by far the most powerful of
    53 reasons. As you continue in your LFS experience, you will discover the power
    54 that information and knowledge truly bring.</para>
     51<para>There are too many good reasons to build your own LFS system to
     52list them all here. In the end, education is by far the most important
     53reason. As you continue your LFS experience, you will discover the power
     54that information and knowledge can bring.</para>
    5555
    5656</sect1>
  • prologue/prerequisites.xml

    r6c4d9d0 r87f8108  
    1414  level of existing knowledge of Unix system administration in order to resolve
    1515  problems and correctly execute the commands listed. In particular, as an
    16   absolute minimum, you should already have the ability to use the
     16  absolute minimum, you should already know how to use the
    1717  command line (shell) to copy or move files and directories, list directory
    1818  and file contents, and change the current directory. It is also expected that
    19   you have a reasonable knowledge of using and installing Linux
     19  you know how to use and install Linux
    2020  software.</para>
    2121
    2222  <para>Because the LFS book assumes <emphasis>at least</emphasis> this basic
    23   level of skill, the various LFS support forums are unlikely to be able to
     23  level of skill, the various LFS support forums are unlikely to
    2424  provide you with much assistance in these areas. You will find that your
    25   questions regarding such basic knowledge will likely go unanswered or you
    26   will simply be referred to the LFS essential pre-reading list.</para>
     25  questions regarding such basic knowledge will likely go unanswered (or you
     26  will simply be referred to the LFS essential pre-reading list).</para>
    2727
    28   <para>Before building an LFS system, we recommend reading the following:</para>
     28  <para>Before building an LFS system, we urge you to read these articles:</para>
    2929
    3030  <itemizedlist>
     
    3636      <quote>generic</quote> Unix software packages under Linux. Although it
    3737      was written some time ago, it still provides a good summary of the
    38       basic techniques needed to build and install software.</para>
     38      basic techniques used to build and install software.</para>
    3939    </listitem>
    4040
     
    4343      <ulink url="https://moi.vonos.net/linux/beginners-installing-from-source/"/></para>
    4444
    45       <para>This guide provides a good summary of basic skills and
     45      <para>This guide provides a good summary of the basic skills and
    4646      techniques needed to build software from source code.</para>
    4747    </listitem>
  • prologue/standards.xml

    r6c4d9d0 r87f8108  
    3333
    3434        <para>The LSB has four separate standards: Core, Desktop,
    35         Runtime Languages, and Imaging. In addition to generic requirements
    36         there are also architecture specific requirements.  There are also two
    37         areas for trial use: Gtk3 and Graphics.  LFS attempts to conform to the
     35        Runtime Languages, and Imaging. There are generic requirements,
     36        and also architecture specific requirements.  There are also two
     37        trial standards: Gtk3 and Graphics.  LFS attempts to conform to the
     38        LASB standards for the IA32 / IA64 (Intel) and AMD64 (AMD)
    3839        architectures discussed in the previous section.</para>
    3940
    40         <note><para>Many people do not agree with the requirements of the LSB.
    41         The main purpose of defining it is to ensure that proprietary software
    42         will be able to be installed and run properly on a compliant system.
     41        <note><para>Many people do not agree with these requirements.
     42        The main purpose of the LSB is to ensure that proprietary software
     43        can be installed and run on a compliant system.
    4344        Since LFS is source based, the user has complete control over what
    44         packages are desired and many choose not to install some packages that
     45        packages are desired; you may choose not to install some packages that
    4546        are specified by the LSB.</para></note>
    4647
     
    4849    </itemizedlist>
    4950
    50     <para>Creating a complete LFS system capable of passing the LSB
    51     certifications tests is possible, but not without many additional packages
    52     that are beyond the scope of LFS.  These additional packages have
    53     installation instructions in BLFS. </para>
     51    <para>While it is possible to create a complete system that will pass the LSB
     52    certification tests "from scratch", this can't be done without many additional packages
     53    that are beyond the scope of the LFS book.  Installation instructions for these
     54    additional packages can be found in BLFS. </para>
    5455
    5556    <variablelist>
  • prologue/why.xml

    r6c4d9d0 r87f8108  
    1111  <title>Rationale for Packages in the Book</title>
    1212
    13     <para>As stated earlier, the goal of LFS is to build a complete and usable
    14     foundation-level system.  This includes all packages needed to replicate
    15     itself while providing a relatively minimal base from which to customize
    16     a more complete system based on the choices of the user.  This does not
     13    <para>The goal of LFS is to build a complete and usable
     14    foundation-level system&mdash;including all the packages needed to replicate
     15    itself&mdash;and providing a relatively minimal base from which to customize
     16    a more complete system based on the user's choices.  This does not
    1717    mean that LFS is the smallest system possible.  Several important packages
    18     are included that are not strictly required.  The lists below document the
    19     rationale for each package in the book.</para>
     18    are included that are not, strictly speaking, required.  The list below documents the
     19    reasons each package in the book has been included.</para>
    2020
    2121    <itemizedlist>
     
    2525
    2626        <para>This package contains utilities to administer Access
    27         Control Lists, which are used to define more fine-grained
     27        Control Lists, which are used to define fine-grained
    2828        discretionary access rights for files and directories.
    2929        </para>
     
    3333        <para>Attr</para>
    3434
    35         <para>This package contains programs for administering
    36         extended attributes on filesystem objects.
     35        <para>This package contains programs for managing
     36        extended attributes on file system objects.
    3737        </para>
    3838      </listitem>
     
    4141        <para>Autoconf</para>
    4242
    43         <para>This package contains programs for producing shell scripts that
     43        <para>This package supplies programs for producing shell scripts that
    4444        can automatically configure source code from a developer's
    45         template. It is often needed to rebuild a package after updates
    46         to the build procedures.</para>
     45        template. It is often needed to rebuild a package after
     46        the build procedure has been updated.</para>
    4747      </listitem>
    4848
     
    5151
    5252        <para>This package contains programs for generating Make files from
    53         a template. It is often needed to rebuild a package after updates
    54         to the build procedures.</para>
     53        a template. It is often needed to rebuild a package after
     54        the build procedure has been updated.</para>
    5555      </listitem>
    5656
     
    6161        a Bourne Shell interface to the system.  It was chosen over
    6262        other shell packages because of its common usage and extensive
    63         capabilities beyond basic shell functions.</para>
     63        capabilities.</para>
    6464      </listitem>
    6565
     
    6868
    6969        <para>This package provides an arbitrary precision numeric processing language.
    70         It satisfies a requirement needed when building the Linux kernel.</para>
     70        It satisfies a requirement for building the Linux kernel.</para>
    7171      </listitem>
    7272
     
    7474        <para>Binutils</para>
    7575
    76         <para>This package contains a linker, an assembler, and other
     76        <para>This package supplies a linker, an assembler, and other
    7777        tools for handling object files. The programs in this package are
    78         needed to compile most of the packages in an LFS system and beyond.</para>
     78        needed to compile most of the packages in an LFS system.</para>
    7979      </listitem>
    8080
     
    8383
    8484        <para>This package contains the GNU version of yacc (Yet Another
    85         Compiler Compiler) needed to build several other LFS programs.</para>
     85        Compiler Compiler) needed to build several of the LFS programs.</para>
    8686      </listitem>
    8787
     
    9696        <para>Check</para>
    9797
    98         <para>This package contains a test harness for other programs.</para>
     98        <para>This package provides a test harness for other programs.</para>
    9999      </listitem>
    100100
     
    112112
    113113        <para>This package contains programs to implement a message bus system,
    114         which a simple way for applications to talk to one another.
     114        a simple way for applications to talk to one another.
    115115        </para>
    116116      </listitem>
     
    119119        <para>DejaGNU</para>
    120120
    121         <para>This package contains a framework for testing other programs.</para>
     121        <para>This package supplies a framework for testing other programs.</para>
    122122      </listitem>
    123123
     
    133133        <para>E2fsprogs</para>
    134134
    135         <para>This package contains the utilities for handling the ext2, ext3
     135        <para>This package supplies utilities for handling the ext2, ext3
    136136        and ext4 file systems.  These are the most common and thoroughly
    137137        tested file systems that Linux supports.</para>
     
    142142
    143143        <para>This package is a device manager.  It dynamically controls the ownership,
    144         permissions, names, and symbolic links of devices in the /dev directory as
    145         devices are added or removed from the system.
     144        permissions, names, and symbolic links of devices in the /dev directory when
     145        devices are added to or removed from the system.
    146146        </para>
    147147      </listitem>
     
    150150        <para>Expat</para>
    151151
    152         <para>This package contains a relatively small XML parsing library.  It
     152        <para>This package yields a relatively small XML parsing library.  It
    153153        is required by the XML::Parser Perl module.</para>
    154154      </listitem>
     
    172172        <para>Findutils</para>
    173173
    174         <para>This package contains programs to find files in a file system.
     174        <para>This package provides programs to find files in a file system.
    175175        It is used in many packages' build scripts.</para>
    176176      </listitem>
     
    188188        <para>Gawk</para>
    189189
    190         <para>This package contains programs for manipulating text files.
     190        <para>This package supplies programs for manipulating text files.
    191191        It is the GNU version of awk (Aho-Weinberg-Kernighan). It is used in
    192192        many other packages' build scripts.</para>
     
    196196        <para>GCC</para>
    197197
    198         <para>This package is the Gnu Compiler Collection.  It contains the
     198        <para>This is the Gnu Compiler Collection.  It contains the
    199199        C and C++ compilers as well as several others not built by LFS.
    200200        </para>
     
    211211        <para>Gettext</para>
    212212
    213         <para>This package contains utilities and libraries for
    214         internationalization and localization of numerous packages.</para>
     213        <para>This package provides utilities and libraries for
     214        the internationalization and localization of many packages.</para>
    215215      </listitem>
    216216
     
    225225        <para>GMP</para>
    226226
    227         <para>This package contains math libraries that provide useful functions
    228         for arbitrary precision arithmetic.  It is required to build GCC.</para>
     227        <para>This package supplies math libraries that provide useful functions
     228        for arbitrary precision arithmetic.  It is needed to build GCC.</para>
    229229      </listitem>
    230230
     
    232232        <para>Gperf</para>
    233233
    234         <para>This package contains a program that generates a perfect hash
    235         function from a key set. It is required for Eudev.</para>
     234        <para>This package produces a program that generates a perfect hash
     235        function from a set of keys. It is required by Eudev.</para>
    236236      </listitem>
    237237
     
    246246        <para>Groff</para>
    247247
    248         <para>This package contains programs for processing and formatting text.
     248        <para>This package contributes programs for processing and formatting text.
    249249        One important function of these programs is to format man pages.</para>
    250250      </listitem>
     
    253253        <para>GRUB</para>
    254254
    255         <para>This package is the Grand Unified Boot Loader.  It is one
    256         of several boot loaders available, but is the most flexible.
     255        <para>This is the Grand Unified Boot Loader.  It is
     256        the most flexible of several boot loaders available.
    257257        </para>
    258258      </listitem>
     
    262262
    263263        <para>This package contains programs for compressing and
    264         decompressing files. It is needed to decompress many packages in LFS
    265         and beyond.</para>
     264        decompressing files. It is needed to decompress many packages
     265        in LFS.</para>
    266266      </listitem>
    267267
     
    276276        <para>Inetutils</para>
    277277
    278         <para>This package contains programs for basic network
     278        <para>This package supplies programs for basic network
    279279        administration.</para>
    280280      </listitem>
     
    283283        <para>Intltool</para>
    284284
    285         <para>This package contains tools for extracting translatable
     285        <para>This package contributes tools for extracting translatable
    286286        strings from source files.</para>
    287287      </listitem>
     
    305305        <para>Kbd</para>
    306306
    307         <para>This package contains key-table files, keyboard utilities
     307        <para>This package produces key-table files, keyboard utilities
    308308        for non-US keyboards, and a number of console fonts.</para>
    309309      </listitem>
     
    312312        <para>Kmod</para>
    313313
    314         <para>This package contains programs needed to administer Linux
     314        <para>This package supplies programs needed to administer Linux
    315315        kernel modules.</para>
    316316      </listitem>
     
    320320
    321321        <para>This package contains a very nice text file viewer that
    322         allows scrolling up or down when viewing a file. It is also used by
    323         Man-DB for viewing manpages.</para>
     322        allows scrolling up or down when viewing a file. It is also used
     323        when viewing manpages.</para>
    324324      </listitem>
    325325
     
    358358        <para>Libpipeline</para>
    359359
    360         <para>The Libpipeline package contains a library for manipulating
     360        <para>The Libpipeline package supplies a library for manipulating
    361361        pipelines of subprocesses in a flexible and convenient way. It is
    362362        required by the Man-DB package.</para>
     
    367367
    368368        <para>This package contains the GNU generic library support
    369         script. It wraps the complexity of using shared libraries in a
     369        script. It wraps the complexity of using shared libraries into a
    370370        consistent, portable interface.  It is needed by the test
    371371        suites in other LFS packages.</para>
     
    382382        <para>M4</para>
    383383
    384         <para>This package contains a general text macro processor useful
     384        <para>This package provides a general text macro processor useful
    385385        as a build tool for other programs.</para>
    386386      </listitem>
     
    405405        <para>This package contains programs for finding and viewing man pages.
    406406        It was chosen instead of the <application>man</application> package
    407         due to superior internationalization capabilities.  It supplies
     407        because of its superior internationalization capabilities.  It supplies
    408408        the man program.</para>
    409409      </listitem>
     
    412412        <para>Man-pages</para>
    413413
    414         <para>This package contains the actual contents of the basic
     414        <para>This package provides the actual contents of the basic
    415415        Linux man pages.</para>
    416416      </listitem>
     
    420420
    421421        <para>This package provides a software tool for automating the building
    422         of software. The main goal for Meson is to minimize the amount of time
    423         that software developers need to spend configuring their build
     422        of software. The main goal of Meson is to minimize the amount of time
     423        that software developers need to spend configuring a build
    424424        system.  It's required to build Systemd, as well as many BLFS
    425425        packages.</para>
     
    430430        <para>MPC</para>
    431431
    432         <para>This package contains functions for the arithmetic of complex
     432        <para>This package supplies arithmetic functions for complex
    433433        numbers. It is required by GCC.</para>
    434434      </listitem>
     
    444444        <para>Ninja</para>
    445445
    446         <para>This package contains a small build system with a focus on speed.
     446        <para>This package furnishes a small build system with a focus on speed.
    447447        It is designed to have its input files generated by a higher-level build
    448448        system, and to run builds as fast as possible.
     
    457457        handling of character screens.  It is often used to provide
    458458        cursor control for a menuing system. It is needed by a number of
    459         packages in LFS.</para>
     459        the packages in LFS.</para>
    460460      </listitem>
    461461
     
    464464
    465465        <para>This package provides management tools and libraries relating to
    466         cryptography. These are useful for providing cryptographic functions to
     466        cryptography. These supply cryptographic functions to
    467467        other packages, including the Linux kernel.</para>
    468468      </listitem>
     
    503503        <para>Psmisc</para>
    504504
    505         <para>This package contains programs for displaying information
     505        <para>This package produces programs for displaying information
    506506        about running processes. These programs are useful for system
    507507        administration.</para>
     
    512512
    513513        <para>This package provides an interpreted language that has a design
    514         philosophy that emphasizes code readability.</para>
     514        philosophy emphasizing code readability.</para>
    515515
    516516      </listitem>
     
    519519        <para>Readline</para>
    520520
    521         <para>This package is a set of libraries that offers command-line
     521        <para>This package is a set of libraries that offer command-line
    522522        editing and history capabilities.  It is used by Bash.</para>
    523523      </listitem>
     
    527527
    528528        <para>This package allows editing of text without opening it in a
    529         text editor. It is also needed by most LFS packages' configure
     529        text editor. It is also needed by many LFS packages' configure
    530530        scripts.</para>
    531531      </listitem>
     
    535535
    536536        <para>This package contains programs for handling passwords
    537         in a secure way.</para>
     537        securely.</para>
    538538      </listitem>
    539539
     
    541541        <para>Sysklogd</para>
    542542
    543         <para>This package contains programs for logging system messages,
    544         such as those given by the kernel or daemon processes when unusual
     543        <para>This package supplies programs for logging system messages,
     544        such as those emitted by the kernel or daemon processes when unusual
    545545        events occur.</para>
    546546      </listitem>
     
    551551        <para>This package provides an <application>init</application> program
    552552        and several additional boot and system control capabilities as an
    553         alternative to Sysvinit.  It is used by many commercial distributions.
     553        alternative to Sysvinit.  It is used by many Linux distributions.
    554554        </para>
    555555      </listitem>
     
    559559
    560560        <para>This package provides the <application>init</application>
    561         program, which is the parent of all other processes on the Linux
     561        program, the parent of all the other processes on a running Linux
    562562        system. </para>
    563563      </listitem>
     
    567567
    568568        <para>This package provides archiving and extraction capabilities
    569         of virtually all packages used in LFS.</para>
     569        of virtually all the packages used in LFS.</para>
    570570      </listitem>
    571571
     
    574574
    575575        <para>This package contains the Tool Command Language used
    576         in many test suites in LFS packages.</para>
     576        in many test suites.</para>
    577577      </listitem>
    578578
     
    580580        <para>Texinfo</para>
    581581
    582         <para>This package contains programs for reading, writing, and
     582        <para>This package supplies programs for reading, writing, and
    583583        converting info pages.  It is used in the installation
    584584        procedures of many LFS packages.</para>
     
    594594
    595595      <listitem>
    596         <para>Wheel</para>
    597 
    598         <para>This package contains a Python module that is the
    599         reference implementation of the Python wheel packaging standard.
    600         </para>
    601       </listitem>
    602 
    603       <listitem>
    604596        <para>Vim</para>
    605597
    606         <para>This package contains an editor. It was chosen because of its
     598        <para>This package provides an editor. It was chosen because of its
    607599        compatibility with the classic vi editor and its huge number of powerful
    608600        capabilities.  An editor is a very personal choice for
    609         many users and any other editor could be substituted if desired.</para>
     601        many users. Any other editor can be substituted, if you wish.</para>
     602      </listitem>
     603     
     604      <listitem>
     605        <para>Wheel</para>
     606
     607        <para>This package supplies a Python module that is the
     608        reference implementation of the Python wheel packaging standard.
     609        </para>
    610610      </listitem>
    611611
     
    634634        <para>Zstd</para>
    635635
    636         <para>This package contains compression and decompression routines
     636        <para>This package supplies compression and decompression routines
    637637        used by some programs. It provides high compression ratios and a very
    638638        wide range of compression / speed trade-offs.</para>
Note: See TracChangeset for help on using the changeset viewer.