diff options
author | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2020-06-16 11:56:28 +0000 |
---|---|---|
committer | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2020-06-16 11:56:28 +0000 |
commit | 675606bde2ba53946537b42a5aa576692a311621 (patch) | |
tree | af20c20ce3841c16b24d0b9903af6878a4a0f5a6 /chapter08/bash.xml | |
parent | 560065f976e371779928dbf8b9428217f3f57331 (diff) | |
parent | 1cd59612d00603c9ce773ad821a15d20bc4fa0b7 (diff) |
Split Chapter 5 into three separate chapters.
Implement a new method of cross-building the LFS tool chain
and other tools to simplify the method of isolating the
new system from the original host. This will be the start of
LFS-10.0.
Move old trunk/BOOK to branches/old-trunk.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11946 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter08/bash.xml')
-rw-r--r-- | chapter08/bash.xml | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/chapter08/bash.xml b/chapter08/bash.xml new file mode 100644 index 000000000..b8dd5fe40 --- /dev/null +++ b/chapter08/bash.xml @@ -0,0 +1,166 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="ch-system-bash" role="wrap"> + <?dbhtml filename="bash.html"?> + + <sect1info condition="script"> + <productname>bash</productname> + <productnumber>&bash-version;</productnumber> + <address>&bash-url;</address> + </sect1info> + + <title>Bash-&bash-version;</title> + + <indexterm zone="ch-system-bash"> + <primary sortas="a-Bash">Bash</primary> + </indexterm> + + <sect2 role="package"> + <title/> + + <para>The Bash package contains the Bourne-Again SHell.</para> + + <segmentedlist> + <segtitle>&buildtime;</segtitle> + <segtitle>&diskspace;</segtitle> + + <seglistitem> + <seg>&bash-fin-sbu;</seg> + <seg>&bash-fin-du;</seg> + </seglistitem> + </segmentedlist> + + </sect2> + + <sect2 role="installation"> + <title>Installation of Bash</title> + + <para>Incorporate some upstream fixes:</para> + +<screen><userinput remap="pre">patch -Np1 -i ../&bash-fixes-patch;</userinput></screen> + + <para>Prepare Bash for compilation:</para> + +<screen><userinput remap="configure">./configure --prefix=/usr \ + --docdir=/usr/share/doc/bash-&bash-version; \ + --without-bash-malloc \ + --with-installed-readline</userinput></screen> + + <variablelist> + <title>The meaning of the new configure option:</title> + + <varlistentry> + <term><parameter>--with-installed-readline</parameter></term> + <listitem> + <para>This option tells Bash to use the <filename + class="libraryfile">readline</filename> library that is already + installed on the system rather than using its own readline + version.</para> + </listitem> + </varlistentry> + + </variablelist> + + <para>Compile the package:</para> + +<screen><userinput remap="make">make</userinput></screen> + + <para>Skip down to <quote>Install the + package</quote> if not running the test suite.</para> + + <para>To prepare the tests, ensure that the <systemitem class="username">tester</systemitem> user can write to the sources tree:</para> + +<screen><userinput remap="test">chown -Rv tester .</userinput></screen> + + <para>Now, run the tests as the <systemitem + class="username">tester</systemitem> user:</para> + +<screen><userinput remap="test">su tester << EOF +PATH=$PATH make tests < $(tty) +EOF</userinput></screen> + + <para>Install the package and move the main executable to + <filename class='directory'>/bin</filename>:</para> + +<screen><userinput remap="install">make install +mv -vf /usr/bin/bash /bin</userinput></screen> + + <para>Run the newly compiled <command>bash</command> program (replacing the one that is + currently being executed):</para> + +<screen role="nodump"><userinput>exec /bin/bash --login +h</userinput></screen> + + <note> + <para>The parameters used make the <command>bash</command> + process an interactive login shell and continues to disable hashing so + that new programs are found as they become available.</para> + </note> + + </sect2> + + <sect2 id="contents-bash" role="content"> + <title>Contents of Bash</title> + + <segmentedlist> + <segtitle>Installed programs</segtitle> + <segtitle>Installed directory</segtitle> + + <seglistitem> + <seg>bash, bashbug, and sh (link to bash)</seg> + <seg>/usr/include/bash, /usr/lib/bash, and + /usr/share/doc/bash-&bash-version;</seg> + </seglistitem> + </segmentedlist> + + <variablelist> + <bridgehead renderas="sect3">Short Descriptions</bridgehead> + <?dbfo list-presentation="list"?> + <?dbhtml list-presentation="table"?> + + <varlistentry id="bash"> + <term><command>bash</command></term> + <listitem> + <para>A widely-used command interpreter; it performs many types of + expansions and substitutions on a given command line before executing + it, thus making this interpreter a powerful tool</para> + <indexterm zone="ch-system-bash bash"> + <primary sortas="b-bash">bash</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="bashbug"> + <term><command>bashbug</command></term> + <listitem> + <para>A shell script to help the user compose and mail standard + formatted bug reports concerning <command>bash</command></para> + <indexterm zone="ch-system-bash bashbug"> + <primary sortas="b-bashbug">bashbug</primary> + </indexterm> + </listitem> + </varlistentry> + + <varlistentry id="sh"> + <term><command>sh</command></term> + <listitem> + <para>A symlink to the <command>bash</command> program; when invoked + as <command>sh</command>, <command>bash</command> tries to mimic the + startup behavior of historical versions of <command>sh</command> as + closely as possible, while conforming to the POSIX standard as + well</para> + <indexterm zone="ch-system-bash sh"> + <primary sortas="b-sh">sh</primary> + </indexterm> + </listitem> + </varlistentry> + + </variablelist> + + </sect2> + +</sect1> |