Merge branch 'trunk' of git.linuxfromscratch.org:lfs into trunk

This commit is contained in:
Bruce Dubbs 2022-09-17 15:45:24 -05:00
commit 4fb696f91c
2 changed files with 75 additions and 46 deletions

View File

@ -46,7 +46,7 @@
<para>Now fix a programming error identified upstream:</para> <para>Now fix a programming error identified upstream:</para>
<screen><userinput remap="pre">sed -i -i '241i UPREF(m);' interpret.h</userinput></screen> <screen><userinput remap="pre">sed -i '241i UPREF(m);' interpret.h</userinput></screen>
<para>Prepare Gawk for compilation:</para> <para>Prepare Gawk for compilation:</para>

View File

@ -24,28 +24,28 @@
<para> <para>
A server is the simpler category. Generally this consists of a web A server is the simpler category. Generally this consists of a web
server such as the server such as the
<ulink url="&blfs-book;server/apache.html">Apache HTTP Server</ulink> <ulink url="&blfs-book;server/apache.html">Apache HTTP Server</ulink>
and a database server such as and a database server such as
<ulink url="&blfs-book;server/mariadb.html">MariaDB</ulink>. <ulink url="&blfs-book;server/mariadb.html">MariaDB</ulink>.
However other services are possible. The operating system However other services are possible. The operating system
embedded in a single use device falls into this category. embedded in a single use device falls into this category.
</para> </para>
<para> <para>
On the other hand, a workstation is much more complex. It generally On the other hand, a workstation is much more complex. It generally
requires a graphical user environment such as requires a graphical user environment such as
<ulink url="&blfs-book;lxde/lxde.html">LXDE</ulink>, <ulink url="&blfs-book;lxde/lxde.html">LXDE</ulink>,
<ulink url="&blfs-book;xfce/xfce.html">XFCE</ulink>, <ulink url="&blfs-book;xfce/xfce.html">XFCE</ulink>,
<ulink url="&blfs-book;kde/kde.html">KDE</ulink>, or <ulink url="&blfs-book;kde/kde.html">KDE</ulink>, or
<ulink url="&blfs-book;gnome/gnome.html">Gnome</ulink> <ulink url="&blfs-book;gnome/gnome.html">Gnome</ulink>
based on the based on a basic
<ulink url="&blfs-book;x/installing.html">X Window graphical environment</ulink> <ulink url="&blfs-book;x/installing.html">graphical environment</ulink>
and several graphical based applications such as the and several graphical based applications such as the
<ulink url="&blfs-book;xsoft/firefox.html">Firefox web browser</ulink>, <ulink url="&blfs-book;xsoft/firefox.html">Firefox web browser</ulink>,
<ulink url="&blfs-book;xsoft/thunderbird.html">Thunderbird email client</ulink>, <ulink url="&blfs-book;xsoft/thunderbird.html">Thunderbird email client</ulink>,
or or
<ulink url="&blfs-book;xsoft/libreoffice.html">LibreOffice office suite</ulink>. <ulink url="&blfs-book;xsoft/libreoffice.html">LibreOffice office suite</ulink>.
These applications require many (several hundred depending on These applications require many (several hundred depending on
desired capabilities) more packages of support applications and desired capabilities) more packages of support applications and
libraries. libraries.
@ -54,11 +54,11 @@
<para> <para>
In addition to the above, there is a set of applications that are In addition to the above, there is a set of applications that are
suitable for all systems for system management. These applications are suitable for all systems for system management. These applications are
all in the full BLFS book. Not all in the BLFS book. Not
all packages are needed in all environments. For example all packages are needed in all environments. For example
<ulink url="&blfs-book;basicnet/dhcpcd.html">dhcpcd</ulink>, <ulink url="&blfs-book;basicnet/dhcpcd.html">dhcpcd</ulink>,
is not appropriate for a server and is not appropriate for a server and
<ulink url="&blfs-book;basicnet/wireless_tools.html">wireless_tools</ulink>, <ulink url="&blfs-book;basicnet/wireless_tools.html">wireless_tools</ulink>,
are normally only are normally only
useful for a laptop system. If you are not sure if a package presented useful for a laptop system. If you are not sure if a package presented
here is needed or not, it can either be installed now or later as the here is needed or not, it can either be installed now or later as the
@ -68,12 +68,12 @@
</sect2> </sect2>
<sect2> <sect2>
<title>Working in a partial BLFS environment</title> <title>Working in a basic LFS environment</title>
<para> <para>
When you initially boot into LFS, you have all the internal tools to build When you initially boot into LFS, you have all the internal tools to build
additional packages. Unfortunately, the user environment is quite sparse. additional packages. Unfortunately, the user environment is quite sparse.
There are a couple of ways to improve this: There are a couple of ways to improve this:
</para> </para>
<sect3> <sect3>
@ -90,8 +90,8 @@
<para> <para>
In order to properly build packages in chroot, you will also need to In order to properly build packages in chroot, you will also need to
remember to mount the virtual file systems if they are not already remember to mount the virtual file systems if they are not already
mounted. One way to do this is to create a script on the mounted. One way to do this is to create a script on the
<command>HOST</command> system: <emphasis role="bold">HOST</emphasis> system:
</para> </para>
<screen><command>cat &gt; ~/mount-virt.sh &lt;&lt; "EOF" <screen><command>cat &gt; ~/mount-virt.sh &lt;&lt; "EOF"
@ -100,7 +100,7 @@
function mountbind function mountbind
{ {
if ! mountpoint $LFS/$1 >/dev/null; then if ! mountpoint $LFS/$1 >/dev/null; then
$SUDO mount - -bind /$1 $LFS/$1 $SUDO mount --bind /$1 $LFS/$1
echo $LFS/$1 mounted echo $LFS/$1 mounted
else else
echo $LFS/$1 already mounted echo $LFS/$1 already mounted
@ -110,7 +110,7 @@ function mountbind
function mounttype function mounttype
{ {
if ! mountpoint $LFS/$1 >/dev/null; then if ! mountpoint $LFS/$1 >/dev/null; then
$SUDO mount -t $2 $3 $4 $5 $LFS/$1 $SUDO mount -t $2 $3 $4 $5 $LFS/$1
echo $LFS/$1 mounted echo $LFS/$1 mounted
else else
echo $LFS/$1 already mounted echo $LFS/$1 already mounted
@ -128,7 +128,7 @@ if [ x$LFS == x ]; then
exit 1 exit 1
fi fi
mountbind dev mountbind dev
mounttype dev/pts devpts devpts -o gid=5,mode=620 mounttype dev/pts devpts devpts -o gid=5,mode=620
mounttype proc proc proc mounttype proc proc proc
mounttype sys sysfs sysfs mounttype sys sysfs sysfs
@ -142,12 +142,12 @@ EOF</command></screen>
<para> <para>
Note that the last three commands in the script are commented out. These Note that the last three commands in the script are commented out. These
are useful if those directories are mounted as separate partitions on the are useful if those directories are mounted as separate partitions on the
host system and will be mounted when booting the completed LFS/BLFS system. host system and will be mounted when booting the completed LFS/BLFS system.
</para> </para>
<para> <para>
The script can be run with <command>bash ~/mount-virt.sh</command> as The script can be run with <command>bash ~/mount-virt.sh</command> as
either a regular user (recommended) or as root. If run as a regular either a regular user (recommended) or as &root;. If run as a regular
user, sudo is required on the host system. user, sudo is required on the host system.
</para> </para>
@ -166,8 +166,8 @@ EOF</command></screen>
placed in a user's ~/.bashrc file on the host system: placed in a user's ~/.bashrc file on the host system:
</para> </para>
<screen><command>alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ " <screen><command>alias lfs='sudo /usr/sbin/chroot /mnt/lfs /usr/bin/env -i HOME=/root TERM="$TERM" PS1="\u:\w\\\\$ "
PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash - -login'</command></screen> PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash --login'</command></screen>
<para> <para>
This alias is a little tricky because of the quoting and levels of This alias is a little tricky because of the quoting and levels of
@ -182,14 +182,14 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash - -login'</command></screen>
<para> <para>
This method also provides a full graphical environment, but first This method also provides a full graphical environment, but first
requires installing requires installing
<ulink url="&blfs-book;postlfs/openssh.html">sshd</ulink> and <ulink url="&blfs-book;postlfs/openssh.html">sshd</ulink> and
<ulink url="&blfs-book;basicnet/wget.html">wget</ulink> <ulink url="&blfs-book;basicnet/wget.html">wget</ulink>
on the LFS system, usually in chroot. It also requires a second on the LFS system, usually in chroot. It also requires a second
computer. This method has the advantage of being simple by not requiring computer. This method has the advantage of being simple by not requiring
the complexity of the chroot environment. It also uses your LFS built the complexity of the chroot environment. It also uses your LFS built
kernel for all additional packages and still provides a complete system kernel for all additional packages and still provides a complete system
for installing packages. for installing packages.
</para> </para>
</sect3> </sect3>
@ -198,32 +198,61 @@ PATH=/bin:/usr/bin:/sbin:/usr/sbin /bin/bash - -login'</command></screen>
<title>Work from the LFS command line</title> <title>Work from the LFS command line</title>
<para> <para>
This method requiures installing This method requires installing
<ulink url="&blfs-book;general/libtasn1.html">libtasn1</ulink>,
<ulink url="&blfs-book;postlfs/p11-kit.html">p11-kit</ulink>,
<ulink url="&blfs-book;postlfs/make-ca.html">make-ca</ulink>, <ulink url="&blfs-book;postlfs/make-ca.html">make-ca</ulink>,
<ulink url="&blfs-book;basicnet/wget.html">wget</ulink>, <ulink url="&blfs-book;basicnet/wget.html">wget</ulink>,
<ulink url="&blfs-book;general/gpm.html">gpm</ulink>, and <ulink url="&blfs-book;general/gpm.html">gpm</ulink>, and
<ulink url="&blfs-book;basicnet/links">links</ulink> <ulink url="&blfs-book;basicnet/links.html">links</ulink>
in chroot and then rebooting into the new LFS system. At this (or <ulink url="&blfs-book;basicnet/lynx.html">lynx</ulink>)
point the default system has six virtual consoles. Switching in chroot and then rebooting into the new LFS system. At this
consoles is as easy as using the Alt-Fn key combinations where Fn is point the default system has six virtual consoles. Switching
between F1 and F6. The Alt-LeftArrow and Alt-RightArrow key consoles is as easy as using the
<keycombo>
<keycap>Alt</keycap>
<keycap>Fx</keycap>
</keycombo>
key combinations where <keycap>Fx</keycap> is
between <keycap>F1</keycap> and <keycap>F6</keycap>.
The
<keycombo>
<keycap>Alt</keycap>
<keycap function='left'/>
</keycombo>
and
<keycombo>
<keycap>Alt</keycap>
<keycap function='right'/>
</keycombo>
combinations also will change the console. combinations also will change the console.
</para> </para>
<para> <para>
At this point you can log into two different virtual consoles and run At this point you can log into two different virtual consoles and run
the links browser in one console and bash in the other. GPM then allows the links or lynx browser in one console and bash in the other. GPM
copying commands from the browser with the left mouse button, switching then allows copying commands from the browser with the left mouse
consoles, and pasting into the other console. button, switching consoles, and pasting into the other console.
</para> </para>
<note> <note>
<para> <para>
As a side note, switching of virtual consoles can also be done from As a side note, switching of virtual consoles can also be done from
an X Window instance with the Ctrl-Alt-Fn key combination, but the an X Window instance with the
mouse copy operation does not work between the graphical interface <keycombo>
and a virtual console. You can return to the X Window display with <keycap>Ctrl</keycap>
the Ctrl-Alt-Fn conbination where Fn is usually F7. <keycap>Alt</keycap>
<keycap>Fx</keycap>
</keycombo>
key combination, but the mouse copy operation does not work
between the graphical interface and a virtual console. You can
return to the X Window display with the
<keycombo>
<keycap>Ctrl</keycap>
<keycap>Alt</keycap>
<keycap>Fx</keycap>
</keycombo>
combination, where <keycap>Fx</keycap> may be <keycap>F7</keycap>.
</para> </para>
</note> </note>