- Timestamp:
- 12/21/2004 07:38:32 PM (19 years ago)
- Branches:
- 10.0, 10.0-rc1, 10.1, 10.1-rc1, 11.0, 11.0-rc1, 11.0-rc2, 11.0-rc3, 11.1, 11.1-rc1, 11.2, 11.2-rc1, 11.3, 11.3-rc1, 12.0, 12.0-rc1, 12.1, 12.1-rc1, 6.1, 6.1.1, 6.3, 6.4, 6.5, 6.6, 6.7, 6.8, 7.0, 7.1, 7.2, 7.3, 7.4, 7.5, 7.5-systemd, 7.6, 7.6-systemd, 7.7, 7.7-systemd, 7.8, 7.8-systemd, 7.9, 7.9-systemd, 8.0, 8.1, 8.2, 8.3, 8.4, 9.0, 9.1, arm, bdubbs/gcc13, ml-11.0, multilib, renodr/libudev-from-systemd, s6-init, trunk, xry111/arm64, xry111/arm64-12.0, xry111/clfs-ng, xry111/lfs-next, xry111/loongarch, xry111/loongarch-12.0, xry111/loongarch-12.1, xry111/mips64el, xry111/pip3, xry111/rust-wip-20221008, xry111/update-glibc
- Children:
- 3d36131c
- Parents:
- aaa3260
- Location:
- chapter06
- Files:
-
- 63 edited
Legend:
- Unmodified
- Added
- Removed
-
chapter06/aboutdebug.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="aboutdebug.html"?> 9 9 10 <para>Most programs and libraries are, by default, compiled with debugging 11 symbols included (with <command>gcc</command>'s <parameter>-g</parameter> 12 option). This means that, when debugging a program or library that was compiled 13 with debugging information included, the debugger can give you not only memory 14 addresses but also the names of the routines and variables.</para> 15 16 <para>The inclusion of these debugging symbols, however, enlarges a program or 17 library significantly. To get an idea of the amount of space these symbols 18 occupy, have a look at the following:</para> 19 20 <itemizedlist> 21 22 <listitem><para>a bash binary 23 with debugging symbols: 1200 KB</para></listitem> 24 25 <listitem><para>a bash binary 26 without debugging symbols: 480 KB</para></listitem> 27 28 <listitem><para>Glibc and GCC files (<filename class="directory">/lib</filename> 29 and <filename class="directory">/usr/lib</filename>) 30 with debugging symbols: 87 MB</para></listitem> 31 32 <listitem><para>Glibc and GCC files 33 without debugging symbols: 16 MB</para></listitem> 34 35 </itemizedlist> 36 37 <para>Sizes may vary somewhat, depending on which compiler was used and which C 38 library, but when comparing programs with and without debugging symbols the 39 difference will generally be a factor between 2 and 5.</para> 40 41 <para>As most people will probably never use a debugger on their system 42 software, a lot of disk space can be regained by removing these symbols. For 43 your convenience, the next section shows how to strip all debugging symbols 44 from all programs and libraries. Information on other ways of optimizing your 45 system can be found in the hint at <ulink url="&hints-root;optimization.txt"/>.</para> 10 <para>See testing</para> 46 11 47 12 </sect1> -
chapter06/autoconf.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Autoconf package contains programs for producing shell scripts that14 can automatically configure source code.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Autoconf installation depends on</segtitle>24 <seglistitem><seg>Bash, Coreutils, Diffutils, Grep,25 M4, Make, Perl, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 39 32 40 33 <para>To test the results, issue: 41 <userinput>make check</userinput> . This takes a long time, about 2 SBUs.</para>34 <userinput>make check</userinput></para> 42 35 43 36 <para>Install the package:</para> … … 50 43 <sect2 id="contents-autoconf" role="content"><title>Contents of Autoconf</title> 51 44 52 <segmentedlist> 53 <segtitle>Installed programs</segtitle> 54 <seglistitem><seg>autoconf, autoheader, autom4te, 55 autoreconf, autoscan, autoupdate and ifnames</seg></seglistitem> 56 </segmentedlist> 57 58 <variablelist><title>Short descriptions</title> 59 60 <varlistentry id="autoconf"> 61 <term><command>autoconf</command></term> 62 <listitem> 63 <indexterm zone="ch-system-autoconf autoconf"><primary sortas="b-autoconf">autoconf</primary></indexterm> 64 <para>is a tool for producing shell scripts 65 that automatically configure software source code packages to adapt to many 66 kinds of Unix-like systems. The configuration scripts it produces are 67 independent -- running them does not require the autoconf program.</para> 68 </listitem> 69 </varlistentry> 70 71 <varlistentry id="autoheader"> 72 <term><command>autoheader</command> </term> 73 <listitem> 74 <indexterm zone="ch-system-autoconf autoheader"><primary sortas="b-autoheader">autoheader</primary></indexterm> 75 <para>is a tool for creating template files 76 of C #define statements for configure to use.</para> 77 </listitem> 78 </varlistentry> 79 80 <varlistentry id="autom4te"> 81 <term><command>autom4te</command></term> 82 <listitem> 83 <indexterm zone="ch-system-autoconf autom4te"><primary sortas="b-autom4te">autom4te</primary></indexterm> 84 <para>is a wrapper for the M4 macro processor.</para> 85 </listitem> 86 </varlistentry> 87 88 <varlistentry id="autoreconf"> 89 <term><command>autoreconf</command></term> 90 <listitem> 91 <indexterm zone="ch-system-autoconf autoreconf"><primary sortas="b-autoreconf">autoreconf</primary></indexterm> 92 <para>comes in handy when there are a lot 93 of autoconf-generated configure scripts around. The program runs autoconf and 94 autoheader repeatedly (where appropriate) to remake the autoconf configure 95 scripts and configuration header templates in a given directory tree.</para> 96 </listitem> 97 </varlistentry> 98 99 <varlistentry id="autoscan"> 100 <term><command>autoscan</command> </term> 101 <listitem> 102 <indexterm zone="ch-system-autoconf autoscan"><primary sortas="b-autoscan">autoscan</primary></indexterm> 103 <para>can help to create a 104 <filename>configure.in</filename> file for a software package. It examines 105 the source files in a directory tree, searching them for common portability 106 problems and creates a <filename>configure.scan</filename> file that serves as 107 as a preliminary <filename>configure.in</filename> for the package.</para> 108 </listitem> 109 </varlistentry> 110 111 <varlistentry id="autoupdate"> 112 <term><command>autoupdate</command></term> 113 <listitem> 114 <indexterm zone="ch-system-autoconf autoupdate"><primary sortas="b-autoupdate">autoupdate</primary></indexterm> 115 <para>modifies a <filename>configure.in</filename> file that still calls autoconf 116 macros by their old names to use the current macro names.</para> 117 </listitem> 118 </varlistentry> 119 120 <varlistentry id="ifnames"> 121 <term><command>ifnames</command> </term> 122 <listitem> 123 <indexterm zone="ch-system-autoconf ifnames"><primary sortas="b-ifnames">ifnames</primary></indexterm> 124 <para>can be helpful when writing a 125 <filename>configure.in</filename> for a software package. It prints the 126 identifiers that the package uses in C preprocessor conditionals. If a package 127 has already been set up to have some portability, this program can help to 128 determine what <command>configure</command> needs to check. It can fill 129 in some gaps in a <filename>configure.in</filename> file generated by 130 autoscan.</para> 131 </listitem> 132 </varlistentry> 133 </variablelist> 45 <para>See testing</para> 134 46 135 47 </sect2> -
chapter06/automake.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Automake package contains programs for generating Makefiles for use14 with Autoconf.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Automake installation depends on</segtitle>24 <seglistitem><seg>Autoconf, Bash, Coreutils,25 Diffutils, Grep, M4, Make, Perl, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 39 32 40 33 <para>To test the results, issue: 41 <userinput>make check</userinput> . This takes a long time, about 5 SBUs.</para>34 <userinput>make check</userinput></para> 42 35 43 36 <para>Install the package:</para> … … 50 43 <sect2 id="contents-automake" role="content"><title>Contents of Automake</title> 51 44 52 <segmentedlist> 53 <segtitle>Installed programs</segtitle> 54 <seglistitem><seg>acinstall, aclocal, aclocal-1.8, automake, automake-1.8, 55 compile, config.guess, config.sub, depcomp, elisp-comp, install-sh, mdate-sh, 56 missing, mkinstalldirs, py-compile, symlink-tree, ylwrap</seg></seglistitem> 57 </segmentedlist> 58 59 <variablelist><title>Short descriptions</title> 60 61 <varlistentry id="acinstall"> 62 <term><command>acinstall</command></term> 63 <listitem> 64 <indexterm zone="ch-system-automake acinstall"><primary sortas="b-acinstall">acinstall</primary></indexterm> 65 <para>is a script that installs aclocal-style M4 files.</para> 66 </listitem> 67 </varlistentry> 68 69 <varlistentry id="aclocal"> 70 <term><command>aclocal</command></term> 71 <listitem> 72 <indexterm zone="ch-system-automake aclocal"><primary sortas="b-aclocal">aclocal</primary></indexterm> 73 <para>generates <filename>aclocal.m4</filename> 74 files based on the contents of <filename>configure.in</filename> files.</para> 75 </listitem> 76 </varlistentry> 77 78 <varlistentry id="automake"> 79 <term><command>automake</command></term> 80 <listitem> 81 <indexterm zone="ch-system-automake automake"><primary sortas="b-automake">automake</primary></indexterm> 82 <para>is a tool for automatically generating 83 <filename>Makefile.in</filename>'s from files called 84 <filename>Makefile.am</filename>. To create all the 85 <filename>Makefile.in</filename> files for a package, run this program in the 86 top-level directory. By scanning the <filename>configure.in</filename>s it 87 automatically finds each appropriate <filename>Makefile.am</filename> and 88 generate the corresponding <filename>Makefile.in</filename>.</para> 89 </listitem> 90 </varlistentry> 91 92 <varlistentry id="compile"> 93 <term><command>compile</command></term> 94 <listitem> 95 <indexterm zone="ch-system-automake compile"><primary sortas="b-compile">compile</primary></indexterm> 96 <para>is a wrapper for compilers.</para> 97 </listitem> 98 </varlistentry> 99 100 <varlistentry id="config.guess"> 101 <term><command>config.guess</command> </term> 102 <listitem> 103 <indexterm zone="ch-system-automake config.guess"><primary sortas="b-config.guess">config.guess</primary></indexterm> 104 <para>is a script that attempts to guess 105 the canonical triplet for the given build, host, or target architecture.</para> 106 </listitem> 107 </varlistentry> 108 109 <varlistentry id="config.su"> 110 <term><command>config.sub</command></term> 111 <listitem> 112 <indexterm zone="ch-system-automake config.su"><primary sortas="b-config.su">config.su</primary></indexterm> 113 <para>is a configuration validation subroutine script.</para> 114 </listitem> 115 </varlistentry> 116 117 <varlistentry id="depcomp"> 118 <term><command>depcomp</command></term> 119 <listitem> 120 <indexterm zone="ch-system-automake depcomp"><primary sortas="b-depcomp">depcomp</primary></indexterm> 121 <para>is a script for compiling a program so that not only the desired output is 122 generated, but also dependency information.</para> 123 </listitem> 124 </varlistentry> 125 126 <varlistentry id="elisp-comp"> 127 <term><command>elisp-comp</command></term> 128 <listitem> 129 <indexterm zone="ch-system-automake elisp-comp"><primary sortas="b-elisp-comp">elisp-comp</primary></indexterm> 130 <para>byte-compiles Emacs Lisp code.</para> 131 </listitem> 132 </varlistentry> 133 134 <varlistentry id="install-sh"> 135 <term><command>install-sh</command></term> 136 <listitem> 137 <indexterm zone="ch-system-automake install-sh"><primary sortas="b-install-sh">install-sh</primary></indexterm> 138 <para>is a script that installs a program, a script, or a datafile.</para> 139 </listitem> 140 </varlistentry> 141 142 <varlistentry id="mdate-sh"> 143 <term><command>mdate-sh</command></term> 144 <listitem> 145 <indexterm zone="ch-system-automake mdate-sh"><primary sortas="b-mdate-sh">mdate-sh</primary></indexterm> 146 <para>is a script that prints the modification time of a file or directory.</para> 147 </listitem> 148 </varlistentry> 149 150 <varlistentry id="missing"> 151 <term><command>missing</command></term> 152 <listitem> 153 <indexterm zone="ch-system-automake missing"><primary sortas="b-missing">missing</primary></indexterm> 154 <para>is a script acting as a common stub for 155 missing GNU programs during an installation.</para> 156 </listitem> 157 </varlistentry> 158 159 <varlistentry id="mkinstalldirs"> 160 <term><command>mkinstalldirs</command></term> 161 <listitem> 162 <indexterm zone="ch-system-automake mkinstalldirs"><primary sortas="b-mkinstalldirs">mkinstalldirs</primary></indexterm> 163 <para>is a script that creates a directory tree.</para> 164 </listitem> 165 </varlistentry> 166 167 <varlistentry id="py-compile"> 168 <term><command>py-compile</command></term> 169 <listitem> 170 <indexterm zone="ch-system-automake py-compile"><primary sortas="b-py-compile">py-compile</primary></indexterm> 171 <para>compiles a Python program.</para> 172 </listitem> 173 </varlistentry> 174 175 <varlistentry id="symlink-tree"> 176 <term><command>symlink-tree</command></term> 177 <listitem> 178 <indexterm zone="ch-system-automake symlink-tree"><primary sortas="b-symlink-tree">symlink-tree</primary></indexterm> 179 <para>is a script to create a symlink tree of a directory tree.</para> 180 </listitem> 181 </varlistentry> 182 183 <varlistentry id="ylwrap"> 184 <term><command>ylwrap</command></term> 185 <listitem> 186 <indexterm zone="ch-system-automake ylwrap"><primary sortas="b-ylwrap">ylwrap</primary></indexterm> 187 <para>is a wrapper for <command>lex</command> and <command>yacc</command>.</para> 188 </listitem> 189 </varlistentry> 190 </variablelist> 45 <para>See testing</para> 191 46 192 47 </sect2> -
chapter06/bash.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Bash package contains the Bourne-Again SHell.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Bash installation depends on</segtitle>23 <seglistitem><seg>Binutils, Coreutils, Diffutils, Gawk,24 GCC, Glibc, Grep, Make, Ncurses, Sed.</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Bash</title> 30 24 31 <para>The following patch fixes various issues. Including a problem where Bash 32 sometimes will only show 33 characters on a line and then wraps to the next line.</para> 25 <para>Apply a patch:</para> 33 26 34 27 <screen><userinput>patch -Np1 -i ../bash-&bash-version;-fixes-1.patch</userinput></screen> 35 28 36 <para>Bash also has issues when compiled against newer versions of glibc. The 37 following patch resolves this problem:</para> 29 <para>Apply another patch:</para> 38 30 39 31 <screen><userinput>patch -Np1 -i ../bash-&bash-version;-avoid_WCONTINUED-1.patch</userinput></screen> … … 55 47 <screen><userinput>make install</userinput></screen> 56 48 57 <para> Now run the newly compiled <command>bash</command> program (replacing the one you are currently executing):</para>49 <para>Run the newly compiled <command>bash</command> program:</para> 58 50 59 51 <screen><userinput>exec /bin/bash --login +h</userinput></screen> 60 61 <note><para>The parameters used make it an interactive login instance62 (so <filename>/etc/profile</filename> is read, if it exists, and the first found63 <filename>~/.bash_profile</filename>, <filename>~/.bash_login</filename> or64 and <filename>~/.profile</filename>) and continue to65 disable hashing so that new programs are found as they become66 available.</para></note>67 52 68 53 </sect2> … … 71 56 <sect2 id="contents-bash" role="content"><title>Contents of Bash</title> 72 57 73 <segmentedlist> 74 <segtitle>Installed programs</segtitle> 75 <seglistitem><seg>bash, sh (link to bash) and bashbug</seg></seglistitem> 76 </segmentedlist> 77 78 <variablelist><title>Short descriptions</title> 79 80 <varlistentry id="bash"> 81 <term><command>bash</command></term> 82 <listitem> 83 <indexterm zone="ch-system-bash bash"><primary sortas="b-bash">bash</primary></indexterm> 84 <para>is a widely-used command interpreter. It 85 performs many kinds of expansions and substitutions on a given command line 86 before executing it, thus making this interpreter a powerful tool.</para> 87 </listitem> 88 </varlistentry> 89 90 <varlistentry id="bashbug"> 91 <term><command>bashbug</command></term> 92 <listitem> 93 <indexterm zone="ch-system-bash bashbug"><primary sortas="b-bashbug">bashbug</primary></indexterm> 94 <para>is a shell script to help the user 95 compose and mail bug reports concerning <command>bash</command> in a standard format.</para> 96 </listitem> 97 </varlistentry> 98 99 <varlistentry id="sh"> 100 <term><command>sh</command></term> 101 <listitem> 102 <indexterm zone="ch-system-bash sh"><primary sortas="b-sh">sh</primary></indexterm> 103 <para>is a symlink to the bash program. When invoked 104 as <command>sh</command>, <command>bash</command> tries to mimic the 105 startup behavior of historical versions of <command>sh</command> as 106 closely as possible, while conforming to the POSIX standard as well.</para> 107 </listitem> 108 </varlistentry> 109 </variablelist> 58 <para>See testing</para> 110 59 111 60 </sect2> -
chapter06/binutils.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Binutils package contains a linker, an assembler, and other tools for14 handling object files.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Binutils installation depends on</segtitle>24 <seglistitem><seg>Bash, Coreutils, Diffutils, GCC, Gettext,25 Glibc, Grep, Make, Perl, Sed, Texinfo</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 30 23 <title>Installation of Binutils</title> 31 24 32 <para>Now is an appropriate time to verify that your pseudo terminals (PTYs) are 33 working properly inside the chroot environment. We will again quickly check that 34 everything is set up correctly by performing a simple test:</para> 25 <para>Check if there is PTYs for the test suites:</para> 35 26 36 27 <screen><userinput>expect -c "spawn ls"</userinput></screen> 37 38 <para>If you receive the message:</para>39 40 <screen><computeroutput>The system has no more ptys. Ask your system administrator to create more.</computeroutput></screen>41 42 <para>Your chroot environment is not set up for proper PTY operation. In this43 case there is no point in running the test suites for Binutils and GCC until you44 are able to resolve the issue.</para>45 46 <para>This package is known to behave badly when you have changed its47 default optimization flags (including the <parameter>-march</parameter> and <parameter>-mcpu</parameter> options).48 Therefore, if you have defined any environment variables that override49 default optimizations, such as CFLAGS and CXXFLAGS, we recommend un-setting50 or modifying them when building Binutils.</para>51 28 52 29 <para>The current version of Binutils in use has a bug that causes strip to … … 56 33 <screen><userinput>patch -Np1 -i ../binutils-&binutils-version;-fix_strip-1.patch</userinput></screen> 57 34 58 <para>The Binutils documentation recommends building Binutils outside of the 59 source directory in a dedicated build directory:</para> 35 <para>Create the build directory:</para> 60 36 61 37 <screen><userinput>mkdir ../binutils-build … … 70 46 <screen><userinput>make tooldir=/usr</userinput></screen> 71 47 72 <para>Normally, the <emphasis>tooldir</emphasis> (the directory where the73 executables end up) is set to $(exec_prefix)/$(target_alias), which expands74 into, for example, <filename class="directory">/usr/i686-pc-linux-gnu</filename>. Since we only75 build for our own system, we don't need this target specific directory in76 <filename class="directory">/usr</filename>. That setup would be used if the system was used to77 cross-compile (for example compiling a package on an Intel machine that78 generates code that can be executed on PowerPC machines).</para>79 80 <important><para>The test suite for Binutils in this section is considered81 <emphasis>critical</emphasis>. Our advice is to not skip it under any82 circumstances.</para></important>83 84 48 <para>Test the results:</para> 85 49 … … 87 51 88 52 <para>The test suite notes from <xref linkend="ch-tools-binutils-pass2"/> are still 89 very much appropriate here. Be sure to refer back there should you have any 90 doubts.</para> 53 very much appropriate here..</para> 91 54 92 55 <para>Install the package:</para> … … 94 57 <screen><userinput>make tooldir=/usr install</userinput></screen> 95 58 96 <para>Install the <filename class="headerfile">libiberty</filename> header file that is needed by 97 some packages:</para> 59 <para>Install the <filename class="headerfile">libiberty</filename> header file:</para> 98 60 99 61 <screen><userinput>cp ../binutils-&binutils-version;/include/libiberty.h /usr/include</userinput></screen> … … 104 66 <sect2 id="contents-binutils" role="content"><title>Contents of Binutils</title> 105 67 106 <segmentedlist> 107 <segtitle>Installed programs</segtitle> 108 <segtitle>Installed libraries</segtitle> 109 <seglistitem><seg>addr2line, ar, as, c++filt, gprof, ld, nm, objcopy, objdump, 110 ranlib, readelf, size, strings and strip</seg> 111 <seg>libiberty.a, libbfd.[a,so] and libopcodes.[a,so]</seg></seglistitem> 112 </segmentedlist> 113 114 <variablelist><title>Short descriptions</title> 115 116 <varlistentry id="addr2line"> 117 <term><command>addr2line</command></term> 118 <listitem> 119 <indexterm zone="ch-system-binutils addr2line"><primary sortas="b-addr2line">addr2line</primary></indexterm> 120 <para>translates program addresses to file 121 names and line numbers. Given an address and the name of an executable, it 122 uses the debugging information in the executable to figure out which source 123 file and line number are associated with the address.</para> 124 </listitem> 125 </varlistentry> 126 127 <varlistentry id="ar"> 128 <term><command>ar</command></term> 129 <listitem> 130 <indexterm zone="ch-system-binutils ar"><primary sortas="b-ar">ar</primary></indexterm> 131 <para>creates, modifies, and extracts from archives. An archive 132 is a single file holding a collection of other files in a structure that makes 133 it possible to retrieve the original individual files (called members of 134 the archive).</para> 135 </listitem> 136 </varlistentry> 137 138 <varlistentry id="as"> 139 <term><command>as</command></term> 140 <listitem> 141 <indexterm zone="ch-system-binutils as"><primary sortas="b-as">as</primary></indexterm> 142 <para>is an assembler. It assembles the output of <command>gcc</command> into object files.</para> 143 </listitem> 144 </varlistentry> 145 146 <varlistentry id="c-filt"> 147 <term><command>c++filt</command></term> 148 <listitem> 149 <indexterm zone="ch-system-binutils c-filt"><primary sortas="b-c++filt">c++filt</primary></indexterm> 150 <para>is used by the linker to de-mangle C++ and 151 Java symbols, to keep overloaded functions from clashing.</para> 152 </listitem> 153 </varlistentry> 154 155 <varlistentry id="gprof"> 156 <term><command>gprof</command></term> 157 <listitem> 158 <indexterm zone="ch-system-binutils gprof"><primary sortas="b-gprof">gprof</primary></indexterm> 159 <para>displays call graph profile data.</para> 160 </listitem> 161 </varlistentry> 162 163 <varlistentry id="ld"> 164 <term><command>ld</command></term> 165 <listitem> 166 <indexterm zone="ch-system-binutils ld"><primary sortas="b-ld">ld</primary></indexterm> 167 <para>is a linker. It combines a number of object and archive files into a single file, 168 relocating their data and tying up symbol references.</para> 169 </listitem> 170 </varlistentry> 171 172 <varlistentry id="nm"> 173 <term><command>nm</command></term> 174 <listitem> 175 <indexterm zone="ch-system-binutils nm"><primary sortas="b-nm">nm</primary></indexterm> 176 <para>lists the symbols occurring in a given object file.</para> 177 </listitem> 178 </varlistentry> 179 180 <varlistentry id="objcopy"> 181 <term><command>objcopy</command></term> 182 <listitem> 183 <indexterm zone="ch-system-binutils objcopy"><primary sortas="b-objcopy">objcopy</primary></indexterm> 184 <para>is used to translate one type of object file into another.</para> 185 </listitem> 186 </varlistentry> 187 188 <varlistentry id="objdump"> 189 <term><command>objdump</command></term> 190 <listitem> 191 <indexterm zone="ch-system-binutils objdump"><primary sortas="b-objdump">objdump</primary></indexterm> 192 <para>displays information about the given object file, with options controlling what 193 particular information to display. The information shown is mostly only useful to 194 programmers who are working on the compilation tools.</para> 195 </listitem> 196 </varlistentry> 197 198 <varlistentry id="ranlib"> 199 <term><command>ranlib</command></term> 200 <listitem> 201 <indexterm zone="ch-system-binutils ranlib"><primary sortas="b-ranlib">ranlib</primary></indexterm> 202 <para>generates an index of the contents of an 203 archive, and stores it in the archive. The index lists all the symbols defined 204 by archive members that are relocatable object files.</para> 205 </listitem> 206 </varlistentry> 207 208 <varlistentry id="readelf"> 209 <term><command>readelf</command></term> 210 <listitem> 211 <indexterm zone="ch-system-binutils readelf"><primary sortas="b-readelf">readelf</primary></indexterm> 212 <para>displays information about elf type binaries.</para> 213 </listitem> 214 </varlistentry> 215 216 <varlistentry id="size"> 217 <term><command>size</command></term> 218 <listitem> 219 <indexterm zone="ch-system-binutils size"><primary sortas="b-size">size</primary></indexterm> 220 <para>lists the section sizes -- and the grand total -- for the given object files.</para> 221 </listitem> 222 </varlistentry> 223 224 <varlistentry id="strings"> 225 <term><command>strings</command></term> 226 <listitem> 227 <indexterm zone="ch-system-binutils strings"><primary sortas="b-strings">strings</primary></indexterm> 228 <para>outputs, for each given file, the sequences 229 of printable characters that are of at least the specified length (defaulting to 4). 230 For object files it prints, by default, only the strings from the initializing 231 and loading sections. For other types of files it scans the whole file.</para> 232 </listitem> 233 </varlistentry> 234 235 <varlistentry id="strip"> 236 <term><command>strip</command></term> 237 <listitem> 238 <indexterm zone="ch-system-binutils strip"><primary sortas="b-strip">strip</primary></indexterm> 239 <para>discards symbols from object files.</para> 240 </listitem> 241 </varlistentry> 242 243 <varlistentry id="libiberty"> 244 <term><filename class="libraryfile">libiberty</filename></term> 245 <listitem> 246 <indexterm zone="ch-system-binutils libiberty"><primary sortas="c-libiberty">libiberty</primary></indexterm> 247 <para>contains routines used by various GNU 248 programs, including getopt, obstack, strerror, strtol and strtoul.</para> 249 </listitem> 250 </varlistentry> 251 252 <varlistentry id="libbfd"> 253 <term><filename class="libraryfile">libbfd</filename></term> 254 <listitem> 255 <indexterm zone="ch-system-binutils libbfd"><primary sortas="c-libbfd">libbfd</primary></indexterm> 256 <para>is the Binary File Descriptor library.</para> 257 </listitem> 258 </varlistentry> 259 260 <varlistentry id="libopcodes"> 261 <term><filename class="libraryfile">libopcodes</filename></term> 262 <listitem> 263 <indexterm zone="ch-system-binutils libopcodes"><primary sortas="c-libopcodes">libopcodes</primary></indexterm> 264 <para>is a library for dealing with opcodes. 265 It is used for building utilities like objdump. Opcodes are the <quote>readable 266 text</quote> versions of instructions for the processor.</para> 267 </listitem> 268 </varlistentry> 269 </variablelist> 68 <para>See testing</para> 270 69 271 70 </sect2> -
chapter06/bison.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Bison package contains a parser generator.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Bison installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Gettext, Glibc, Grep, M4, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-bison" role="content"><title>Contents of Bison</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed programs</segtitle> 53 <segtitle>Installed library</segtitle> 54 <seglistitem><seg>bison and yacc</seg><seg>liby.a</seg></seglistitem> 55 </segmentedlist> 56 57 <variablelist><title>Short descriptions</title> 58 59 <varlistentry id="bison"> 60 <term><command>bison</command></term> 61 <listitem> 62 <indexterm zone="ch-system-bison bison"><primary sortas="b-bison">bison</primary></indexterm> 63 <para>generates, from a series of rules, a program 64 for analyzing the structure of text files. <command>bison</command> is a replacement for <command>yacc</command> 65 (Yet Another Compiler Compiler).</para> 66 </listitem> 67 </varlistentry> 68 69 <varlistentry id="yacc"> 70 <term><command>yacc</command></term> 71 <listitem> 72 <indexterm zone="ch-system-bison yacc"><primary sortas="b-yacc">yacc</primary></indexterm> 73 <para>is a wrapper for <command>bison</command>, meant for programs 74 that still call <command>yacc</command> instead of <command>bison</command>. 75 It calls <command>bison</command> with the <parameter>-y</parameter> option.</para> 76 </listitem> 77 </varlistentry> 78 79 <varlistentry id="liby.a"> 80 <term><filename class="libraryfile">liby.a</filename></term> 81 <listitem> 82 <indexterm zone="ch-system-bison liby.a"><primary sortas="c-liby.a">liby.a</primary></indexterm> 83 <para>is the Yacc library containing 84 implementations of Yacc-compatible yyerror and main functions. This library 85 is normally not very useful, but POSIX requires it.</para> 86 </listitem> 87 </varlistentry> 88 </variablelist> 45 <para>See testing</para> 89 46 90 47 </sect2> -
chapter06/bzip2.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Bzip2 package contains programs for compressing and decompressing14 files. On text files they achieve a much better compression than the15 traditional <command>gzip</command>.</para>16 13 17 14 <segmentedlist> … … 21 18 </segmentedlist> 22 19 23 <segmentedlist>24 <segtitle>Bzip2 installation depends on</segtitle>25 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,26 GCC, Glibc, Make</seg></seglistitem>27 </segmentedlist>28 20 </sect2> 29 21 … … 36 28 make clean</userinput></screen> 37 29 38 <para>The <parameter>-f</parameter> flag will cause Bzip2 to be built39 using a different <filename>Makefile</filename> file, in this case the40 <filename>Makefile-libbz2_so</filename> file, which creates a dynamic41 <filename class="libraryfile">libbz2.so</filename> library and links the Bzip2 utilities42 against it.</para>43 44 30 <para>Compile the package:</para> 45 31 46 32 <screen><userinput>make</userinput></screen> 47 33 48 <para>If you are reinstalling Bzip2, you need to do 49 <userinput>rm -f /usr/bin/bz*</userinput> first, otherwise the following 50 <command>make install</command> will fail.</para> 51 52 <para>Install the programs:</para> 34 <para>Install the package:</para> 53 35 54 36 <screen><userinput>make install</userinput></screen> 55 37 56 <para>Now install the shared <command>bzip2</command> binary into the 57 <filename class="directory">/bin</filename> directory, then make some 58 necessary symbolic links, and clean up:</para> 38 <para>Do some location changes:</para> 59 39 60 40 <screen><userinput>cp bzip2-shared /bin/bzip2 … … 70 50 <sect2 id="contents-bzip2" role="content"><title>Contents of Bzip2</title> 71 51 72 <segmentedlist> 73 <segtitle>Installed programs</segtitle> 74 <segtitle>Installed libraries</segtitle> 75 <seglistitem><seg>bunzip2 (link to bzip2), bzcat (link to bzip2), bzcmp, bzdiff, 76 bzegrep, bzfgrep, bzgrep, bzip2, bzip2recover, bzless and bzmore</seg> 77 <seg>libbz2.a, libbz2.so (link to libbz2.so.1.0), libbz2.so.1.0 (link to 78 libbz2.so.&bzip2-version;) and libbz2.so.&bzip2-version;</seg></seglistitem> 79 </segmentedlist> 80 81 <variablelist><title>Short descriptions</title> 82 83 <varlistentry id="bunzip2"> 84 <term><command>bunzip2</command></term> 85 <listitem> 86 <indexterm zone="ch-system-bzip2 bunzip2"><primary sortas="b-bunzip2">bunzip2</primary></indexterm> 87 <para>decompresses bzipped files.</para> 88 </listitem> 89 </varlistentry> 90 91 <varlistentry id="bzcat"> 92 <term><command>bzcat</command></term> 93 <listitem> 94 <indexterm zone="ch-system-bzip2 bzcat"><primary sortas="b-bzcat">bzcat</primary></indexterm> 95 <para>decompresses to standard output.</para> 96 </listitem> 97 </varlistentry> 98 99 <varlistentry id="bzcmp"> 100 <term><command>bzcmp</command></term> 101 <listitem> 102 <indexterm zone="ch-system-bzip2 bzcmp"><primary sortas="b-bzcmp">bzcmp</primary></indexterm> 103 <para>runs <command>cmp</command> on bzipped files.</para> 104 </listitem> 105 </varlistentry> 106 107 <varlistentry id="bzdiff"> 108 <term><command>bzdiff</command></term> 109 <listitem> 110 <indexterm zone="ch-system-bzip2 bzdiff"><primary sortas="b-bzdiff">bzdiff</primary></indexterm> 111 <para>runs <command>diff</command> on bzipped files.</para> 112 </listitem> 113 </varlistentry> 114 115 <varlistentry id="bzgrep"> 116 <term><command>bzgrep</command></term> 117 <listitem> 118 <indexterm zone="ch-system-bzip2 bzgrep"><primary sortas="b-bzgrep">bzgrep</primary></indexterm> 119 <para>and friends run <command>grep</command> on bzipped files.</para> 120 </listitem> 121 </varlistentry> 122 123 <varlistentry id="bzip2"> 124 <term><command>bzip2</command></term> 125 <listitem> 126 <indexterm zone="ch-system-bzip2 bzip2"><primary sortas="b-bzip2">bzip2</primary></indexterm> 127 <para>compresses files using the Burrows-Wheeler 128 block sorting text compression algorithm with Huffman coding. The compression 129 rate is generally considerably better than that achieved by more conventional 130 compressors using LZ77/LZ78, like <command>gzip</command>.</para> 131 </listitem> 132 </varlistentry> 133 134 <varlistentry id="bzip2recover"> 135 <term><command>bzip2recover</command></term> 136 <listitem> 137 <indexterm zone="ch-system-bzip2 bzip2recover"><primary sortas="b-bzip2recover">bzip2recover</primary></indexterm> 138 <para>tries to recover data from damaged bzipped files.</para> 139 </listitem> 140 </varlistentry> 141 142 <varlistentry id="bzless"> 143 <term><command>bzless</command></term> 144 <listitem> 145 <indexterm zone="ch-system-bzip2 bzless"><primary sortas="b-bzless">bzless</primary></indexterm> 146 <para>runs <command>less</command> on bzipped files.</para> 147 </listitem> 148 </varlistentry> 149 150 <varlistentry id="bzmore"> 151 <term><command>bzmore</command></term> 152 <listitem> 153 <indexterm zone="ch-system-bzip2 bzmore"><primary sortas="b-bzmore">bzmore</primary></indexterm> 154 <para>runs <command>more</command> on bzipped files.</para> 155 </listitem> 156 </varlistentry> 157 158 <varlistentry id="libbz2"> 159 <term><filename class="libraryfile">libbz2*</filename></term> 160 <listitem> 161 <indexterm zone="ch-system-bzip2 libbz2"><primary sortas="c-libbz2*">libbz2*</primary></indexterm> 162 <para>is the library implementing lossless, 163 block-sorting data compression, using the Burrows-Wheeler algorithm.</para> 164 </listitem> 165 </varlistentry> 166 </variablelist> 52 <para>See testing</para> 167 53 168 54 </sect2> -
chapter06/changingowner.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="changingowner.html"?> 9 9 10 <para>Right now the <filename class="directory">/tools</filename> directory 11 is owned by the user <emphasis>lfs</emphasis>, a user that exists only on your 12 host system. Although you will probably want to delete the 13 <filename class="directory">/tools</filename> directory once you have 14 finished your LFS system, you may want to keep it around, for example to 15 build more LFS systems. But if you keep the 16 <filename class="directory">/tools</filename> directory as it is, you end up 17 with files owned by a user ID without a corresponding account. This is 18 dangerous because a user account created later on could get this same user ID 19 and would suddenly own the <filename class="directory">/tools</filename> 20 directory and all the files therein, thus exposing these files to possible 21 malicious manipulation.</para> 22 23 <para>To avoid this issue, you could add the <emphasis>lfs</emphasis> user to 24 your new LFS system later on when creating the <filename>/etc/passwd</filename> 25 file, taking care to assign it the same user and group IDs as on your host 26 system. Alternatively, you can (and the book assumes you do) assign the 27 contents of the <filename class="directory">/tools</filename> directory to 28 user <emphasis>root</emphasis> by running the following command:</para> 10 <para>Change the owner of <filename class="directory">/tools</filename>:</para> 29 11 30 12 <screen><userinput>chown -R 0:0 /tools</userinput></screen> 31 13 32 <para>The command uses <parameter>0:0</parameter> instead of <parameter>root:root</parameter>,33 because <userinput>chown</userinput> is unable to resolve the name34 <quote>root</quote> until the password file has been created.</para>35 36 14 </sect1> -
chapter06/chroot.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="chroot.html"?> 9 9 10 <para>It is time to enter the chroot environment in order to begin building 11 and installing your final LFS system. Still as <emphasis>root</emphasis> run 12 the following command to enter the small world that is, at the moment, 13 populated with only the temporary tools:</para> 10 <para>Enter the chroot environment:</para> 14 11 15 12 <screen><userinput>chroot "$LFS" /tools/bin/env -i \ … … 18 15 /tools/bin/bash --login +h</userinput></screen> 19 16 20 <para>The <parameter>-i</parameter> option given to the21 <command>env</command> command will clear all variables of the chroot22 environment. After that, only the HOME, TERM, PS1 and PATH variables are23 set again. The <parameter>TERM=$TERM</parameter> construct will set the TERM variable inside chroot24 to the same value as outside chroot; this variable is needed for programs25 like <command>vim</command> and <command>less</command> to operate26 properly. If you need other variables present, such as CFLAGS or CXXFLAGS,27 this is a good place to set them again.</para>28 29 <para>From this point on there's no need to use the LFS variable anymore,30 because everything you do will be restricted to the LFS file system -- since31 what the shell thinks is <filename class="directory">/</filename> is actually32 the value of <filename class="directory">$LFS</filename>, which was passed to33 the chroot command.</para>34 35 <para>Notice that <filename class="directory">/tools/bin</filename> comes36 last in the PATH. This means that a temporary tool will not be used any more37 as soon as its final version is installed. Well, at least when the shell38 doesn't remember the locations of executed binaries -- for this reason hashing39 is switched off by passing the <parameter>+h</parameter> option to40 <command>bash</command>.</para>41 42 <para>You have to make sure all the commands in the rest of this chapter and43 in the following chapters are run from within the chroot environment.44 If you ever leave this environment for any reason (rebooting for example),45 you must remember to first mount the <systemitem class="filesystem">proc</systemitem>46 and <systemitem class="filesystem">devpts</systemitem> file systems (discussed47 in the previous section) <emphasis>and</emphasis> enter chroot again before48 continuing with the installations.</para>49 50 <para>Note that the <command>bash</command> prompt will say51 <computeroutput>I have no name!</computeroutput> This is52 normal, as the <filename>/etc/passwd</filename> file has not been created yet.53 </para>54 55 17 </sect1> -
chapter06/coreutils.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Coreutils package contains utilities for showing and setting the14 basic system characteristics.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Coreutils installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, GCC,25 Gettext, Glibc, Grep, Make, Perl, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 30 23 <title>Installation of Coreutils</title> 31 24 32 <para>Normally the functionality of <command>uname</command> is somewhat 33 broken, in that the <parameter>-p</parameter> switch always returns 34 <computeroutput>unknown</computeroutput>. The following patch fixes this behavior for Intel 35 architectures:</para> 25 <para>Apply a patch:</para> 36 26 37 27 <screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-uname-2.patch</userinput></screen> 38 28 39 <para>Prevent Coreutils from installing binaries that will be later be installed 40 by other programs:</para> 29 <para>Apply another patch:</para> 41 30 42 31 <screen><userinput>patch -Np1 -i ../coreutils-&coreutils-version;-suppress_uptime_kill_su-1.patch</userinput></screen> … … 50 39 <screen><userinput>make</userinput></screen> 51 40 52 <para>The test suite of Coreutils makes several assumptions about the presence53 of files and users that aren't valid this early in the LFS build. We will54 therefore have to set up a few things before being able to run the tests. If55 you choose not to run these tests, skip down to <quote>Install the56 package</quote>.</para>57 58 41 <para>Create two dummy groups and a dummy user name:</para> 59 42 … … 62 45 echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd</userinput></screen> 63 46 64 <para>Now you're all set to run the test suite. First run the few tests that 65 are meant to be run as <emphasis>root</emphasis>:</para> 47 <para>Run the <emphasis>root</emphasis> tests:</para> 66 48 67 49 <screen><userinput>make NON_ROOT_USERNAME=dummy check-root</userinput></screen> 68 50 69 <para>Then run the remainder of the tests as the <emphasis>dummy</emphasis> 70 user:</para> 51 <para>Run the user tests:</para> 71 52 72 53 <screen><userinput>src/su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"</userinput></screen> 73 54 74 <para> When you're done testing, remove the dummy user and groups:</para>55 <para>Remove the dummy user and groups:</para> 75 56 76 57 <screen><userinput>sed -i '/dummy/d' /etc/passwd /etc/group</userinput></screen> … … 89 70 mv /usr/bin/chroot /usr/sbin</userinput></screen> 90 71 91 <para> Finally, create a symlink to be FHS-compliant:</para>72 <para>Create a symlink:</para> 92 73 93 74 <screen><userinput>ln -s ../../bin/install /usr/bin</userinput></screen> … … 98 79 <sect2 id="contents-coreutils" role="content"><title>Contents of Coreutils</title> 99 80 100 <segmentedlist> 101 <segtitle>Installed programs</segtitle> 102 <seglistitem><seg>basename, cat, chgrp, chmod, 103 chown, chroot, cksum, comm, cp, csplit, cut, date, dd, df, dir, dircolors, 104 dirname, du, echo, env, expand, expr, factor, false, fmt, fold, groups, head, 105 hostid, hostname, id, install, join, link, ln, logname, ls, md5sum, 106 mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk, pinky, pr, 107 printenv, printf, ptx, pwd, readlink, rm, rmdir, seq, sha1sum, shred, sleep, 108 sort, split, stat, stty, su, sum, sync, tac, tail, tee, test, touch, tr, true, 109 tsort, tty, uname, unexpand, uniq, unlink, uptime, users, vdir, wc, who, 110 whoami and yes</seg></seglistitem> 111 </segmentedlist> 112 113 <variablelist><title>Short descriptions</title> 114 115 <varlistentry id="basename"> 116 <term><command>basename</command></term> 117 <listitem> 118 <indexterm zone="ch-system-coreutils basename"><primary sortas="b-basename">basename</primary></indexterm> 119 <para>strips any path and a given suffix from the given file name.</para> 120 </listitem> 121 </varlistentry> 122 123 <varlistentry id="cat"> 124 <term><command>cat</command></term> 125 <listitem> 126 <indexterm zone="ch-system-coreutils cat"><primary sortas="b-cat">cat</primary></indexterm> 127 <para>concatenates files to standard output.</para> 128 </listitem> 129 </varlistentry> 130 131 <varlistentry id="chgrp"> 132 <term><command>chgrp</command></term> 133 <listitem> 134 <indexterm zone="ch-system-coreutils chgrp"><primary sortas="b-chgrp">chgrp</primary></indexterm> 135 <para>changes the group ownership of each given file to the given group. The 136 group can be either given a a name or a numeric ID.</para> 137 </listitem> 138 </varlistentry> 139 140 <varlistentry id="chmod"> 141 <term><command>chmod</command></term> 142 <listitem> 143 <indexterm zone="ch-system-coreutils chmod"><primary sortas="b-chmod">chmod</primary></indexterm> 144 <para>changes the permissions of each given file 145 to the given mode. The mode can be either a symbolic representation of the 146 changes to make, or an octal number representing the new permissions.</para> 147 </listitem> 148 </varlistentry> 149 150 <varlistentry id="chown"> 151 <term><command>chown</command></term> 152 <listitem> 153 <indexterm zone="ch-system-coreutils chown"><primary sortas="b-chown">chown</primary></indexterm> 154 <para>changes the user and/or group ownership of 155 each given file to the given user:group pair.</para> 156 </listitem> 157 </varlistentry> 158 159 <varlistentry id="chroot"> 160 <term><command>chroot</command></term> 161 <listitem> 162 <indexterm zone="ch-system-coreutils chroot"><primary sortas="b-chroot">chroot</primary></indexterm> 163 <para>runs a given command with the specified directory as the 164 <filename class="directory">/</filename> directory. The given command can be an interactive shell. 165 On most systems only <emphasis>root</emphasis> can do this.</para> 166 </listitem> 167 </varlistentry> 168 169 <varlistentry id="cksum"> 170 <term><command>cksum</command></term> 171 <listitem> 172 <indexterm zone="ch-system-coreutils cksum"><primary sortas="b-cksum">cksum</primary></indexterm> 173 <para>prints the CRC (Cyclic Redundancy Check) checksum and the byte 174 counts of each specified file.</para> 175 </listitem> 176 </varlistentry> 177 178 <varlistentry id="comm"> 179 <term><command>comm</command></term> 180 <listitem> 181 <indexterm zone="ch-system-coreutils comm"><primary sortas="b-comm">comm</primary></indexterm> 182 <para>compares two sorted files, outputting in 183 three columns the lines that are unique, and the lines that are common.</para> 184 </listitem> 185 </varlistentry> 186 187 <varlistentry id="cp"> 188 <term><command>cp</command></term> 189 <listitem> 190 <indexterm zone="ch-system-coreutils cp"><primary sortas="b-cp">cp</primary></indexterm> 191 <para>copies files.</para> 192 </listitem> 193 </varlistentry> 194 195 <varlistentry id="csplit"> 196 <term><command>csplit</command></term> 197 <listitem> 198 <indexterm zone="ch-system-coreutils csplit"><primary sortas="b-csplit">csplit</primary></indexterm> 199 <para>splits a given file into several new files, 200 separating them according to given patterns or line numbers, and outputting 201 the byte count of each new file.</para> 202 </listitem> 203 </varlistentry> 204 205 <varlistentry id="cut"> 206 <term><command>cut</command></term> 207 <listitem> 208 <indexterm zone="ch-system-coreutils cut"><primary sortas="b-cut">cut</primary></indexterm> 209 <para>prints parts of lines, selecting the parts 210 according to given fields or positions.</para> 211 </listitem> 212 </varlistentry> 213 214 <varlistentry id="date"> 215 <term><command>date</command></term> 216 <listitem> 217 <indexterm zone="ch-system-coreutils date"><primary sortas="b-date">date</primary></indexterm> 218 <para>displays the current time in the given format, or sets the system date.</para> 219 </listitem> 220 </varlistentry> 221 222 <varlistentry id="dd"> 223 <term><command>dd</command> </term> 224 <listitem> 225 <indexterm zone="ch-system-coreutils dd"><primary sortas="b-dd">dd</primary></indexterm> 226 <para>copies a file using the given block size and 227 count, while optionally performing conversions on it.</para> 228 </listitem> 229 </varlistentry> 230 231 <varlistentry id="df"> 232 <term><command>df</command></term> 233 <listitem> 234 <indexterm zone="ch-system-coreutils df"><primary sortas="b-df">df</primary></indexterm> 235 <para>reports the amount of disk space available 236 (and used) on all mounted file systems, or only on the file systems holding the 237 given files.</para> 238 </listitem> 239 </varlistentry> 240 241 <varlistentry id="dir"> 242 <term><command>dir</command></term> 243 <listitem> 244 <indexterm zone="ch-system-coreutils dir"><primary sortas="b-dir">dir</primary></indexterm> 245 <para>is the same as <command>ls</command>.</para> 246 </listitem> 247 </varlistentry> 248 249 <varlistentry id="dircolors"> 250 <term><command>dircolors</command></term> 251 <listitem> 252 <indexterm zone="ch-system-coreutils dircolors"><primary sortas="b-dircolors">dircolors</primary></indexterm> 253 <para>outputs commands to set the LS_COLOR 254 environment variable, to change the color scheme used by <command>ls</command>.</para> 255 </listitem> 256 </varlistentry> 257 258 <varlistentry id="dirname"> 259 <term><command>dirname</command></term> 260 <listitem> 261 <indexterm zone="ch-system-coreutils dirname"><primary sortas="b-dirname">dirname</primary></indexterm> 262 <para>strips the non-directory suffix from a given file name.</para> 263 </listitem> 264 </varlistentry> 265 266 <varlistentry id="du"> 267 <term><command>du</command></term> 268 <listitem> 269 <indexterm zone="ch-system-coreutils du"><primary sortas="b-du">du</primary></indexterm> 270 <para>reports the amount of disk space used by the 271 current directory, or by each of the given directories including all their 272 subdirectories, or by each of the given files.</para> 273 </listitem> 274 </varlistentry> 275 276 <varlistentry id="echo"> 277 <term><command>echo</command></term> 278 <listitem> 279 <indexterm zone="ch-system-coreutils echo"><primary sortas="b-echo">echo</primary></indexterm> 280 <para>displays the given strings.</para> 281 </listitem> 282 </varlistentry> 283 284 <varlistentry id="env"> 285 <term><command>env</command></term> 286 <listitem> 287 <indexterm zone="ch-system-coreutils env"><primary sortas="b-env">env</primary></indexterm> 288 <para>runs a command in a modified environment.</para> 289 </listitem> 290 </varlistentry> 291 292 <varlistentry id="expand"> 293 <term><command>expand</command></term> 294 <listitem> 295 <indexterm zone="ch-system-coreutils expand"><primary sortas="b-expand">expand</primary></indexterm> 296 <para>converts tabs to spaces.</para> 297 </listitem> 298 </varlistentry> 299 300 <varlistentry id="expr"> 301 <term><command>expr</command></term> 302 <listitem> 303 <indexterm zone="ch-system-coreutils expr"><primary sortas="b-expr">expr</primary></indexterm> 304 <para>evaluates expressions.</para> 305 </listitem> 306 </varlistentry> 307 308 <varlistentry id="factor"> 309 <term><command>factor</command></term> 310 <listitem> 311 <indexterm zone="ch-system-coreutils factor"><primary sortas="b-factor">factor</primary></indexterm> 312 <para>prints the prime factors of all specified integer numbers.</para> 313 </listitem> 314 </varlistentry> 315 316 <varlistentry id="false"> 317 <term><command>false</command></term> 318 <listitem> 319 <indexterm zone="ch-system-coreutils false"><primary sortas="b-false">false</primary></indexterm> 320 <para>does nothing, unsuccessfully. It always 321 exits with a status code indicating failure.</para> 322 </listitem> 323 </varlistentry> 324 325 <varlistentry id="mt"> 326 <term><command>fmt</command></term> 327 <listitem> 328 <indexterm zone="ch-system-coreutils mt"><primary sortas="b-mt">mt</primary></indexterm> 329 <para>reformats the paragraphs in the given files.</para> 330 </listitem> 331 </varlistentry> 332 333 <varlistentry id="fold"> 334 <term><command>fold</command></term> 335 <listitem> 336 <indexterm zone="ch-system-coreutils fold"><primary sortas="b-fold">fold</primary></indexterm> 337 <para>wraps the lines in the given files.</para> 338 </listitem> 339 </varlistentry> 340 341 <varlistentry id="groups-coreutils"> 342 <term><command>groups</command></term> 343 <listitem> 344 <indexterm zone="ch-system-coreutils groups-coreutils"><primary sortas="b-groups-coreutils">groups</primary></indexterm> 345 <para>reports a user's group memberships.</para> 346 </listitem> 347 </varlistentry> 348 349 <varlistentry id="head"> 350 <term><command>head</command></term> 351 <listitem> 352 <indexterm zone="ch-system-coreutils head"><primary sortas="b-head">head</primary></indexterm> 353 <para>prints the first ten lines (or the given number of lines) of each given file.</para> 354 </listitem> 355 </varlistentry> 356 357 <varlistentry id="hostid"> 358 <term><command>hostid</command></term> 359 <listitem> 360 <indexterm zone="ch-system-coreutils hostid"><primary sortas="b-hostid">hostid</primary></indexterm> 361 <para>reports the numeric identifier (in hexadecimal) of the host.</para> 362 </listitem> 363 </varlistentry> 364 365 <varlistentry id="hostname-coreutils"> 366 <term><command>hostname</command></term> 367 <listitem> 368 <indexterm zone="ch-system-coreutils hostname-coreutils"><primary sortas="b-hostname-coreutils">hostname</primary></indexterm> 369 <para>reports or sets the name of the host.</para> 370 </listitem> 371 </varlistentry> 372 373 <varlistentry id="id"> 374 <term><command>id</command></term> 375 <listitem> 376 <indexterm zone="ch-system-coreutils id"><primary sortas="b-id">id</primary></indexterm> 377 <para>reports the effective user ID, group ID, and 378 group memberships of the current user, or of a given user.</para> 379 </listitem> 380 </varlistentry> 381 382 <varlistentry id="install"> 383 <term><command>install</command> </term> 384 <listitem> 385 <indexterm zone="ch-system-coreutils install"><primary sortas="b-install">install</primary></indexterm> 386 <para>copies files while setting their 387 permission modes and, if possible, their owner and group.</para> 388 </listitem> 389 </varlistentry> 390 391 <varlistentry id="join"> 392 <term><command>join</command></term> 393 <listitem> 394 <indexterm zone="ch-system-coreutils join"><primary sortas="b-join">join</primary></indexterm> 395 <para>joins from two files the lines that have identical join fields.</para> 396 </listitem> 397 </varlistentry> 398 399 <varlistentry id="link"> 400 <term><command>link</command></term> 401 <listitem> 402 <indexterm zone="ch-system-coreutils link"><primary sortas="b-link">link</primary></indexterm> 403 <para>creates a hard link with the given name to the given file.</para> 404 </listitem> 405 </varlistentry> 406 407 <varlistentry id="ln"> 408 <term><command>ln</command></term> 409 <listitem> 410 <indexterm zone="ch-system-coreutils ln"><primary sortas="b-ln">ln</primary></indexterm> 411 <para>makes hard links or soft links between files.</para> 412 </listitem> 413 </varlistentry> 414 415 <varlistentry id="logname"> 416 <term><command>logname</command></term> 417 <listitem> 418 <indexterm zone="ch-system-coreutils logname"><primary sortas="b-logname">logname</primary></indexterm> 419 <para>reports the current user's login name.</para> 420 </listitem> 421 </varlistentry> 422 423 <varlistentry id="ls"> 424 <term><command>ls</command></term> 425 <listitem> 426 <indexterm zone="ch-system-coreutils ls"><primary sortas="b-ls">ls</primary></indexterm> 427 <para>lists the contents of each given directory. 428 By default it orders the files and subdirectories alphabetically.</para> 429 </listitem> 430 </varlistentry> 431 432 <varlistentry id="md5sum"> 433 <term><command>md5sum</command></term> 434 <listitem> 435 <indexterm zone="ch-system-coreutils md5sum"><primary sortas="b-md5sum">md5sum</primary></indexterm> 436 <para>reports or checks MD5 (Message Digest 5) checksums.</para> 437 </listitem> 438 </varlistentry> 439 440 <varlistentry id="mkdir"> 441 <term><command>mkdir</command></term> 442 <listitem> 443 <indexterm zone="ch-system-coreutils mkdir"><primary sortas="b-mkdir">mkdir</primary></indexterm> 444 <para>creates directories with the given names.</para> 445 </listitem> 446 </varlistentry> 447 448 <varlistentry id="mkfifo"> 449 <term><command>mkfifo</command></term> 450 <listitem> 451 <indexterm zone="ch-system-coreutils mkfifo"><primary sortas="b-mkfifo">mkfifo</primary></indexterm> 452 <para>creates FIFOs (First-In, First-Out, a <quote>named pipe</quote> in UNIX parlance) with 453 the given names.</para> 454 </listitem> 455 </varlistentry> 456 457 <varlistentry id="mknod"> 458 <term><command>mknod</command></term> 459 <listitem> 460 <indexterm zone="ch-system-coreutils mknod"><primary sortas="b-mknod">mknod</primary></indexterm> 461 <para>creates device nodes with the given names. 462 A device node is a character special file, or a block special file, or a FIFO.</para> 463 </listitem> 464 </varlistentry> 465 466 <varlistentry id="mv"> 467 <term><command>mv</command></term> 468 <listitem> 469 <indexterm zone="ch-system-coreutils mv"><primary sortas="b-mv">mv</primary></indexterm> 470 <para>moves or renames files or directories.</para> 471 </listitem> 472 </varlistentry> 473 474 <varlistentry id="nice"> 475 <term><command>nice</command></term> 476 <listitem> 477 <indexterm zone="ch-system-coreutils nice"><primary sortas="b-nice">nice</primary></indexterm> 478 <para>runs a program with modified scheduling priority.</para> 479 </listitem> 480 </varlistentry> 481 482 <varlistentry id="nl"> 483 <term><command>nl</command></term> 484 <listitem> 485 <indexterm zone="ch-system-coreutils nl"><primary sortas="b-nl">nl</primary></indexterm> 486 <para>numbers the lines from the given files.</para> 487 </listitem> 488 </varlistentry> 489 490 <varlistentry id="nohup"> 491 <term><command>nohup</command></term> 492 <listitem> 493 <indexterm zone="ch-system-coreutils nohup"><primary sortas="b-nohup">nohup</primary></indexterm> 494 <para>runs a command immune to hangups, with 495 output redirected to a log file.</para> 496 </listitem> 497 </varlistentry> 498 499 <varlistentry id="od"> 500 <term><command>od</command></term> 501 <listitem> 502 <indexterm zone="ch-system-coreutils od"><primary sortas="b-od">od</primary></indexterm> 503 <para>dumps files in octal and other formats.</para> 504 </listitem> 505 </varlistentry> 506 507 <varlistentry id="paste"> 508 <term><command>paste</command></term> 509 <listitem> 510 <indexterm zone="ch-system-coreutils paste"><primary sortas="b-paste">paste</primary></indexterm> 511 <para>merges the given files, joining 512 sequentially corresponding lines side by side, separated by tab characters..</para> 513 </listitem> 514 </varlistentry> 515 516 <varlistentry id="pathchk"> 517 <term><command>pathchk</command></term> 518 <listitem> 519 <indexterm zone="ch-system-coreutils pathchk"><primary sortas="b-pathchk">pathchk</primary></indexterm> 520 <para>checks whether file names are valid or portable.</para> 521 </listitem> 522 </varlistentry> 523 524 <varlistentry id="pinky"> 525 <term><command>pinky</command></term> 526 <listitem> 527 <indexterm zone="ch-system-coreutils pinky"><primary sortas="b-pinky">pinky</primary></indexterm> 528 <para>is a lightweight finger. It reports some information about the given users.</para> 529 </listitem> 530 </varlistentry> 531 532 <varlistentry id="pr"> 533 <term><command>pr</command></term> 534 <listitem> 535 <indexterm zone="ch-system-coreutils pr"><primary sortas="b-pr">pr</primary></indexterm> 536 <para>paginates and columnates files for printing.</para> 537 </listitem> 538 </varlistentry> 539 540 <varlistentry id="printenv"> 541 <term><command>printenv</command></term> 542 <listitem> 543 <indexterm zone="ch-system-coreutils printenv"><primary sortas="b-printenv">printenv</primary></indexterm> 544 <para>prints the environment.</para> 545 </listitem> 546 </varlistentry> 547 548 <varlistentry id="printf"> 549 <term><command>printf</command></term> 550 <listitem> 551 <indexterm zone="ch-system-coreutils printf"><primary sortas="b-printf">printf</primary></indexterm> 552 <para>prints the given arguments according to the 553 given format -- much like the C printf function.</para> 554 </listitem> 555 </varlistentry> 556 557 <varlistentry id="ptx"> 558 <term><command>ptx</command></term> 559 <listitem> 560 <indexterm zone="ch-system-coreutils ptx"><primary sortas="b-ptx">ptx</primary></indexterm> 561 <para>produces from the contents of the given files 562 a permuted index, with each keyword in its context.</para> 563 </listitem> 564 </varlistentry> 565 566 <varlistentry id="pwd"> 567 <term><command>pwd</command></term> 568 <listitem> 569 <indexterm zone="ch-system-coreutils pwd"><primary sortas="b-pwd">pwd</primary></indexterm> 570 <para>reports the name of the current directory.</para> 571 </listitem> 572 </varlistentry> 573 574 <varlistentry id="readlink"> 575 <term><command>readlink</command></term> 576 <listitem> 577 <indexterm zone="ch-system-coreutils readlink"><primary sortas="b-readlink">readlink</primary></indexterm> 578 <para>reports the value of the given symbolic link.</para> 579 </listitem> 580 </varlistentry> 581 582 <varlistentry id="rm"> 583 <term><command>rm</command></term> 584 <listitem> 585 <indexterm zone="ch-system-coreutils rm"><primary sortas="b-rm">rm</primary></indexterm> 586 <para>removes files or directories.</para> 587 </listitem> 588 </varlistentry> 589 590 <varlistentry id="rmdir"> 591 <term><command>rmdir</command></term> 592 <listitem> 593 <indexterm zone="ch-system-coreutils rmdir"><primary sortas="b-rmdir">rmdir</primary></indexterm> 594 <para>removes directories, if they are empty.</para> 595 </listitem> 596 </varlistentry> 597 598 <varlistentry id="seq"> 599 <term><command>seq</command></term> 600 <listitem> 601 <indexterm zone="ch-system-coreutils seq"><primary sortas="b-seq">seq</primary></indexterm> 602 <para>prints a sequence of numbers, within a given 603 range and with a given increment.</para> 604 </listitem> 605 </varlistentry> 606 607 <varlistentry id="sha1sum"> 608 <term><command>sha1sum</command></term> 609 <listitem> 610 <indexterm zone="ch-system-coreutils sha1sum"><primary sortas="b-sha1sum">sha1sum</primary></indexterm> 611 <para>prints or checks 160-bit SHA1 checksums.</para> 612 </listitem> 613 </varlistentry> 614 615 <varlistentry id="shred"> 616 <term><command>shred</command></term> 617 <listitem> 618 <indexterm zone="ch-system-coreutils shred"><primary sortas="b-shred">shred</primary></indexterm> 619 <para>overwrites the given files repeatedly with 620 strange patterns, to make it real hard to recover the data.</para> 621 </listitem> 622 </varlistentry> 623 624 <varlistentry id="sleep"> 625 <term><command>sleep</command></term> 626 <listitem> 627 <indexterm zone="ch-system-coreutils sleep"><primary sortas="b-sleep">sleep</primary></indexterm> 628 <para>pauses for the given amount of time.</para> 629 </listitem> 630 </varlistentry> 631 632 <varlistentry id="sort"> 633 <term><command>sort</command></term> 634 <listitem> 635 <indexterm zone="ch-system-coreutils sort"><primary sortas="b-sort">sort</primary></indexterm> 636 <para>sorts the lines from the given files.</para> 637 </listitem> 638 </varlistentry> 639 640 <varlistentry id="split"> 641 <term><command>split</command></term> 642 <listitem> 643 <indexterm zone="ch-system-coreutils split"><primary sortas="b-split">split</primary></indexterm> 644 <para>splits the given file into pieces, by size or by numbspliter of lines.</para> 645 </listitem> 646 </varlistentry> 647 648 <varlistentry id="stty"> 649 <term><command>stty</command></term> 650 <listitem> 651 <indexterm zone="ch-system-coreutils stty"><primary sortas="b-stty">stty</primary></indexterm> 652 <para>sets or reports terminal line settings.</para> 653 </listitem> 654 </varlistentry> 655 656 <varlistentry id="sum"> 657 <term><command>sum</command></term> 658 <listitem> 659 <indexterm zone="ch-system-coreutils sum"><primary sortas="b-sum">sum</primary></indexterm> 660 <para>prints checksum and block counts for each given file.</para> 661 </listitem> 662 </varlistentry> 663 664 <varlistentry id="sync"> 665 <term><command>sync</command></term> 666 <listitem> 667 <indexterm zone="ch-system-coreutils sync"><primary sortas="b-sync">sync</primary></indexterm> 668 <para>flushes file system buffers. It forces 669 changed blocks to disk and updates the super block.</para> 670 </listitem> 671 </varlistentry> 672 673 <varlistentry id="tac"> 674 <term><command>tac</command></term> 675 <listitem> 676 <indexterm zone="ch-system-coreutils tac"><primary sortas="b-tac">tac</primary></indexterm> 677 <para>concatenates the given files in reverse.</para> 678 </listitem> 679 </varlistentry> 680 681 <varlistentry id="tail"> 682 <term><command>tail</command></term> 683 <listitem> 684 <indexterm zone="ch-system-coreutils tail"><primary sortas="b-tail">tail</primary></indexterm> 685 <para>prints the last ten lines (or the given number of lines) of each given file.</para> 686 </listitem> 687 </varlistentry> 688 689 <varlistentry id="tee"> 690 <term><command>tee</command></term> 691 <listitem> 692 <indexterm zone="ch-system-coreutils tee"><primary sortas="b-tee">tee</primary></indexterm> 693 <para>reads from standard input while writing both 694 to standard output and to the given files.</para> 695 </listitem> 696 </varlistentry> 697 698 <varlistentry id="test"> 699 <term><command>test</command></term> 700 <listitem> 701 <indexterm zone="ch-system-coreutils test"><primary sortas="b-test">test</primary></indexterm> 702 <para>compares values and checks file types.</para> 703 </listitem> 704 </varlistentry> 705 706 <varlistentry id="touch"> 707 <term><command>touch</command></term> 708 <listitem> 709 <indexterm zone="ch-system-coreutils touch"><primary sortas="b-touch">touch</primary></indexterm> 710 <para>changes file timestamps, setting the access 711 and modification times of the given files to the current time. Files that do 712 not exist are created with zero length.</para> 713 </listitem> 714 </varlistentry> 715 716 <varlistentry id="tr"> 717 <term><command>tr</command></term> 718 <listitem> 719 <indexterm zone="ch-system-coreutils tr"><primary sortas="b-tr">tr</primary></indexterm> 720 <para>translates, squeezes, and deletes the given 721 characters from standard input.</para> 722 </listitem> 723 </varlistentry> 724 725 <varlistentry id="true"> 726 <term><command>true</command></term> 727 <listitem> 728 <indexterm zone="ch-system-coreutils true"><primary sortas="b-true">true</primary></indexterm> 729 <para>does nothing, successfully. It always exits 730 with a status code indicating success.</para> 731 </listitem> 732 </varlistentry> 733 734 <varlistentry id="tsort"> 735 <term><command>tsort</command></term> 736 <listitem> 737 <indexterm zone="ch-system-coreutils tsort"><primary sortas="b-tsort">tsort</primary></indexterm> 738 <para>performs a topological sort. It writes a 739 totally ordered list according to the partial ordering in a given file.</para> 740 </listitem> 741 </varlistentry> 742 743 <varlistentry id="tty"> 744 <term><command>tty</command></term> 745 <listitem> 746 <indexterm zone="ch-system-coreutils tty"><primary sortas="b-tty">tty</primary></indexterm> 747 <para>reports the file name of the terminal connected to standard input.</para> 748 </listitem> 749 </varlistentry> 750 751 <varlistentry id="uname"> 752 <term><command>uname</command></term> 753 <listitem> 754 <indexterm zone="ch-system-coreutils uname"><primary sortas="b-uname">uname</primary></indexterm> 755 <para>reports system information.</para> 756 </listitem> 757 </varlistentry> 758 759 <varlistentry id="unexpand"> 760 <term><command>unexpand</command></term> 761 <listitem> 762 <indexterm zone="ch-system-coreutils unexpand"><primary sortas="b-unexpand">unexpand</primary></indexterm> 763 <para>converts spaces to tabs.</para> 764 </listitem> 765 </varlistentry> 766 767 <varlistentry id="uniq"> 768 <term><command>uniq</command></term> 769 <listitem> 770 <indexterm zone="ch-system-coreutils uniq"><primary sortas="b-uniq">uniq</primary></indexterm> 771 <para>discards all but one of successive identical lines.</para> 772 </listitem> 773 </varlistentry> 774 775 <varlistentry id="unlink"> 776 <term><command>unlink</command></term> 777 <listitem> 778 <indexterm zone="ch-system-coreutils unlink"><primary sortas="b-unlink">unlink</primary></indexterm> 779 <para>removes the given file.</para> 780 </listitem> 781 </varlistentry> 782 783 <varlistentry id="uptime-coreutils"> 784 <term><command>uptime</command></term> 785 <listitem> 786 <indexterm zone="ch-system-coreutils uptime-coreutils"><primary sortas="b-uptime-coreutils">uptime</primary></indexterm> 787 <para>reports how long the system has been 788 running, how many users are logged on, and the system load averages.</para> 789 </listitem> 790 </varlistentry> 791 792 <varlistentry id="users"> 793 <term><command>users</command></term> 794 <listitem> 795 <indexterm zone="ch-system-coreutils users"><primary sortas="b-users">users</primary></indexterm> 796 <para>reports the names of the users currently logged on.</para> 797 </listitem> 798 </varlistentry> 799 800 <varlistentry id="vdir"> 801 <term><command>vdir</command></term> 802 <listitem> 803 <indexterm zone="ch-system-coreutils vdir"><primary sortas="b-vdir">vdir</primary></indexterm> 804 <para>is the same as <command>ls -l</command>.</para> 805 </listitem> 806 </varlistentry> 807 808 <varlistentry id="wc"> 809 <term><command>wc</command></term> 810 <listitem> 811 <indexterm zone="ch-system-coreutils wc"><primary sortas="b-wc">wc</primary></indexterm> 812 <para>reports the number of lines, words, and bytes 813 for each given file, and a total line when more than one file is given.</para> 814 </listitem> 815 </varlistentry> 816 817 <varlistentry id="who"> 818 <term><command>who</command></term> 819 <listitem> 820 <indexterm zone="ch-system-coreutils who"><primary sortas="b-who">who</primary></indexterm> 821 <para>reports who is logged on.</para> 822 </listitem> 823 </varlistentry> 824 825 <varlistentry id="whoami"> 826 <term><command>whoami</command></term> 827 <listitem> 828 <indexterm zone="ch-system-coreutils whoami"><primary sortas="b-whoami">whoami</primary></indexterm> 829 <para>reports the user name associated with the current effective user ID.</para> 830 </listitem> 831 </varlistentry> 832 833 <varlistentry id="yes"> 834 <term><command>yes</command></term> 835 <listitem> 836 <indexterm zone="ch-system-coreutils yes"><primary sortas="b-yes">yes</primary></indexterm> 837 <para>outputs <quote>y</quote> or a given string repeatedly, until killed.</para> 838 </listitem> 839 </varlistentry> 840 </variablelist> 81 <para>See testing</para> 841 82 842 83 </sect2> -
chapter06/createfiles.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="createfiles.html"?> 9 9 10 <para>Some programs hard-wire paths to programs which don't exist yet. In 11 order to satisfy these programs, we create a number of symbolic links which 12 will be replaced by real files throughout the course of this chapter when 13 we're installing all the software.</para> 10 <para>Create some needed links.</para> 14 11 15 12 <screen><userinput>ln -s /tools/bin/{bash,cat,pwd,stty} /bin -
chapter06/creatingdirs.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="creatingdirs.html"?> 9 9 10 <para>Let's now create some structure in our LFS file system. Let's create 11 a directory tree. Issuing the following commands will create a more or less 12 standard tree:</para> 10 <para>Create a dirs tree:</para> 13 11 14 12 <screen><userinput>install -d /{bin,boot,dev,etc/opt,home,lib,mnt} … … 32 30 install -d /opt/{lib,man/man{1,2,3,4,5,6,7,8}}</userinput></screen> 33 31 34 <para>Directories are, by default, created with permission mode 755, but this35 isn't desirable for all directories. In the commands above, we make two changes:36 one to the home directory of <emphasis>root</emphasis>, and another to the37 directories for temporary files.</para>38 39 <para>The first mode change ensures that not just anybody can enter the40 <filename class="directory">/root</filename> directory -- the same41 as a normal user would do with his or her home directory.42 The second mode change makes sure that any user can write to the43 <filename class="directory">/tmp</filename> and44 <filename class="directory">/var/tmp</filename> directories, but45 cannot remove other users' files from them. The latter is prohibited46 by the so-called <quote>sticky bit</quote> -- the highest bit in the 1777 bit47 mask.</para>48 49 <sect2>50 <title>FHS compliance note</title>51 52 <para>We have based our directory tree on the FHS standard (available at53 <ulink url="http://www.pathname.com/fhs/"/>). Besides the above created54 tree this standard stipulates the existence of55 <filename class="directory">/usr/local/games</filename> and56 <filename class="directory">/usr/share/games</filename>, but we don't57 much like these for a base system. However, feel free to make your system58 FHS-compliant. As to the structure of the59 <filename class="directory">/usr/local/share</filename> subdirectory, the FHS60 isn't precise, so we created here the directories that we think are needed.</para>61 62 </sect2>63 64 32 </sect1> -
chapter06/devices.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="devices.html"?> 9 9 10 <indexterm zone="ch-system-devices"><primary sortas="e-Devices">Devices</primary></indexterm> 11 12 <sect2> 13 <title>Creating initial device nodes</title> 14 15 <para>When the kernel boots the system, it requires the presence of a few device 16 nodes, in particular the <filename class="devicefile">console</filename> and 17 <filename class="devicefile">null</filename> devices:</para> 10 <para>Create the initial device nodes</para> 18 11 19 12 <screen><userinput>mknod -m 600 /dev/console c 5 1 20 13 mknod -m 666 /dev/null c 1 3</userinput></screen> 21 </sect2>22 14 23 <sect2> 24 <title>Mounting ramfs and populating /dev</title> 25 26 <para>The ideal way to populate <filename class="directory">/dev</filename> is 27 to mount a <systemitem class="filesystem">ramfs</systemitem> onto <filename class="directory">/dev </filename> 28 like <systemitem class="filesystem">tmpfs</systemitem>, but it 29 cannot be swapped) and create the devices on there during each bootup. Since we haven't 30 booted the system, we have to do what the bootscripts would otherwise do for us, and 31 populate <filename class="directory">/dev</filename> ourselves. Begin by mounting <filename class="directory">/dev</filename>:</para> 15 <para>Mount a ramfs in /dev</para> 32 16 33 17 <screen><userinput>mount -n -t ramfs none /dev</userinput></screen> 34 18 35 <para>Since we do not have the Udev package installed yet, we'll create a 36 minimal set of device nodes to use for building:</para> 19 <para>Create a minimal set of device nodes:</para> 37 20 38 21 <screen><userinput>mknod -m 622 /dev/console c 5 1 … … 45 28 chown root:tty /dev/{console,ptmx,tty}</userinput></screen> 46 29 47 <para>There are some symlinks and directories required by LFS that are not created by 48 Udev, so we create those ourselves here:</para> 30 <para>Create some symlinks and directories:</para> 49 31 50 32 <screen><userinput>ln -s /proc/self/fd /dev/fd … … 56 38 mkdir /dev/shm</userinput></screen> 57 39 58 <para>Finally, mount the proper virtual (kernel) file systems on the directories we just 59 created:</para> 40 <para>Mount the virtual file systems:</para> 60 41 61 42 <screen><userinput>mount -t devpts -o gid=4,mode=620 none /dev/pts 62 43 mount -t tmpfs none /dev/shm</userinput></screen> 63 44 64 <para>The <command>mount</command> commands executed above may result in the65 following warning message:</para>66 67 <screen><computeroutput>can't open /etc/fstab: No such file or directory.</computeroutput></screen>68 69 <para>This file—<filename>/etc/fstab</filename>—has not70 been created yet but is also not required for the file systems to be71 properly mounted. As such, the warning can be safely ignored.</para>72 </sect2>73 74 45 75 46 </sect1> -
chapter06/diffutils.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Diffutils package contains programs that show the differences14 between files or directories.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Diffutils installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, GCC,25 Gettext, Glibc, Grep, Make, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 47 40 <sect2 id="contents-diffutils" role="content"><title>Contents of Diffutils</title> 48 41 49 <segmentedlist> 50 <segtitle>Installed programs</segtitle> 51 <seglistitem><seg>cmp, diff, diff3 and sdiff</seg></seglistitem> 52 </segmentedlist> 53 54 <variablelist><title>Short descriptions</title> 55 56 <varlistentry id="cmp"> 57 <term><command>cmp</command></term> 58 <listitem> 59 <indexterm zone="ch-system-diffutils cmp"><primary sortas="b-cmp">cmp</primary></indexterm> 60 <para>compares two files and reports whether or in which bytes they differ.</para> 61 </listitem> 62 </varlistentry> 63 64 <varlistentry id="diff"> 65 <term><command>diff</command></term> 66 <listitem> 67 <indexterm zone="ch-system-diffutils diff"><primary sortas="b-diff">diff</primary></indexterm> 68 <para>compares two files or directories and reports which lines in the files differ.</para> 69 </listitem> 70 </varlistentry> 71 72 <varlistentry id="diff3"> 73 <term><command>diff3</command></term> 74 <listitem> 75 <indexterm zone="ch-system-diffutils diff3"><primary sortas="b-diff3">diff3</primary></indexterm> 76 <para>compares three files line by line.</para> 77 </listitem> 78 </varlistentry> 79 80 <varlistentry id="sdiff"> 81 <term><command>sdiff</command></term> 82 <listitem> 83 <indexterm zone="ch-system-diffutils sdiff"><primary sortas="b-sdiff">sdiff</primary></indexterm> 84 <para>merges two files and interactively outputs the results.</para> 85 </listitem> 86 </varlistentry> 87 </variablelist> 42 <para>See testing</para> 88 43 89 44 </sect2> -
chapter06/e2fsprogs.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The E2fsprogs package contains the utilities for handling the ext214 file system. It also supports the ext3 journaling file system.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>E2fsprogs installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils,25 Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed, Texinfo</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 30 23 <title>Installation of E2fsprogs</title> 31 24 32 <para>It is recommended to build E2fsprogs in a subdirectory of the source tree: 33 </para> 25 <para>Create a build directory:</para> 34 26 35 27 <screen><userinput>mkdir build … … 40 32 <screen><userinput>../configure --prefix=/usr --with-root-prefix="" \ 41 33 --enable-elf-shlibs --disable-evms</userinput></screen> 42 43 <para>The meaning of the configure options:</para>44 45 <variablelist>46 <varlistentry>47 <term><parameter>--with-root-prefix=""</parameter></term>48 <listitem><para>Certain programs (such as the <command>e2fsck</command>49 program) are considered essential programs.50 When, for example, <filename class="directory">/usr</filename> isn't51 mounted, these essential programs have to be available. They belong in52 directories like <filename class="directory">/lib</filename> and53 <filename class="directory">/sbin</filename>. If this option isn't passed54 to E2fsprogs's configure, the programs are placed in the55 <filename class="directory">/usr</filename> directory, which is not what we56 want.</para></listitem>57 </varlistentry>58 59 <varlistentry>60 <term><parameter>--enable-elf-shlibs</parameter></term>61 <listitem><para>This creates62 the shared libraries which some programs in this package use.</para></listitem>63 </varlistentry>64 65 <varlistentry>66 <term><parameter>--disable-evms</parameter></term>67 <listitem><para>This disables the building of the Enterprise Volume Management68 System (EVMS) plugin. This plugin is not up-to-date with the latest EVMS69 internal interfaces and EVMS is not installed as part of a base LFS system, so70 the plugin is not required. See the71 <ulink url="http://evms.sourceforge.net/">EVMS homepage</ulink> for more72 information regarding EVMS itself.</para></listitem>73 </varlistentry>74 </variablelist>75 34 76 35 <para>Compile the package:</para> … … 91 50 </sect2> 92 51 93 94 95 52 <sect2 id="contents-e2fsprogs" role="content"><title>Contents of E2fsprogs</title> 96 53 97 <segmentedlist> 98 <segtitle>Installed programs</segtitle> 99 <segtitle>Installed libraries</segtitle> 100 <seglistitem><seg>badblocks, blkid, chattr, 101 compile_et, debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck, 102 fsck.ext2, fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3, 103 mklost+found, resize2fs, tune2fs and uuidgen.</seg> 104 <seg>libblkid.[a,so], libcom_err.[a,so], libe2p.[a,so], libext2fs.[a,so], libss.[a,so] and 105 libuuid.[a,so]</seg></seglistitem> 106 </segmentedlist> 107 108 <variablelist><title>Short descriptions</title> 109 110 <varlistentry id="badblocks"> 111 <term><command>badblocks</command></term> 112 <listitem> 113 <indexterm zone="ch-system-e2fsprogs badblocks"><primary sortas="b-badblocks">badblocks</primary></indexterm> 114 <para>searches a device (usually a disk partition) for bad blocks.</para> 115 </listitem> 116 </varlistentry> 117 118 <varlistentry id="blkid"> 119 <term><command>blkid</command></term> 120 <listitem> 121 <indexterm zone="ch-system-e2fsprogs blkid"><primary sortas="b-blkid">blkid</primary></indexterm> 122 <para>is a command line utility to locate and print block device attributes.</para> 123 </listitem> 124 </varlistentry> 125 126 <varlistentry id="chattr"> 127 <term><command>chattr</command></term> 128 <listitem> 129 <indexterm zone="ch-system-e2fsprogs chattr"><primary sortas="b-chattr">chattr</primary></indexterm> 130 <para>changes the attributes of files on a second extended (ext2) file system, and 131 also ext3 file systems, the journaling version of ext2 file systems.</para> 132 </listitem> 133 </varlistentry> 134 135 <varlistentry id="compile_et"> 136 <term><command>compile_et</command></term> 137 <listitem> 138 <indexterm zone="ch-system-e2fsprogs compile_et"><primary sortas="b-compile_et">compile_et</primary></indexterm> 139 <para>is an error table compiler. It 140 converts a table of error-code names and messages into a C source file 141 suitable for use with the <filename class="libraryfile">com_err</filename> library.</para> 142 </listitem> 143 </varlistentry> 144 145 <varlistentry id="debugfs"> 146 <term><command>debugfs</command></term> 147 <listitem> 148 <indexterm zone="ch-system-e2fsprogs debugfs"><primary sortas="b-debugfs">debugfs</primary></indexterm> 149 <para>is a file system debugger. It can be 150 used to examine and change the state of an ext2 file system.</para> 151 </listitem> 152 </varlistentry> 153 154 <varlistentry id="dumpe2fs"> 155 <term><command>dumpe2fs</command></term> 156 <listitem> 157 <indexterm zone="ch-system-e2fsprogs dumpe2fs"><primary sortas="b-dumpe2fs">dumpe2fs</primary></indexterm> 158 <para>prints the super block and blocks group 159 information for the file system present on a given device.</para> 160 </listitem> 161 </varlistentry> 162 163 <varlistentry id="e2fsck"> 164 <term><command>e2fsck</command></term> 165 <listitem> 166 <indexterm zone="ch-system-e2fsprogs e2fsck"><primary sortas="b-e2fsck">e2fsck</primary></indexterm> 167 <para>is used to check, and optionally repair, 168 second extended (ext2) file systems, and also ext3 file systems.</para> 169 </listitem> 170 </varlistentry> 171 172 <varlistentry id="e2image"> 173 <term><command>e2image</command></term> 174 <listitem> 175 <indexterm zone="ch-system-e2fsprogs e2image"><primary sortas="b-e2image">e2image</primary></indexterm> 176 <para>is used to save critical ext2 file system data to a file.</para> 177 </listitem> 178 </varlistentry> 179 180 <varlistentry id="e2label"> 181 <term><command>e2label</command></term> 182 <listitem> 183 <indexterm zone="ch-system-e2fsprogs e2label"><primary sortas="b-e2label">e2label</primary></indexterm> 184 <para>will display or change the file system 185 label on the ext2 file system present on a given device.</para> 186 </listitem> 187 </varlistentry> 188 189 <varlistentry id="findfs"> 190 <term><command>findfs</command></term> 191 <listitem> 192 <indexterm zone="ch-system-e2fsprogs findfs"><primary sortas="b-findfs">findfs</primary></indexterm> 193 <para>finds a file system by label or UUID (Universally Unique Identifier).</para> 194 </listitem> 195 </varlistentry> 196 197 <varlistentry id="fsck"> 198 <term><command>fsck</command></term> 199 <listitem> 200 <indexterm zone="ch-system-e2fsprogs fsck"><primary sortas="b-fsck">fsck</primary></indexterm> 201 <para>is used to check, and optionally repair, file systems. By default it checks the 202 file systems listed in <filename>/etc/fstab</filename></para> 203 </listitem> 204 </varlistentry> 205 206 <varlistentry id="logsave"> 207 <term><command>logsave</command></term> 208 <listitem> 209 <indexterm zone="ch-system-e2fsprogs logsave"><primary sortas="b-logsave">logsave</primary></indexterm> 210 <para>saves the output of a command in a log file.</para> 211 </listitem> 212 </varlistentry> 213 214 <varlistentry id="lsattr"> 215 <term><command>lsattr</command></term> 216 <listitem> 217 <indexterm zone="ch-system-e2fsprogs lsattr"><primary sortas="b-lsattr">lsattr</primary></indexterm> 218 <para>lists the attributes of files on a second extended file system.</para> 219 </listitem> 220 </varlistentry> 221 222 <varlistentry id="mk_cmds"> 223 <term><command>mk_cmds</command></term> 224 <listitem> 225 <indexterm zone="ch-system-e2fsprogs mk_cmds"><primary sortas="b-mk_cmds">mk_cmds</primary></indexterm> 226 <para>converts a table of command names 227 and help messages into a C source file suitable for use with the 228 <filename class="libraryfile">libss</filename> subsystem library.</para> 229 </listitem> 230 </varlistentry> 231 232 <varlistentry id="mke2fs"> 233 <term><command>mke2fs</command></term> 234 <listitem> 235 <indexterm zone="ch-system-e2fsprogs mke2fs"><primary sortas="b-mke2fs">mke2fs</primary></indexterm> 236 <para>is used to create a second extended file system on the given device.</para> 237 </listitem> 238 </varlistentry> 239 240 <varlistentry id="mklost-found"> 241 <term><command>mklost+found</command></term> 242 <listitem> 243 <indexterm zone="ch-system-e2fsprogs mklost-found"><primary sortas="b-mklost+found">mklost+found</primary></indexterm> 244 <para>is used to create a 245 <filename class="directory">lost+found</filename> directory on a second extended file system. 246 It pre-allocates disk blocks to this directory to lighten the task of e2fsck.</para> 247 </listitem> 248 </varlistentry> 249 250 <varlistentry id="resize2fs"> 251 <term><command>resize2fs</command></term> 252 <listitem> 253 <indexterm zone="ch-system-e2fsprogs resize2fs"><primary sortas="b-resize2fs">resize2fs</primary></indexterm> 254 <para>can be used to enlarge or shrink an ext2 file system.</para> 255 </listitem> 256 </varlistentry> 257 258 <varlistentry id="tune2fs"> 259 <term><command>tune2fs</command></term> 260 <listitem> 261 <indexterm zone="ch-system-e2fsprogs tune2fs"><primary sortas="b-tune2fs">tune2fs</primary></indexterm> 262 <para>is used adjust tunable file system 263 parameters on a second extended file system.</para> 264 </listitem> 265 </varlistentry> 266 267 <varlistentry id="uuidgen"> 268 <term><command>uuidgen</command></term> 269 <listitem> 270 <indexterm zone="ch-system-e2fsprogs uuidgen"><primary sortas="b-uuidgen">uuidgen</primary></indexterm> 271 <para>creates new UUID. Each new UUID can reasonably be considered unique 272 among all UUIDs created, on the local system and on other systems, in the 273 past and in the future.</para> 274 </listitem> 275 </varlistentry> 276 277 <varlistentry id="libblkid"> 278 <term><filename class="libraryfile">libblkid</filename></term> 279 <listitem> 280 <indexterm zone="ch-system-e2fsprogs libblkid"><primary sortas="c-libblkid">libblkid</primary></indexterm> 281 <para>contains routines for device identification and token extraction.</para> 282 </listitem> 283 </varlistentry> 284 285 <varlistentry id="libcom_err"> 286 <term><filename class="libraryfile">libcom_err</filename></term> 287 <listitem> 288 <indexterm zone="ch-system-e2fsprogs libcom_err"><primary sortas="c-libcom_err">libcom_err</primary></indexterm> 289 <para>is the common error display routine.</para> 290 </listitem> 291 </varlistentry> 292 293 <varlistentry id="libe2p"> 294 <term><filename class="libraryfile">libe2p</filename></term> 295 <listitem> 296 <indexterm zone="ch-system-e2fsprogs libe2p"><primary sortas="c-libe2p">libe2p</primary></indexterm> 297 <para>is used by dumpe2fs, chattr, and lsattr.</para> 298 </listitem> 299 </varlistentry> 300 301 <varlistentry id="libext2fs"> 302 <term><filename class="libraryfile">libext2fs</filename></term> 303 <listitem> 304 <indexterm zone="ch-system-e2fsprogs libext2fs"><primary sortas="c-libext2fs">libext2fs</primary></indexterm> 305 <para>contains routines to enable user-level 306 programs to manipulate an ext2 file system.</para> 307 </listitem> 308 </varlistentry> 309 310 <varlistentry id="libss"> 311 <term><filename class="libraryfile">libss</filename></term> 312 <listitem> 313 <indexterm zone="ch-system-e2fsprogs libss"><primary sortas="c-libss">libss</primary></indexterm> 314 <para>is used by <command>debugfs</command>.</para> 315 </listitem> 316 </varlistentry> 317 318 <varlistentry id="libuuid"> 319 <term><filename class="libraryfile">libuuid</filename></term> 320 <listitem> 321 <indexterm zone="ch-system-e2fsprogs libuuid"><primary sortas="c-libuuid">libuuid</primary></indexterm> 322 <para>contains routines for generating unique 323 identifiers for objects that may be accessible beyond the local system.</para> 324 </listitem> 325 </varlistentry> 326 </variablelist> 54 <para>See testing</para> 327 55 328 56 </sect2> -
chapter06/file.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The File package contains a utility for determining the type of files.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>File installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Glibc, Grep, Make, Sed, Zlib</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 46 40 <sect2 id="contents-file" role="content"><title>Contents of File</title> 47 41 48 <segmentedlist> 49 <segtitle>Installed programs</segtitle> 50 <segtitle>Installed library</segtitle> 51 <seglistitem><seg>file</seg><seg>libmagic.[a,so]</seg></seglistitem> 52 </segmentedlist> 53 54 <variablelist><title>Short descriptions</title> 55 56 <varlistentry id="file"> 57 <term><command>file</command></term> 58 <listitem> 59 <indexterm zone="ch-system-file file"><primary sortas="b-file">file</primary></indexterm> 60 <para>tries to classify each given file. It does 61 this by performing several tests: file system tests, magic number tests, and 62 language tests. The first test that succeeds determines the result.</para> 63 </listitem> 64 </varlistentry> 65 66 <varlistentry id="libmagic"> 67 <term><filename class="libraryfile">libmagic</filename></term> 68 <listitem> 69 <indexterm zone="ch-system-file libmagic"><primary sortas="c-libmagic">libmagic</primary></indexterm> 70 <para>contains routines for magic number recognition, used by the <command>file</command> program.</para> 71 </listitem> 72 </varlistentry> 73 </variablelist> 42 <para>See testing</para> 74 43 75 44 </sect2> -
chapter06/findutils.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Findutils package contains programs to find files. Processes14 are provided to recursively search through a directory tree and to15 create, maintain and search a database (often faster than the recursive16 find, but unreliable if the database has not been recently updated).</para>17 13 18 14 <segmentedlist> … … 22 18 </segmentedlist> 23 19 24 <segmentedlist>25 <segtitle>Findutils installation depends on</segtitle>26 <seglistitem><seg>Bash, Binutils, Coreutils,27 Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed</seg></seglistitem>28 </segmentedlist>29 20 </sect2> 30 21 … … 36 27 <screen><userinput>./configure --prefix=/usr --libexecdir=/usr/lib/locate \ 37 28 --localstatedir=/var/lib/locate</userinput></screen> 38 39 <para>The localstatedir directive above changes the location of the locate40 database to be in <filename class="directory">/var/lib/locate</filename>,41 which is FHS-compliant.</para>42 29 43 30 <para>Compile the package:</para> … … 57 44 <sect2 id="contents-findutils" role="content"><title>Contents of Findutils</title> 58 45 59 <segmentedlist> 60 <segtitle>Installed programs</segtitle> 61 <seglistitem><seg>bigram, code, find, frcode, locate, updatedb and xargs</seg></seglistitem> 62 </segmentedlist> 63 64 <variablelist><title>Short descriptions</title> 65 66 <varlistentry id="bigram"> 67 <term><command>bigram</command></term> 68 <listitem> 69 <indexterm zone="ch-system-findutils bigram"><primary sortas="b-bigram">bigram</primary></indexterm> 70 <para>was formerly used to produce <command>locate</command> databases.</para> 71 </listitem> 72 </varlistentry> 73 74 <varlistentry id="code"> 75 <term><command>code</command></term> 76 <listitem> 77 <indexterm zone="ch-system-findutils code"><primary sortas="b-code">code</primary></indexterm> 78 <para>was formerly used to produce <command>locate</command> 79 databases. It is the ancestor of <command>frcode</command>.</para> 80 </listitem> 81 </varlistentry> 82 83 <varlistentry id="find"> 84 <term><command>find</command></term> 85 <listitem> 86 <indexterm zone="ch-system-findutils find"><primary sortas="b-find">find</primary></indexterm> 87 <para>searches given directory trees for files matching the specified criteria.</para> 88 </listitem> 89 </varlistentry> 90 91 <varlistentry id="frcode"> 92 <term><command>frcode</command></term> 93 <listitem> 94 <indexterm zone="ch-system-findutils frcode"><primary sortas="b-frcode">frcode</primary></indexterm> 95 <para>is called by <command>updatedb</command> to compress the list of file names. It uses 96 front-compression, reducing the database size by a factor of 4 to 5.</para> 97 </listitem> 98 </varlistentry> 99 100 <varlistentry id="locate"> 101 <term><command>locate</command></term> 102 <listitem> 103 <indexterm zone="ch-system-findutils locate"><primary sortas="b-locate">locate</primary></indexterm> 104 <para>searches through a database of file names, 105 and reports the names that contain a given string or match a given pattern.</para> 106 </listitem> 107 </varlistentry> 108 109 <varlistentry id="updatedb"> 110 <term><command>updatedb</command></term> 111 <listitem> 112 <indexterm zone="ch-system-findutils updatedb"><primary sortas="b-updatedb">updatedb</primary></indexterm> 113 <para>updates the <command>locate</command> database. It scans 114 the entire file system (including other file systems that are currently mounted, 115 unless told not to) and puts every file name it finds in the database.</para> 116 </listitem> 117 </varlistentry> 118 119 <varlistentry id="xargs"> 120 <term><command>xargs</command></term> 121 <listitem> 122 <indexterm zone="ch-system-findutils xargs"><primary sortas="b-xargs">xargs</primary></indexterm> 123 <para>can be used to apply a given command to a list of files.</para> 124 </listitem> 125 </varlistentry> 126 </variablelist> 46 <para>See testing</para> 127 47 128 48 </sect2> -
chapter06/flex.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Flex package contains a utility for generating programs that14 recognize patterns in text.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Flex installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Bison, Coreutils, Diffutils,25 GCC, Gettext, Glibc, Grep, M4, Make, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 30 23 <title>Installation of Flex</title> 31 24 32 <para> Flex contains several known bugs. Fix these with the followingpatch:</para>25 <para>Apply a patch:</para> 33 26 34 27 <screen><userinput>patch -Np1 -i ../flex-&flex-version;-debian_fixes-2.patch</userinput></screen> 35 28 36 <para>The GNU autotools detects that the Flex source code has been modified by 37 the previous patch, and tries to update the manual page accordingly, but this 38 breaks on many systems, and the default page is fine, so make sure it doesn't 39 get regenerated:</para> 29 <para>Touch the man-page:</para> 40 30 41 31 <screen><userinput>touch doc/flex.1</userinput></screen> … … 56 46 <screen><userinput>make install</userinput></screen> 57 47 58 <para>There are some packages that expect to find the <emphasis>lex</emphasis> 59 library in <filename>/usr/lib</filename>. Create a symlink to account for 60 this:</para> 48 <para>Create a symlink:</para> 61 49 62 50 <screen><userinput>ln -s libfl.a /usr/lib/libl.a</userinput></screen> 63 51 64 <para>A few programs don't know about <command>flex</command> yet and try 65 to run its predecessor <command>lex</command>. To support those programs, 66 create a wrapper script named <filename>lex</filename> that calls 67 <command>flex</command> in <emphasis>lex</emphasis> emulation mode:</para> 52 <para>Create a lex script:</para> 68 53 69 54 <screen><userinput>cat > /usr/bin/lex << "EOF"</userinput> … … 82 67 <sect2 id="contents-flex" role="content"><title>Contents of Flex</title> 83 68 84 <segmentedlist> 85 <segtitle>Installed programs</segtitle> 86 <segtitle>Installed library</segtitle> 87 <seglistitem><seg>flex, flex++ (link to flex) and lex</seg> 88 <seg>libfl.a</seg></seglistitem> 89 </segmentedlist> 90 91 <variablelist><title>Short descriptions</title> 92 93 <varlistentry id="flex"> 94 <term><command>flex</command></term> 95 <listitem> 96 <indexterm zone="ch-system-flex flex"><primary sortas="b-flex">flex</primary></indexterm> 97 <para>is a tool for generating programs that 98 recognize patterns in text. Pattern recognition is useful in many applications. 99 From a set of rules on what to look for, <command>flex</command> makes a program that looks for 100 those patterns. The reason to use <command>flex</command> is that it is much easier to specify 101 the rules for a pattern-finding program than to write the program.</para> 102 </listitem> 103 </varlistentry> 104 105 <varlistentry id="flex-"> 106 <term><command>flex++</command></term> 107 <listitem> 108 <indexterm zone="ch-system-flex flex-"><primary sortas="b-flex++">flex++</primary></indexterm> 109 <para>invokes a version of <command>flex</command> that is used exclusively for C++ scanners.</para> 110 </listitem> 111 </varlistentry> 112 113 <varlistentry id="libfl.a"> 114 <term><filename class="libraryfile">libfl.a</filename></term> 115 <listitem> 116 <indexterm zone="ch-system-flex libfl.a"><primary sortas="c-libfl.a">libfl.a</primary></indexterm> 117 <para>is the flex library.</para> 118 </listitem> 119 </varlistentry> 120 </variablelist> 69 <para>See testing</para> 121 70 122 71 </sect2> -
chapter06/gawk.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Gawk package contains programs for manipulating text files.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Gawk installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils,24 Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-gawk" role="content"><title>Contents of Gawk</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed programs</segtitle> 53 <seglistitem><seg>awk (link to gawk), gawk, gawk-&gawk-version;, grcat, igawk, 54 pgawk, pgawk-&gawk-version; and pwcat</seg></seglistitem> 55 </segmentedlist> 56 57 <variablelist><title>Short descriptions</title> 58 59 <varlistentry id="gawk"> 60 <term><command>gawk</command></term> 61 <listitem> 62 <indexterm zone="ch-system-gawk gawk"><primary sortas="b-gawk">gawk</primary></indexterm> 63 <para>is a program for manipulating text files. 64 It is the GNU implementation of <command>awk</command>.</para> 65 </listitem> 66 </varlistentry> 67 68 <varlistentry id="grcat"> 69 <term><command>grcat</command></term> 70 <listitem> 71 <indexterm zone="ch-system-gawk grcat"><primary sortas="b-grcat">grcat</primary></indexterm> 72 <para>dumps the group database <filename>/etc/group</filename>.</para> 73 </listitem> 74 </varlistentry> 75 76 <varlistentry id="igawk"> 77 <term><command>igawk</command></term> 78 <listitem> 79 <indexterm zone="ch-system-gawk igawk"><primary sortas="b-igawk">igawk</primary></indexterm> 80 <para>gives <command>gawk</command> the ability to include files.</para> 81 </listitem> 82 </varlistentry> 83 84 <varlistentry id="pgawk"> 85 <term><command>pgawk</command></term> 86 <listitem> 87 <indexterm zone="ch-system-gawk pgawk"><primary sortas="b-pgawk">pgawk</primary></indexterm> 88 <para>is the profiling version of <command>gawk</command>.</para> 89 </listitem> 90 </varlistentry> 91 92 <varlistentry id="pwcat"> 93 <term><command>pwcat</command></term> 94 <listitem> 95 <indexterm zone="ch-system-gawk pwcat"><primary sortas="b-pwcat">pwcat</primary></indexterm> 96 <para>dumps the password database <filename>/etc/passwd</filename>.</para> 97 </listitem> 98 </varlistentry> 99 </variablelist> 45 <para>See testing</para> 100 46 101 47 </sect2> -
chapter06/gcc.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The GCC package contains the GNU compiler collection, which includes14 the C and C++ compilers.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>GCC installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, Findutils,25 Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 30 23 <title>Installation of GCC</title> 31 24 32 <para>This package is known to behave badly when you have changed its 33 default optimization flags (including the <parameter>-march</parameter> and <parameter>-mcpu</parameter> options). 34 Therefore, if you have defined any environment variables that override 35 default optimizations, such as CFLAGS and CXXFLAGS, we recommend un-setting 36 or modifying them when building GCC.</para> 37 38 <para>Unpack the GCC-core <emphasis>and</emphasis> the GCC-g++ tarball -- they 39 will unfold into the same directory. You should likewise extract the 40 GCC-testsuite package. The full GCC package contains even more 41 compilers. Instructions for building these can be found at 42 <ulink url="&blfs-root;view/stable/general/gcc.html"/>.</para> 43 44 <para>First apply only the No-Fixincludes patch (and <emphasis>not</emphasis> 45 the Specs patch) also used in the previous chapter:</para> 25 <para>Apply a patch:</para> 46 26 47 27 <screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-no_fixincludes-1.patch</userinput></screen> 48 28 49 <para>GCC fails to compile some packages outside of a base Linux From Scratch 50 install (e.g., Mozilla and kdegraphics) when used in conjunction with newer 51 versions of binutils. Apply the following patch to fix this issue:</para> 29 <para>Apply another patch:</para> 52 30 53 31 <screen><userinput>patch -Np1 -i ../gcc-&gcc-version;-linkonce-1.patch</userinput></screen> 54 32 55 <para>Now apply a sed substitution that will suppress the installation of 56 <filename class="libraryfile">libiberty.a</filename>. We want to use the version of 57 <filename class="libraryfile">libiberty.a</filename> provided by Binutils:</para> 33 <para>Apply a sed substitution:</para> 58 34 59 35 <screen><userinput>sed -i 's/install_to_$(INSTALL_DEST) //' libiberty/Makefile.in</userinput></screen> 60 36 61 <para>The GCC documentation recommends building GCC outside of the source 62 directory in a dedicated build directory:</para> 37 <para>Create a build directory:</para> 63 38 64 39 <screen><userinput>mkdir ../gcc-build … … 75 50 <screen><userinput>make</userinput></screen> 76 51 77 <important><para>The test suite for GCC in this section is considered 78 <emphasis>critical</emphasis>. Our advice is to not skip it under any 79 circumstance.</para></important> 80 81 <para>Test the results, but don't stop at errors (you'll remember the few 82 known ones):</para> 52 <para>Test the results):</para> 83 53 84 54 <screen><userinput>make -k check</userinput></screen> 85 55 86 56 <para>The test suite notes from <xref linkend="ch-tools-gcc-pass2"/> are still very 87 much appropriate here. Be sure to refer back there should you have any 88 doubts.</para> 57 much appropriate here.</para> 89 58 90 59 <para>Now install the package:</para> … … 92 61 <screen><userinput>make install</userinput></screen> 93 62 94 <para>Some packages expect the C PreProcessor to be installed in the 95 <filename class="directory">/lib</filename> directory. 96 To support those packages, create this symlink:</para> 63 <para>Create this symlink:</para> 97 64 98 65 <screen><userinput>ln -s ../usr/bin/cpp /lib</userinput></screen> 99 66 100 <para>Many packages use the name <command>cc</command> to call the C 101 compiler. To satisfy those packages, create a symlink:</para> 67 <para>Create another symlink:</para> 102 68 103 69 <screen><userinput>ln -s gcc /usr/bin/cc</userinput></screen> 104 70 105 <note><para>At this point it is strongly recommended to repeat the sanity check 106 we performed earlier in this chapter. Refer back to 107 <xref linkend="ch-system-readjusting"/> and repeat the check. If the results 108 are wrong, then most likely you erroneously applied the GCC Specs patch from 109 <xref linkend="chapter-temporary-tools"/>.</para></note> 71 <note><para>Refer back to <xref linkend="ch-system-readjusting"/> 72 and repeat the check.</para></note> 110 73 111 74 </sect2> … … 114 77 <sect2 id="contents-gcc" role="content"><title>Contents of GCC</title> 115 78 116 <segmentedlist> 117 <segtitle>Installed programs</segtitle> 118 <segtitle>Installed libraries</segtitle> 119 <seglistitem><seg>c++, cc (link to gcc), 120 cc1, cc1plus, collect2, cpp, g++, gcc, gccbug, and gcov</seg> 121 <seg>libgcc.a, libgcc_eh.a, libgcc_s.so, libstdc++.[a,so] and libsupc++.a</seg></seglistitem> 122 </segmentedlist> 123 124 <variablelist><title>Short descriptions</title> 125 126 <varlistentry id="cpp"> 127 <term><command>cpp</command></term> 128 <listitem> 129 <indexterm zone="ch-system-gcc cpp"><primary sortas="b-cpp">cpp</primary></indexterm> 130 <para>is the C preprocessor. It is used by the compiler to have the #include and 131 #define and such statements expanded in the source files.</para> 132 </listitem> 133 </varlistentry> 134 135 <varlistentry id="g"> 136 <term><command>g++</command></term> 137 <listitem> 138 <indexterm zone="ch-system-gcc g"><primary sortas="b-g++">g++</primary></indexterm> 139 <para>is the C++ compiler.</para> 140 </listitem> 141 </varlistentry> 142 143 <varlistentry id="gcc"> 144 <term><command>gcc</command></term> 145 <listitem> 146 <indexterm zone="ch-system-gcc gcc"><primary sortas="b-gcc">gcc</primary></indexterm> 147 <para>is the C compiler. It is used to translate 148 the source code of a program into assembly code.</para> 149 </listitem> 150 </varlistentry> 151 152 <varlistentry id="gccbug"> 153 <term><command>gccbug</command></term> 154 <listitem> 155 <indexterm zone="ch-system-gcc gccbug"><primary sortas="b-gccbug">gccbug</primary></indexterm> 156 <para>is a shell script used to help create good bug reports.</para> 157 </listitem> 158 </varlistentry> 159 160 <varlistentry id="gcov"> 161 <term><command>gcov</command></term> 162 <listitem> 163 <indexterm zone="ch-system-gcc gcov"><primary sortas="b-gcov">gcov</primary></indexterm> 164 <para>is a coverage testing tool. It is used to 165 analyze programs to find out where optimizations will have the most effect.</para> 166 </listitem> 167 </varlistentry> 168 169 <varlistentry id="libgcc"> 170 <term><filename class="libraryfile">libgcc*</filename></term> 171 <listitem> 172 <indexterm zone="ch-system-gcc libgcc"><primary sortas="c-libgcc*">libgcc*</primary></indexterm> 173 <para>contains run-time support for <command>gcc</command>.</para> 174 </listitem> 175 </varlistentry> 176 177 <varlistentry id="libstdc"> 178 <term><filename class="libraryfile">libstdc++</filename></term> 179 <listitem> 180 <indexterm zone="ch-system-gcc libstdc"><primary sortas="c-libstdc++">libstdc++</primary></indexterm> 181 <para>is the standard C++ library. It contains many frequently-used functions.</para> 182 </listitem> 183 </varlistentry> 184 185 <varlistentry id="libsupc"> 186 <term><filename class="libraryfile">libsupc++</filename></term> 187 <listitem> 188 <indexterm zone="ch-system-gcc libsupc"><primary sortas="c-libsupc++">libsupc++</primary></indexterm> 189 <para>provides supporting routines for the c++ programming language.</para> 190 </listitem> 191 </varlistentry> 192 </variablelist> 79 <para>See testing</para> 193 80 194 81 </sect2> -
chapter06/gettext.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Gettext package contains utilities for internationalization and14 localization. These allow programs to be compiled with Native Language Support15 (NLS), enabling them to output messages in the user's native language.</para>16 13 17 14 <segmentedlist> … … 21 18 </segmentedlist> 22 19 23 <segmentedlist>24 <segtitle>Gettext installation depends on</segtitle>25 <seglistitem><seg>Bash, Binutils, Bison, Coreutils,26 Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed</seg></seglistitem>27 </segmentedlist>28 20 </sect2> 29 21 … … 40 32 41 33 <para>To test the results, issue: 42 <userinput>make check</userinput>. This takes a very long time, around 43 7 SBUs.</para> 34 <userinput>make check</userinput>.</para> 44 35 45 36 <para>Now install the package:</para> … … 52 43 <sect2 id="contents-gettext" role="content"><title>Contents of Gettext</title> 53 44 54 <segmentedlist> 55 <segtitle>Installed programs</segtitle> 56 <segtitle>Installed libraries</segtitle> 57 <seglistitem><seg>autopoint, config.charset, config.rpath, envsubst, gettext, 58 gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm, msgconv, msgen, 59 msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge, msgunfmt, msguniq, 60 ngettext, project-id, team-address, trigger, urlget, user-email and xgettext</seg> 61 <seg>libasprintf[a,so], libgettextlib[a,so], libgettextpo[a,so] and libgettextsrc[a,so]</seg></seglistitem> 62 </segmentedlist> 63 64 <variablelist><title>Short descriptions</title> 65 66 <varlistentry id="autopoint"> 67 <term><command>autopoint</command></term> 68 <listitem> 69 <indexterm zone="ch-system-gettext autopoint"><primary sortas="b-autopoint">autopoint</primary></indexterm> 70 <para>copies standard Gettext infrastructure files into a source package.</para> 71 </listitem> 72 </varlistentry> 73 74 <varlistentry id="config.charset"> 75 <term><command>config.charset</command></term> 76 <listitem> 77 <indexterm zone="ch-system-gettext config.charset"><primary sortas="b-config.charset">config.charset</primary></indexterm> 78 <para>outputs a system-dependent table of character encoding aliases.</para> 79 </listitem> 80 </varlistentry> 81 82 <varlistentry id="config.rpath"> 83 <term><command>config.rpath</command></term> 84 <listitem> 85 <indexterm zone="ch-system-gettext config.rpath"><primary sortas="b-config.rpath">config.rpath</primary></indexterm> 86 <para>outputs a system-dependent set of variables, describing how to set the 87 runtime search path of shared libraries in an executable.</para> 88 </listitem> 89 </varlistentry> 90 91 <varlistentry id="envsubst"> 92 <term><command>envsubst</command></term> 93 <listitem> 94 <indexterm zone="ch-system-gettext envsubst"><primary sortas="b-envsubst">envsubst</primary></indexterm> 95 <para>substitutes environment variables in shell format strings.</para> 96 </listitem> 97 </varlistentry> 98 99 <varlistentry id="gettext"> 100 <term><command>gettext</command></term> 101 <listitem> 102 <indexterm zone="ch-system-gettext gettext"><primary sortas="b-gettext">gettext</primary></indexterm> 103 <para>translates a natural language message into 104 the user's language, by looking up the translation in a message catalog.</para> 105 </listitem> 106 </varlistentry> 107 108 <varlistentry id="gettextize"> 109 <term><command>gettextize</command></term> 110 <listitem> 111 <indexterm zone="ch-system-gettext gettextize"><primary sortas="b-gettextize">gettextize</primary></indexterm> 112 <para>copies all standard Gettext files into 113 the given top-level directory of a package, to begin inter-nationalizing it.</para> 114 </listitem> 115 </varlistentry> 116 117 <varlistentry id="hostname-gettext"> 118 <term><command>hostname</command></term> 119 <listitem> 120 <indexterm zone="ch-system-gettext hostname-gettext"><primary sortas="b-hostname-gettext">hostname</primary></indexterm> 121 <para>displays a network hostname in various forms.</para> 122 </listitem> 123 </varlistentry> 124 125 <varlistentry id="msgattrib"> 126 <term><command>msgattrib</command></term> 127 <listitem> 128 <indexterm zone="ch-system-gettext msgattrib"><primary sortas="b-msgattrib">msgattrib</primary></indexterm> 129 <para>filters the messages of a translation 130 catalog according to their attributes and manipulates the attributes.</para> 131 </listitem> 132 </varlistentry> 133 134 <varlistentry id="msgcat"> 135 <term><command>msgcat</command></term> 136 <listitem> 137 <indexterm zone="ch-system-gettext msgcat"><primary sortas="b-msgcat">msgcat</primary></indexterm> 138 <para>concatenates and merges the given <filename class="extension">.po</filename> files.</para> 139 </listitem> 140 </varlistentry> 141 142 <varlistentry id="msgcmp"> 143 <term><command>msgcmp</command></term> 144 <listitem> 145 <indexterm zone="ch-system-gettext msgcmp"><primary sortas="b-msgcmp">msgcmp</primary></indexterm> 146 <para>compares two <filename class="extension">.po</filename> 147 files to check that both contain the same set of msgid strings.</para> 148 </listitem> 149 </varlistentry> 150 151 <varlistentry id="msgcomm"> 152 <term><command>msgcomm</command></term> 153 <listitem> 154 <indexterm zone="ch-system-gettext msgcomm"><primary sortas="b-msgcomm">msgcomm</primary></indexterm> 155 <para>finds the messages that are common to 156 to the given <filename class="extension">.po</filename> files.</para> 157 </listitem> 158 </varlistentry> 159 160 <varlistentry id="msgconv"> 161 <term><command>msgconv</command></term> 162 <listitem> 163 <indexterm zone="ch-system-gettext msgconv"><primary sortas="b-msgconv">msgconv</primary></indexterm> 164 <para>converts a translation catalog to a different character encoding.</para> 165 </listitem> 166 </varlistentry> 167 168 <varlistentry id="msgen"> 169 <term><command>msgen</command></term> 170 <listitem> 171 <indexterm zone="ch-system-gettext msgen"><primary sortas="b-msgen">msgen</primary></indexterm> 172 <para>creates an English translation catalog.</para> 173 </listitem> 174 </varlistentry> 175 176 <varlistentry id="msgexec"> 177 <term><command>msgexec</command></term> 178 <listitem> 179 <indexterm zone="ch-system-gettext msgexec"><primary sortas="b-msgexec">msgexec</primary></indexterm> 180 <para>applies a command to all translations of a translation catalog.</para> 181 </listitem> 182 </varlistentry> 183 184 <varlistentry id="msgfilter"> 185 <term><command>msgfilter</command></term> 186 <listitem> 187 <indexterm zone="ch-system-gettext msgfilter"><primary sortas="b-msgfilter">msgfilter</primary></indexterm> 188 <para>applies a filter to all translations of a translation catalog.</para> 189 </listitem> 190 </varlistentry> 191 192 <varlistentry id="msgfmt"> 193 <term><command>msgfmt</command></term> 194 <listitem> 195 <indexterm zone="ch-system-gettext msgfmt"><primary sortas="b-msgfmt">msgfmt</primary></indexterm> 196 <para>generates a binary message catalog from from a translation catalog.</para> 197 </listitem> 198 </varlistentry> 199 200 <varlistentry id="msggrep"> 201 <term><command>msggrep</command></term> 202 <listitem> 203 <indexterm zone="ch-system-gettext msggrep"><primary sortas="b-msggrep">msggrep</primary></indexterm> 204 <para>extracts all messages of a translation 205 catalog that match a given pattern or belong to some given source files.</para> 206 </listitem> 207 </varlistentry> 208 209 <varlistentry id="msginit"> 210 <term><command>msginit</command></term> 211 <listitem> 212 <indexterm zone="ch-system-gettext msginit"><primary sortas="b-msginit">msginit</primary></indexterm> 213 <para>creates a new <filename class="extension">.po</filename> file, initializing the meta 214 information with values from the user's environment.</para> 215 </listitem> 216 </varlistentry> 217 218 <varlistentry id="msgmerge"> 219 <term><command>msgmerge</command></term> 220 <listitem> 221 <indexterm zone="ch-system-gettext msgmerge"><primary sortas="b-msgmerge">msgmerge</primary></indexterm> 222 <para>combines two raw translations into a single file.</para> 223 </listitem> 224 </varlistentry> 225 226 <varlistentry id="msgunfmt"> 227 <term><command>msgunfmt</command></term> 228 <listitem> 229 <indexterm zone="ch-system-gettext msgunfmt"><primary sortas="b-msgunfmt">msgunfmt</primary></indexterm> 230 <para>decompiles a binary message catalog into raw translation text.</para> 231 </listitem> 232 </varlistentry> 233 234 <varlistentry id="msguniq"> 235 <term><command>msguniq</command></term> 236 <listitem> 237 <indexterm zone="ch-system-gettext msguniq"><primary sortas="b-msguniq">msguniq</primary></indexterm> 238 <para>unifies duplicate translations in a translation catalog.</para> 239 </listitem> 240 </varlistentry> 241 242 <varlistentry id="ngettext"> 243 <term><command>ngettext</command></term> 244 <listitem> 245 <indexterm zone="ch-system-gettext ngettext"><primary sortas="b-ngettext">ngettext</primary></indexterm> 246 <para>displays native language translations of a 247 textual message whose grammatical form depends on a number.</para> 248 </listitem> 249 </varlistentry> 250 251 <varlistentry id="xgettext"> 252 <term><command>xgettext</command></term> 253 <listitem> 254 <indexterm zone="ch-system-gettext xgettext"><primary sortas="b-xgettext">xgettext</primary></indexterm> 255 <para>extracts the translatable message lines 256 from the given source files, to make the first translation template.</para> 257 </listitem> 258 </varlistentry> 259 260 <varlistentry id="libasprintf"> 261 <term><filename class="libraryfile">libasprintf</filename></term> 262 <listitem> 263 <indexterm zone="ch-system-gettext libasprintf"><primary sortas="c-libasprintf">libasprintf</primary></indexterm> 264 <para>defines the autosprintf class, which 265 makes C formatted output routines usable in C++ programs, for use with the 266 <string> strings and the <iostream> streams.</para> 267 </listitem> 268 </varlistentry> 269 270 <varlistentry id="libgettextlib"> 271 <term><filename class="libraryfile">libgettextlib</filename></term> 272 <listitem> 273 <indexterm zone="ch-system-gettext libgettextlib"><primary sortas="c-libgettextlib">libgettextlib</primary></indexterm> 274 <para>is a private library containing common routines used by the various Gettext 275 programs. They're not meant for general use.</para> 276 </listitem> 277 </varlistentry> 278 279 <varlistentry id="libgettextpo"> 280 <term><filename class="libraryfile">libgettextpo</filename></term> 281 <listitem> 282 <indexterm zone="ch-system-gettext libgettextpo"><primary sortas="c-libgettextpo">libgettextpo</primary></indexterm> 283 <para>is used to write specialized programs that process <filename 284 class="extension">.po</filename> files. This library is 285 used when the standard applications shipped with Gettext won't suffice (such as 286 <command>msgcomm</command>, <command>msgcmp</command>, 287 <command>msgattrib</command> and <command>msgen</command>).</para> 288 </listitem> 289 </varlistentry> 290 291 <varlistentry id="libgettextsrc"> 292 <term><filename class="libraryfile">libgettextsrc</filename></term> 293 <listitem> 294 <indexterm zone="ch-system-gettext libgettextsrc"><primary sortas="c-libgettextsrc">libgettextsrc</primary></indexterm> 295 <para>is a private library containing common routines used by the various Gettext 296 programs. They're not meant for general use.</para> 297 </listitem> 298 </varlistentry> 299 </variablelist> 45 <para>See testing</para> 300 46 301 47 </sect2> -
chapter06/glibc.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Glibc package contains the main C library. This library provides all14 the basic routines for allocating memory, searching directories, opening and15 closing files, reading and writing them, string handling, pattern matching,16 arithmetic, and so on.</para>17 13 18 14 <segmentedlist> … … 22 18 </segmentedlist> 23 19 24 <segmentedlist>25 <segtitle>Glibc installation depends on</segtitle>26 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,27 Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo</seg></seglistitem>28 </segmentedlist>29 20 </sect2> 30 21 … … 32 23 <title>Installation of Glibc</title> 33 24 34 <para>The Glibc build system is very well self-contained and will install 35 perfectly, even though our compiler specs file and linker are still pointing 36 at <filename class="directory">/tools</filename>. We cannot adjust the specs and linker before 37 the Glibc install, because the Glibc autoconf tests would then give bogus 38 results and thus defeat our goal of achieving a clean build.</para> 39 40 <para>Before starting to build Glibc, remember to unset any environment 41 variables that override the default optimization flags.</para> 42 43 <para>The Glibc documentation recommends building Glibc outside of the source 44 directory in a dedicated build directory:</para> 25 <para>Create a build directory:</para> 45 26 46 27 <screen><userinput>mkdir ../glibc-build … … 54 35 --libexecdir=/usr/lib/glibc</userinput></screen> 55 36 56 <para>The meaning of the new configure options:</para>57 58 <variablelist>59 <varlistentry>60 <term><parameter>--libexecdir=/usr/lib/glibc</parameter></term>61 <listitem><para>This changes the location of the <command>pt_chown</command>62 program from its default of <filename class="directory">/usr/libexec</filename> to63 <filename class="directory">/usr/lib/glibc</filename>.</para></listitem>64 </varlistentry>65 </variablelist>66 67 37 <para>Compile the package:</para> 68 38 69 39 <screen><userinput>make</userinput></screen> 70 71 <important><para>The test suite for Glibc in this section is considered72 <emphasis>critical</emphasis>. Our advice is to not skip it under any73 circumstance.</para></important>74 40 75 41 <para>Test the results:</para> … … 78 44 79 45 <para>The Glibc test suite is highly dependent on certain functions of your host 80 system, in particular the kernel. In general, the Glibc test suite is always 81 expected to pass. However, in certain circumstances some failures are 82 unavoidable. Here is a list of the most common issues we are aware of:</para> 46 system. See testing for explanations.</para> 83 47 84 <itemizedlist> 85 <listitem><para>The <emphasis>math</emphasis> tests sometimes fail when running 86 on systems where the CPU is not a relatively new genuine Intel or authentic AMD. 87 Certain optimization settings are also known to be a factor here.</para></listitem> 88 89 <listitem><para>The <emphasis>gettext</emphasis> test sometimes fails due to 90 host system issues. The exact reasons are not yet clear.</para></listitem> 91 92 <listitem><para>The <emphasis>atime</emphasis> test sometimes fails when the 93 LFS partition is mounted with the <parameter>noatime</parameter> option, or due 94 to other file system quirks.</para></listitem> 95 96 <listitem><para>The <emphasis>shm</emphasis> test might fail when the host 97 system is running the devfs file system but doesn't have the <systemitem class="filesystem">tmpfs</systemitem> file system 98 mounted at <filename class="directory">/dev/shm</filename> due to lack of support for tmpfs in 99 the kernel.</para></listitem> 100 101 <listitem><para>When running on older and slower hardware, some tests might 102 fail due to test timeouts being exceeded.</para></listitem> 103 </itemizedlist> 104 105 <para>Though it is a harmless message, the install stage of Glibc will 106 complain about the absence of <filename>/etc/ld.so.conf</filename>. Fix this 107 annoying little warning with:</para> 48 <para>Fix an annoying little warning with:</para> 108 49 109 50 <screen><userinput>touch /etc/ld.so.conf</userinput></screen> … … 113 54 <screen><userinput>make install</userinput></screen> 114 55 115 <para>T he locales that can make your system respond in a different language116 weren't installed by the above command. Do it with this:</para>56 <para>To install the Glibc locales, use the following 57 command:</para> 117 58 118 59 <screen><userinput>make localedata/install-locales</userinput></screen> 119 60 120 61 <para>An alternative to running the previous command is to install only those 121 locales which you need or want. This can be achieved by using the 122 <command>localedef</command> command. Information on this can be found in 123 the <filename>INSTALL</filename> file in the Glibc source. However, there are 124 a number of locales that are essential for the tests of future packages to 125 pass, in particular, the <emphasis>libstdc++</emphasis> tests from GCC. The 126 following instructions, instead of the install-locales target above, will 127 install the minimum set of locales necessary for the tests to run 128 successfully:</para> 62 locales which you need or want. The following instructions, instead of the 63 install-locales target above, will install the minimum set of locales necessary 64 for the tests to run successfully:</para> 129 65 130 <screen><userinput>mkdir -p / usr/lib/locale66 <screen><userinput>mkdir -p /tools/lib/locale 131 67 localedef -i de_DE -f ISO-8859-1 de_DE 132 68 localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro … … 141 77 localedef -i ja_JP -f EUC-JP ja_JP</userinput></screen> 142 78 143 <para>In fact, some locales installed by the 144 <command>make localedata/install-locales</command> 145 command above are not properly 146 supported by some applications that are in LFS and BLFS books. Because 147 of various problems that arise 148 due to application programmers making 149 assumptions that break in such locales, LFS <emphasis>should not</emphasis> 150 be used in locales that utilize 151 multibyte character sets (including UTF-8) or 152 right-to-left writing order. 153 Numerous unofficial and unstable patches are required to fix these problems, 154 and it has been decided not to support such complex locales. 155 This applies to the ja_JP and fa_IR locales as well: 156 they have been installed only 157 for GCC and Gettext tests to pass, and e.g. 158 the <command>watch</command> program (part of Procps) 159 compiled according to this book doesn't work properly in them. 160 Various attempts to circumvent these 161 restrictions are documented in internationalization-related hints.</para> 162 163 <para>Finally, build the linuxthreads man pages, which are a great reference 164 on the threading API (applicable to NPTL as well):</para> 79 <para>Build the linuxthreads man pages:</para> 165 80 166 81 <screen><userinput>make -C ../glibc-&glibc-version;/linuxthreads/man</userinput></screen> … … 174 89 175 90 <sect2 id="conf-glibc" role="configuration"><title>Configuring Glibc</title> 176 <indexterm zone="conf-glibc"><primary sortas="e-/etc/nsswitch.conf">/etc/nsswitch.conf</primary></indexterm>177 <indexterm zone="conf-glibc"><primary sortas="e-/etc/localtime">/etc/localtime</primary></indexterm>178 179 <para>We need to create the <filename>/etc/nsswitch.conf</filename> file,180 because, although Glibc provides defaults when this file is missing or corrupt,181 the Glibc defaults don't work well with networking. Also, our time zone needs182 to be set up.</para>183 91 184 92 <para>Create a new file <filename>/etc/nsswitch.conf</filename> by running the … … 207 115 <screen><userinput>tzselect</userinput></screen> 208 116 209 <para>When you've answered a few questions about your location, the script will 210 output the name of your time zone, something like <emphasis>EST5EDT</emphasis> 211 or <emphasis>Canada/Eastern</emphasis>. Then create the 212 <filename>/etc/localtime</filename> file by running:</para> 117 <para>Then create the <filename>/etc/localtime</filename> file by running:</para> 213 118 214 <screen><userinput>cp --remove-destination /usr/share/zoneinfo/Canada/Eastern /etc/localtime</userinput></screen> 215 216 <para>The meaning of the option:</para> 217 218 <variablelist> 219 <varlistentry> 220 <term><parameter>--remove-destination</parameter></term> 221 <listitem><para>This is needed to force removal of the already existing symbolic 222 link. The reason why we copy instead of symlink is to cover the situation where 223 <filename class="directory">/usr</filename> is on a separate partition. This could matter, for 224 example, when booted into single user mode.</para></listitem> 225 </varlistentry> 226 </variablelist> 227 228 <para>Of course, instead of <emphasis>Canada/Eastern</emphasis>, fill in 229 the name of the time zone that the <command>tzselect</command> script 230 gave you.</para> 119 <screen><userinput>cp --remove-destination /usr/share/zoneinfo/<replaceable>[xxx]</replaceable> \ 120 /etc/localtime</userinput></screen> 231 121 232 122 </sect2> … … 235 125 <sect2 id="conf-ld" role="configuration"> 236 126 <title>Configuring Dynamic Loader</title> 237 <indexterm zone="conf-ld"><primary sortas="e-/etc/ld.so.conf">/etc/ld.so.conf</primary></indexterm>238 239 <para>By default, the dynamic loader240 (<filename class="libraryfile">/lib/ld-linux.so.2</filename>) searches through <filename241 class="directory">/lib</filename> and <filename class="directory">/usr/lib</filename>242 for dynamic libraries that are needed243 by programs when you run them. However, if there are libraries in244 directories other than <filename class="directory">/lib</filename> and245 <filename class="directory">/usr/lib</filename>, you need to add them to246 the <filename>/etc/ld.so.conf</filename> file for the dynamic247 loader to find them. Two directories that are commonly known to contain248 additional libraries are <filename class="directory">/usr/local/lib</filename>249 and <filename class="directory">/opt/lib</filename>, so we add those directories to the250 dynamic loader's search path.</para>251 127 252 128 <para>Create a new file <filename>/etc/ld.so.conf</filename> by running the … … 267 143 <sect2 id="contents-glibc" role="content"><title>Contents of Glibc</title> 268 144 269 <segmentedlist> 270 <segtitle>Installed programs</segtitle> 271 <segtitle>Installed libraries</segtitle> 272 <seglistitem><seg>catchsegv, gencat, getconf, 273 getent, glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale, 274 localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown, rpcgen, 275 rpcinfo, sln, sprof, tzselect, xtrace, zdump and zic</seg> 276 <seg>ld.so, libBrokenLocale.[a,so], 277 libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so], libc_nonshared.a, 278 libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a, libm.[a,so], libmcheck.a, 279 libmemusage.so, libnsl.a, libnss_compat.so, libnss_dns.so, libnss_files.so, 280 libnss_hesiod.so, libnss_nis.so, libnss_nisplus.so, libpcprofile.so, 281 libpthread.[a,so], libresolv.[a,so], librpcsvc.a, librt.[a,so], libthread_db.so 282 and libutil.[a,so]</seg></seglistitem> 283 </segmentedlist> 284 285 <variablelist><title>Short descriptions</title> 286 287 <varlistentry id="catchsegv"> 288 <term><command>catchsegv</command></term> 289 <listitem> 290 <indexterm zone="ch-system-glibc catchsegv"><primary sortas="b-catchsegv">catchsegv</primary></indexterm> 291 <para>can be used to create a stack trace 292 when a program terminates with a segmentation fault.</para> 293 </listitem> 294 </varlistentry> 295 296 <varlistentry id="gencat"> 297 <term><command>gencat</command></term> 298 <listitem> 299 <indexterm zone="ch-system-glibc gencat"><primary sortas="b-gencat">gencat</primary></indexterm> 300 <para>generates message catalogues.</para> 301 </listitem> 302 </varlistentry> 303 304 <varlistentry id="getconf"> 305 <term><command>getconf</command></term> 306 <listitem> 307 <indexterm zone="ch-system-glibc getconf"><primary sortas="b-getconf">getconf</primary></indexterm> 308 <para>displays the system configuration values for file system specific variables.</para> 309 </listitem> 310 </varlistentry> 311 312 <varlistentry id="getent"> 313 <term><command>getent</command></term> 314 <listitem> 315 <indexterm zone="ch-system-glibc getent"><primary sortas="b-getent">getent</primary></indexterm> 316 <para>gets entries from an administrative database.</para> 317 </listitem> 318 </varlistentry> 319 320 <varlistentry id="glibcbug"> 321 <term><command>glibcbug</command></term> 322 <listitem> 323 <indexterm zone="ch-system-glibc glibcbug"><primary sortas="b-glibcbug">glibcbug</primary></indexterm> 324 <para>creates a bug report and mails it to the bug email address.</para> 325 </listitem> 326 </varlistentry> 327 328 <varlistentry id="iconv"> 329 <term><command>iconv</command></term> 330 <listitem> 331 <indexterm zone="ch-system-glibc iconv"><primary sortas="b-iconv">iconv</primary></indexterm> 332 <para>performs character set conversion.</para> 333 </listitem> 334 </varlistentry> 335 336 <varlistentry id="iconvconfig"> 337 <term><command>iconvconfig</command></term> 338 <listitem> 339 <indexterm zone="ch-system-glibc iconvconfig"><primary sortas="b-iconvconfig">iconvconfig</primary></indexterm> 340 <para>creates fastloading <command>iconv</command> module configuration file.</para> 341 </listitem> 342 </varlistentry> 343 344 <varlistentry id="ldconfig"> 345 <term><command>ldconfig</command></term> 346 <listitem> 347 <indexterm zone="ch-system-glibc ldconfig"><primary sortas="b-ldconfig">ldconfig</primary></indexterm> 348 <para>configures the dynamic linker runtime bindings.</para> 349 </listitem> 350 </varlistentry> 351 352 <varlistentry id="ldd"> 353 <term><command>ldd</command></term> 354 <listitem> 355 <indexterm zone="ch-system-glibc ldd"><primary sortas="b-ldd">ldd</primary></indexterm> 356 <para>reports which shared libraries are required 357 by each given program or shared library.</para> 358 </listitem> 359 </varlistentry> 360 361 <varlistentry id="lddlibc4"> 362 <term><command>lddlibc4</command></term> 363 <listitem> 364 <indexterm zone="ch-system-glibc lddlibc4"><primary sortas="b-lddlibc4">lddlibc4</primary></indexterm> 365 <para>assists <command>ldd</command> with object files.</para> 366 </listitem> 367 </varlistentry> 368 369 <varlistentry id="locale"> 370 <term><command>locale</command></term> 371 <listitem> 372 <indexterm zone="ch-system-glibc locale"><primary sortas="b-locale">locale</primary></indexterm> 373 <para>is a Perl program that tells the compiler 374 to enable or disable the use of POSIX locales for built-in operations.</para> 375 </listitem> 376 </varlistentry> 377 378 <varlistentry id="localedef"> 379 <term><command>localedef</command></term> 380 <listitem> 381 <indexterm zone="ch-system-glibc localedef"><primary sortas="b-localedef">localedef</primary></indexterm> 382 <para>compiles locale specifications.</para> 383 </listitem> 384 </varlistentry> 385 386 <varlistentry id="mtrace"> 387 <term><command>mtrace</command></term> 388 <listitem> 389 <indexterm zone="ch-system-glibc mtrace"><primary sortas="b-mtrace">mtrace</primary></indexterm> 390 <para>...</para> 391 </listitem> 392 </varlistentry> 393 394 <varlistentry id="nscd"> 395 <term><command>nscd</command></term> 396 <listitem> 397 <indexterm zone="ch-system-glibc nscd"><primary sortas="b-nscd">nscd</primary></indexterm> 398 <para>is a name service cache daemon providing a 399 cache for the most common name service requests.</para> 400 </listitem> 401 </varlistentry> 402 403 <varlistentry id="nscd_nischeck"> 404 <term><command>nscd_nischeck</command></term> 405 <listitem> 406 <indexterm zone="ch-system-glibc nscd_nischeck"><primary sortas="b-nscd_nischeck">nscd_nischeck</primary></indexterm> 407 <para>checks whether or not secure mode is necessary for NIS+ lookup.</para> 408 </listitem> 409 </varlistentry> 410 411 <varlistentry id="pcprofiledump"> 412 <term><command>pcprofiledump</command></term> 413 <listitem> 414 <indexterm zone="ch-system-glibc pcprofiledump"><primary sortas="b-pcprofiledump">pcprofiledump</primary></indexterm> 415 <para>dumps information generated by PC profiling.</para> 416 </listitem> 417 </varlistentry> 418 419 <varlistentry id="pt_chown"> 420 <term><command>pt_chown</command></term> 421 <listitem> 422 <indexterm zone="ch-system-glibc pt_chown"><primary sortas="b-pt_chown">pt_chown</primary></indexterm> 423 <para>is a helper program for grantpt to set 424 the owner, group and access permissions of a slave pseudo terminal.</para> 425 </listitem> 426 </varlistentry> 427 428 <varlistentry id="rpcgen"> 429 <term><command>rpcgen</command></term> 430 <listitem> 431 <indexterm zone="ch-system-glibc rpcgen"><primary sortas="b-rpcgen">rpcgen</primary></indexterm> 432 <para>generates C code to implement the RPC protocol.</para> 433 </listitem> 434 </varlistentry> 435 436 <varlistentry id="rpcinfo"> 437 <term><command>rpcinfo</command></term> 438 <listitem> 439 <indexterm zone="ch-system-glibc rpcinfo"><primary sortas="b-rpcinfo">rpcinfo</primary></indexterm> 440 <para>makes an RPC call to an RPC server.</para> 441 </listitem> 442 </varlistentry> 443 444 <varlistentry id="sln"> 445 <term><command>sln</command></term> 446 <listitem> 447 <indexterm zone="ch-system-glibc sln"><primary sortas="b-sln">sln</primary></indexterm> 448 <para>is used to make symbolic links. The program 449 is statically linked, so it is useful for making symbolic links to dynamic 450 libraries if the dynamic linking system for some reason is nonfunctional.</para> 451 </listitem> 452 </varlistentry> 453 454 <varlistentry id="sprof"> 455 <term><command>sprof</command></term> 456 <listitem> 457 <indexterm zone="ch-system-glibc sprof"><primary sortas="b-sprof">sprof</primary></indexterm> 458 <para>reads and displays shared object profiling data.</para> 459 </listitem> 460 </varlistentry> 461 462 <varlistentry id="tzselect"> 463 <term><command>tzselect</command></term> 464 <listitem> 465 <indexterm zone="ch-system-glibc tzselect"><primary sortas="b-tzselect">tzselect</primary></indexterm> 466 <para>asks the user about the location of the 467 system and reports the corresponding time zone description.</para> 468 </listitem> 469 </varlistentry> 470 471 <varlistentry id="xtrace"> 472 <term><command>xtrace</command></term> 473 <listitem> 474 <indexterm zone="ch-system-glibc xtrace"><primary sortas="b-xtrace">xtrace</primary></indexterm> 475 <para>traces the execution of a program by 476 printing the currently executed function.</para> 477 </listitem> 478 </varlistentry> 479 480 <varlistentry id="zdump"> 481 <term><command>zdump</command></term> 482 <listitem> 483 <indexterm zone="ch-system-glibc zdump"><primary sortas="b-zdump">zdump</primary></indexterm> 484 <para>is the time zone dumper.</para> 485 </listitem> 486 </varlistentry> 487 488 <varlistentry id="zic"> 489 <term><command>zic</command></term> 490 <listitem> 491 <indexterm zone="ch-system-glibc zic"><primary sortas="b-zic">zic</primary></indexterm> 492 <para>is the time zone compiler.</para> 493 </listitem> 494 </varlistentry> 495 496 <varlistentry id="ld.so"> 497 <term><filename class="libraryfile">ld.so</filename></term> 498 <listitem> 499 <indexterm zone="ch-system-glibc ld.so"><primary sortas="c-ld.so">ld.so</primary></indexterm> 500 <para>is the helper program for shared library executables.</para> 501 </listitem> 502 </varlistentry> 503 504 <varlistentry id="libBrokenLocale"> 505 <term><filename class="libraryfile">libBrokenLocale</filename></term> 506 <listitem> 507 <indexterm zone="ch-system-glibc libBrokenLocale"><primary sortas="c-libBrokenLocale">libBrokenLocale</primary></indexterm> 508 <para>is used by programs, such as Mozilla, to solve broken locales.</para> 509 </listitem> 510 </varlistentry> 511 512 <varlistentry id="libSegFault"> 513 <term><filename class="libraryfile">libSegFault</filename></term> 514 <listitem> 515 <indexterm zone="ch-system-glibc libSegFault"><primary sortas="c-libSegFault">libSegFault</primary></indexterm> 516 <para>is a segmentation fault signal handler. It tries to catch segfaults.</para> 517 </listitem> 518 </varlistentry> 519 520 <varlistentry id="libanl"> 521 <term><filename class="libraryfile">libanl</filename></term> 522 <listitem> 523 <indexterm zone="ch-system-glibc libanl"><primary sortas="c-libanl">libanl</primary></indexterm> 524 <para>is an asynchronous name lookup library.</para> 525 </listitem> 526 </varlistentry> 527 528 <varlistentry id="libbsd-compat"> 529 <term><filename class="libraryfile">libbsd-compat</filename></term> 530 <listitem> 531 <indexterm zone="ch-system-glibc libbsd-compat"><primary sortas="c-libbsd-compat">libbsd-compat</primary></indexterm> 532 <para>provides the portability needed 533 in order to run certain BSD programs under Linux.</para> 534 </listitem> 535 </varlistentry> 536 537 <varlistentry id="libc"> 538 <term><filename class="libraryfile">libc</filename></term> 539 <listitem> 540 <indexterm zone="ch-system-glibc libc"><primary sortas="c-libc">libc</primary></indexterm> 541 <para>is the main C library -- a collection of commonly used functions.</para> 542 </listitem> 543 </varlistentry> 544 545 <varlistentry id="libcrypt"> 546 <term><filename class="libraryfile">libcrypt</filename></term> 547 <listitem> 548 <indexterm zone="ch-system-glibc libcrypt"><primary sortas="c-libcrypt">libcrypt</primary></indexterm> 549 <para>is the cryptography library.</para> 550 </listitem> 551 </varlistentry> 552 553 <varlistentry id="libdl"> 554 <term><filename class="libraryfile">libdl</filename></term> 555 <listitem> 556 <indexterm zone="ch-system-glibc libdl"><primary sortas="c-libdl">libdl</primary></indexterm> 557 <para>is the dynamic linking interface library.</para> 558 </listitem> 559 </varlistentry> 560 561 <varlistentry id="libg"> 562 <term><filename class="libraryfile">libg</filename></term> 563 <listitem> 564 <indexterm zone="ch-system-glibc libg"><primary sortas="c-libg">libg</primary></indexterm> 565 <para>is a runtime library for <command>g++</command>.</para> 566 </listitem> 567 </varlistentry> 568 569 <varlistentry id="libieee"> 570 <term><filename class="libraryfile">libieee</filename></term> 571 <listitem> 572 <indexterm zone="ch-system-glibc libieee"><primary sortas="c-libieee">libieee</primary></indexterm> 573 <para>is the IEEE floating point library.</para> 574 </listitem> 575 </varlistentry> 576 577 <varlistentry id="libm"> 578 <term><filename class="libraryfile">libm</filename></term> 579 <listitem> 580 <indexterm zone="ch-system-glibc libm"><primary sortas="c-libm">libm</primary></indexterm> 581 <para>is the mathematical library.</para> 582 </listitem> 583 </varlistentry> 584 585 <varlistentry id="libmcheck"> 586 <term><filename class="libraryfile">libmcheck</filename></term> 587 <listitem> 588 <indexterm zone="ch-system-glibc libmcheck"><primary sortas="c-libmcheck">libmcheck</primary></indexterm> 589 <para>contains code run at boot.</para> 590 </listitem> 591 </varlistentry> 592 593 <varlistentry id="libmemusage"> 594 <term><filename class="libraryfile">libmemusage</filename></term> 595 <listitem> 596 <indexterm zone="ch-system-glibc libmemusage"><primary sortas="c-libmemusage">libmemusage</primary></indexterm> 597 <para>is used by <command>memusage</command> to help collect 598 information about the memory usage of a program.</para> 599 </listitem> 600 </varlistentry> 601 602 <varlistentry id="libnsl"> 603 <term><filename class="libraryfile">libnsl</filename></term> 604 <listitem> 605 <indexterm zone="ch-system-glibc libnsl"><primary sortas="c-libnsl">libnsl</primary></indexterm> 606 <para>is the network services library.</para> 607 </listitem> 608 </varlistentry> 609 610 <varlistentry id="libnss"> 611 <term><filename class="libraryfile">libnss*</filename></term> 612 <listitem> 613 <indexterm zone="ch-system-glibc libnss"><primary sortas="c-libnss*">libnss*</primary></indexterm> 614 <para>are the Name Service Switch libraries, 615 containing functions for resolving host names, user names, group names, 616 aliases, services, protocols, and the like.</para> 617 </listitem> 618 </varlistentry> 619 620 <varlistentry id="libpcprofile"> 621 <term><filename class="libraryfile">libpcprofile</filename></term> 622 <listitem> 623 <indexterm zone="ch-system-glibc libpcprofile"><primary sortas="c-libpcprofile">libpcprofile</primary></indexterm> 624 <para>contains profiling functions used 625 to track the amount of CPU time spent in which source code lines.</para> 626 </listitem> 627 </varlistentry> 628 629 <varlistentry id="libpthread"> 630 <term><filename class="libraryfile">libpthread</filename></term> 631 <listitem> 632 <indexterm zone="ch-system-glibc libpthread"><primary sortas="c-libpthread">libpthread</primary></indexterm> 633 <para>is the POSIX threads library.</para> 634 </listitem> 635 </varlistentry> 636 637 <varlistentry id="libresolv"> 638 <term><filename class="libraryfile">libresolv</filename></term> 639 <listitem> 640 <indexterm zone="ch-system-glibc libresolv"><primary sortas="c-libresolv">libresolv</primary></indexterm> 641 <para>contains functions for creating, 642 sending, and interpreting packets to the Internet domain name servers.</para> 643 </listitem> 644 </varlistentry> 645 646 <varlistentry id="librpcsvc"> 647 <term><filename class="libraryfile">librpcsvc</filename></term> 648 <listitem> 649 <indexterm zone="ch-system-glibc librpcsvc"><primary sortas="c-librpcsvc">librpcsvc</primary></indexterm> 650 <para>contains functions providing miscellaneous RPC services.</para> 651 </listitem> 652 </varlistentry> 653 654 <varlistentry id="librt"> 655 <term><filename class="libraryfile">librt</filename></term> 656 <listitem> 657 <indexterm zone="ch-system-glibc librt"><primary sortas="c-librt">librt</primary></indexterm> 658 <para>contains functions providing most of the 659 interfaces specified by the POSIX.1b Realtime Extension.</para> 660 </listitem> 661 </varlistentry> 662 663 <varlistentry id="libthread_db"> 664 <term><filename class="libraryfile">libthread_db</filename></term> 665 <listitem> 666 <indexterm zone="ch-system-glibc libthread_db"><primary sortas="c-libthread_db">libthread_db</primary></indexterm> 667 <para>contains functions useful for 668 building debuggers for multi-threaded programs.</para> 669 </listitem> 670 </varlistentry> 671 672 <varlistentry id="libutil"> 673 <term><filename class="libraryfile">libutil</filename></term> 674 <listitem> 675 <indexterm zone="ch-system-glibc libutil"><primary sortas="c-libutil">libutil</primary></indexterm> 676 <para>contains code for <quote>standard</quote> functions used in many different Unix utilities.</para> 677 </listitem> 678 </varlistentry> 679 </variablelist> 145 <para>See testing</para> 680 146 681 147 </sect2> -
chapter06/grep.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Grep package contains programs for searching through files.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Grep installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils,24 Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-grep" role="content"><title>Contents of Grep</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed programs</segtitle> 53 <seglistitem><seg>egrep (link to grep), fgrep (link to grep) and grep</seg></seglistitem> 54 </segmentedlist> 55 56 <variablelist><title>Short descriptions</title> 57 58 <varlistentry id="egrep"> 59 <term><command>egrep</command></term> 60 <listitem> 61 <indexterm zone="ch-system-grep egrep"><primary sortas="b-egrep">egrep</primary></indexterm> 62 <para>prints lines matching an extended regular expression.</para> 63 </listitem> 64 </varlistentry> 65 66 <varlistentry id="fgrep"> 67 <term><command>fgrep</command></term> 68 <listitem> 69 <indexterm zone="ch-system-grep fgrep"><primary sortas="b-fgrep">fgrep</primary></indexterm> 70 <para>prints lines matching a list of fixed strings.</para> 71 </listitem> 72 </varlistentry> 73 74 <varlistentry id="grep"> 75 <term><command>grep</command></term> 76 <listitem> 77 <indexterm zone="ch-system-grep grep"><primary sortas="b-grep">grep</primary></indexterm> 78 <para>prints lines matching a basic regular expression.</para> 79 </listitem> 80 </varlistentry> 81 </variablelist> 45 <para>See testing</para> 82 46 83 47 </sect2> -
chapter06/groff.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Groff package contains programs for processing and formatting text.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Groff installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 Gawk, GCC, Glibc, Grep, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 28 22 <sect2 role="installation"> 29 23 <title>Installation of Groff</title> 30 31 <para>Groff expects the environment variable PAGE to contain the default paper32 size. For those in the United States, the command below is appropriate. If you33 live elsewhere, you may want to change <emphasis>PAGE=letter</emphasis> to34 <emphasis>PAGE=A4</emphasis>.</para>35 24 36 25 <para>Prepare Groff for compilation:</para> … … 46 35 <screen><userinput>make install</userinput></screen> 47 36 48 <para>Some documentation programs, such as <command>xman</command>, 49 will not work properly without the following symlinks:</para> 37 <para>Create the following symlinks:</para> 50 38 51 39 <screen><userinput>ln -s soelim /usr/bin/zsoelim … … 58 46 <sect2 id="contents-groff" role="content"><title>Contents of Groff</title> 59 47 60 <segmentedlist> 61 <segtitle>Installed programs</segtitle> 62 <seglistitem><seg>addftinfo, afmtodit, eqn, eqn2graph, geqn (link to eqn), grn, 63 grodvi, groff, groffer, grog, grolbp, grolj4, grops, grotty, gtbl (link to tbl), hpftodit, 64 indxbib, lkbib, lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml, 65 pre-grohtml, refer, soelim, tbl, tfmtodit, troff and zsoelim (link to soelim)</seg></seglistitem> 66 </segmentedlist> 67 68 <variablelist><title>Short descriptions</title> 69 70 <varlistentry id="addftinfo"> 71 <term><command>addftinfo</command></term> 72 <listitem> 73 <indexterm zone="ch-system-groff addftinfo"><primary sortas="b-addftinfo">addftinfo</primary></indexterm> 74 <para>reads a troff font file and adds some 75 additional font-metric information that is used by the <command>groff</command> system.</para> 76 </listitem> 77 </varlistentry> 78 79 <varlistentry id="afmtodit"> 80 <term><command>afmtodit</command></term> 81 <listitem> 82 <indexterm zone="ch-system-groff afmtodit"><primary sortas="b-afmtodit">afmtodit</primary></indexterm> 83 <para>creates a font file for use with <command>groff</command> and <command>grops</command>.</para> 84 </listitem> 85 </varlistentry> 86 87 <varlistentry id="eqn"> 88 <term><command>eqn</command></term> 89 <listitem> 90 <indexterm zone="ch-system-groff eqn"><primary sortas="b-eqn">eqn</primary></indexterm> 91 <para>compiles descriptions of equations embedded 92 within troff input files into commands that are understood by <command>troff</command>.</para> 93 </listitem> 94 </varlistentry> 95 96 <varlistentry id="eqn2graph"> 97 <term><command>eqn2graph</command></term> 98 <listitem> 99 <indexterm zone="ch-system-groff eqn2graph"><primary sortas="b-eqn2graph">eqn2graph</primary></indexterm> 100 <para>converts an EQN equation into a cropped image.</para> 101 </listitem> 102 </varlistentry> 103 104 <varlistentry id="grn"> 105 <term><command>grn</command></term> 106 <listitem> 107 <indexterm zone="ch-system-groff grn"><primary sortas="b-grn">grn</primary></indexterm> 108 <para>is a <command>groff</command> preprocessor for gremlin files.</para> 109 </listitem> 110 </varlistentry> 111 112 <varlistentry id="grodvi"> 113 <term><command>grodvi</command></term> 114 <listitem> 115 <indexterm zone="ch-system-groff grodvi"><primary sortas="b-grodvi">grodvi</primary></indexterm> 116 <para>is a driver for <command>groff</command> that produces TeX dvi format.</para> 117 </listitem> 118 </varlistentry> 119 120 <varlistentry id="groff"> 121 <term><command>groff</command></term> 122 <listitem> 123 <indexterm zone="ch-system-groff groff"><primary sortas="b-groff">groff</primary></indexterm> 124 <para>is a front-end to the groff document 125 formatting system. Normally it runs the <command>troff</command> program and a post-processor 126 appropriate for the selected device.</para> 127 </listitem> 128 </varlistentry> 129 130 <varlistentry id="groffer"> 131 <term><command>groffer</command></term> 132 <listitem> 133 <indexterm zone="ch-system-groff groffer"><primary sortas="b-groffer">groffer</primary></indexterm> 134 <para>displays groff files and man pages on X and tty terminals.</para> 135 </listitem> 136 </varlistentry> 137 138 <varlistentry id="grog"> 139 <term><command>grog</command></term> 140 <listitem> 141 <indexterm zone="ch-system-groff grog"><primary sortas="b-grog">grog</primary></indexterm> 142 <para>reads files and guesses which of the <command>groff</command> 143 options <parameter>-e</parameter>, <parameter>-man</parameter>, 144 <parameter>-me</parameter>, <parameter>-mm</parameter>, 145 <parameter>-ms</parameter>, <parameter>-p</parameter>, <parameter>-s</parameter>, 146 and <parameter>-t</parameter> are required for printing 147 files, and reports the <command>groff</command> command including those options.</para> 148 </listitem> 149 </varlistentry> 150 151 <varlistentry id="grolbp"> 152 <term><command>grolbp</command></term> 153 <listitem> 154 <indexterm zone="ch-system-groff grolbp"><primary sortas="b-grolbp">grolbp</primary></indexterm> 155 <para>is a <command>groff</command> driver for Canon CAPSL printers 156 (LBP-4 and LBP-8 series laser printers).</para> 157 </listitem> 158 </varlistentry> 159 160 <varlistentry id="grolj4"> 161 <term><command>grolj4</command></term> 162 <listitem> 163 <indexterm zone="ch-system-groff grolj4"><primary sortas="b-grolj4">grolj4</primary></indexterm> 164 <para>is a driver for <command>groff</command> that produces output 165 in PCL5 format suitable for an HP Laserjet 4 printer.</para> 166 </listitem> 167 </varlistentry> 168 169 <varlistentry id="grops"> 170 <term><command>grops</command></term> 171 <listitem> 172 <indexterm zone="ch-system-groff grops"><primary sortas="b-grops">grops</primary></indexterm> 173 <para>translates the output of GNU <command>troff</command> to PostScript.</para> 174 </listitem> 175 </varlistentry> 176 177 <varlistentry id="grotty"> 178 <term><command>grotty</command></term> 179 <listitem> 180 <indexterm zone="ch-system-groff grotty"><primary sortas="b-grotty">grotty</primary></indexterm> 181 <para>translates the output of GNU <command>troff</command> into 182 a form suitable for typewriter-like devices.</para> 183 </listitem> 184 </varlistentry> 185 186 <varlistentry id="gtbl"> 187 <term><command>gtbl</command></term> 188 <listitem> 189 <indexterm zone="ch-system-groff gtbl"><primary sortas="b-gtbl">gtbl</primary></indexterm> 190 <para>is the GNU implementation of <command>tbl</command>.</para> 191 </listitem> 192 </varlistentry> 193 194 <varlistentry id="hpftodit"> 195 <term><command>hpftodit</command></term> 196 <listitem> 197 <indexterm zone="ch-system-groff hpftodit"><primary sortas="b-hpftodit">hpftodit</primary></indexterm> 198 <para>creates a font file for use with 199 <command>groff -Tlj4</command> from an HP-tagged font metric file.</para> 200 </listitem> 201 </varlistentry> 202 203 <varlistentry id="indxbib"> 204 <term><command>indxbib</command></term> 205 <listitem> 206 <indexterm zone="ch-system-groff indxbib"><primary sortas="b-indxbib">indxbib</primary></indexterm> 207 <para>makes an inverted index for the bibliographic databases a specified file for 208 use with <command>refer</command>, <command>lookbib</command>, and <command>lkbib</command>.</para> 209 </listitem> 210 </varlistentry> 211 212 <varlistentry id="lkbib"> 213 <term><command>lkbib</command></term> 214 <listitem> 215 <indexterm zone="ch-system-groff lkbib"><primary sortas="b-lkbib">lkbib</primary></indexterm> 216 <para>searches bibliographic databases for 217 references that contain specified keys and reports any references found.</para> 218 </listitem> 219 </varlistentry> 220 221 <varlistentry id="lookbib"> 222 <term><command>lookbib</command></term> 223 <listitem> 224 <indexterm zone="ch-system-groff lookbib"><primary sortas="b-lookbib">lookbib</primary></indexterm> 225 <para>prints a prompt on the standard error 226 (unless the standard input is not a terminal), reads from the standard input 227 a line containing a set of keywords, searches the bibliographic databases in 228 a specified file for references containing those keywords, prints any 229 references found on the standard output and repeats this process until the 230 end of input.</para> 231 </listitem> 232 </varlistentry> 233 234 <varlistentry id="mmroff"> 235 <term><command>mmroff</command></term> 236 <listitem> 237 <indexterm zone="ch-system-groff mmroff"><primary sortas="b-mmroff">mmroff</primary></indexterm> 238 <para>is a simple preprocessor for <command>groff</command>.</para> 239 </listitem> 240 </varlistentry> 241 242 <varlistentry id="neqn"> 243 <term><command>neqn</command></term> 244 <listitem> 245 <indexterm zone="ch-system-groff neqn"><primary sortas="b-neqn">neqn</primary></indexterm> 246 <para>formats equations for ASCII (American Standard Code for Information 247 Interchange) output.</para> 248 </listitem> 249 </varlistentry> 250 251 <varlistentry id="nroff"> 252 <term><command>nroff</command></term> 253 <listitem> 254 <indexterm zone="ch-system-groff nroff"><primary sortas="b-nroff">nroff</primary></indexterm> 255 <para>is a script that emulates the <command>nroff</command> command using <command>groff</command>.</para> 256 </listitem> 257 </varlistentry> 258 259 <varlistentry id="pfbtops"> 260 <term><command>pfbtops</command></term> 261 <listitem> 262 <indexterm zone="ch-system-groff pfbtops"><primary sortas="b-pfbtops">pfbtops</primary></indexterm> 263 <para>translates a PostScript font in <filename class="extension">.pfb</filename> format to ASCII.</para> 264 </listitem> 265 </varlistentry> 266 267 <varlistentry id="pic"> 268 <term><command>pic</command></term> 269 <listitem> 270 <indexterm zone="ch-system-groff pic"><primary sortas="b-pic">pic</primary></indexterm> 271 <para>compiles descriptions of pictures embedded 272 within troff or TeX input files into commands understood by TeX or <command>troff</command>.</para> 273 </listitem> 274 </varlistentry> 275 276 <varlistentry id="pic2graph"> 277 <term><command>pic2graph</command></term> 278 <listitem> 279 <indexterm zone="ch-system-groff pic2graph"><primary sortas="b-pic2graph">pic2graph</primary></indexterm> 280 <para>converts a PIC diagram into a cropped image.</para> 281 </listitem> 282 </varlistentry> 283 284 <varlistentry id="pre-grohtml"> 285 <term><command>pre-grohtml </command></term> 286 <listitem> 287 <indexterm zone="ch-system-groff pre-grohtml"><primary sortas="b-pre-grohtml">pre-grohtml</primary></indexterm> 288 <para>translates the output of GNU <command>troff</command> to html.</para> 289 </listitem> 290 </varlistentry> 291 292 <varlistentry id="post-grohtml"> 293 <term><command>post-grohtml</command></term> 294 <listitem> 295 <indexterm zone="ch-system-groff post-grohtml"><primary sortas="b-post-grohtml">post-grohtml</primary></indexterm> 296 <para>translates the output of GNU <command>troff</command> to html.</para> 297 </listitem> 298 </varlistentry> 299 300 <varlistentry id="refer"> 301 <term><command>refer</command></term> 302 <listitem> 303 <indexterm zone="ch-system-groff refer"><primary sortas="b-refer">refer</primary></indexterm> 304 <para>copies the contents of a file to the 305 standard output, except that lines between .[ and .] are interpreted as 306 citations, and lines between .R1 and .R2 are interpreted as commands about 307 how citations are to be processed.</para> 308 </listitem> 309 </varlistentry> 310 311 <varlistentry id="soelim"> 312 <term><command>soelim</command></term> 313 <listitem> 314 <indexterm zone="ch-system-groff soelim"><primary sortas="b-soelim">soelim</primary></indexterm> 315 <para>reads files and replaces lines of the form 316 <emphasis>.so file</emphasis> by the contents of the mentioned 317 <emphasis>file</emphasis>.</para> 318 </listitem> 319 </varlistentry> 320 321 <varlistentry id="tbl"> 322 <term><command>tbl</command></term> 323 <listitem> 324 <indexterm zone="ch-system-groff tbl"><primary sortas="b-tbl">tbl</primary></indexterm> 325 <para>compiles descriptions of tables embedded 326 within troff input files into commands that are understood by <command>troff</command>.</para> 327 </listitem> 328 </varlistentry> 329 330 <varlistentry id="tfmtodit"> 331 <term><command>tfmtodit</command></term> 332 <listitem> 333 <indexterm zone="ch-system-groff tfmtodit"><primary sortas="b-tfmtodit">tfmtodit</primary></indexterm> 334 <para>creates a font file for use with <command>groff -Tdvi</command>.</para> 335 </listitem> 336 </varlistentry> 337 338 <varlistentry id="troff"> 339 <term><command>troff</command></term> 340 <listitem> 341 <indexterm zone="ch-system-groff troff"><primary sortas="b-troff">troff</primary></indexterm> 342 <para>is highly compatible with Unix <command>troff</command>. Usually it should be invoked using the 343 <command>groff</command> command, which will also run preprocessors and post-processors in the 344 appropriate order and with the appropriate options.</para> 345 </listitem> 346 </varlistentry> 347 348 <varlistentry id="zsoelim"> 349 <term><command>zsoelim</command></term> 350 <listitem> 351 <indexterm zone="ch-system-groff zsoelim"><primary sortas="b-zsoelim">zsoelim</primary></indexterm> 352 <para>is the GNU implementation of <command>soelim</command>.</para> 353 </listitem> 354 </varlistentry> 355 </variablelist> 48 <para>See testing</para> 356 49 357 50 </sect2> -
chapter06/grub.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Grub package contains the GRand Unified Bootloader.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Grub installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Grub</title> 30 24 31 <para>This package is known to behave badly when you have changed its default32 optimization flags (including the <parameter>-march</parameter> and33 <parameter>-mcpu</parameter> options). Therefore, if you34 have defined any environment variables that override default optimizations,35 such as CFLAGS and CXXFLAGS, we recommend un-setting them when building36 Grub.</para>37 38 25 <para>Prepare Grub for compilation:</para> 39 26 40 27 <screen><userinput>./configure --prefix=/usr</userinput></screen> 41 28 42 <para>Now compile the rest of thepackage:</para>29 <para>Now compile the package:</para> 43 30 44 31 <screen><userinput>make</userinput></screen> … … 46 33 <para>To test the results, issue: 47 34 <userinput>make check</userinput>.</para> 48 49 <para>Note that the test results will always give the error50 <quote>ufs2_stage1_5 is too big</quote>. This is due to a compiler issue,51 but can be ignored unless you plan to boot from a UFS partition, normally only52 used by Sun workstations.53 </para>54 35 55 36 <para>Now install it:</para> … … 59 40 cp /usr/share/grub/i386-pc/stage{1,2} /boot/grub</userinput></screen> 60 41 61 <para>Replace <filename class="directory">i386-pc</filename> with whatever 62 directory is appropriate for your hardware.</para> 63 64 <para>The <filename class="directory">i386-pc</filename> directory also 65 contains a number of <filename>*stage1_5</filename> files, different ones 66 for different file systems. Have a look at the ones available and copy the 67 appropriate ones to the <filename class="directory">/boot/grub</filename> 68 directory. Most people will copy the <filename>e2fs_stage1_5</filename> 69 and/or <filename>reiserfs_stage1_5</filename> files.</para> 42 <para>The <filename class="directory">i386-pc</filename> directory 43 contains a number of <filename>*stage1_5</filename> files, different 44 ones for different file systems. Review the files available and copy 45 the appropriate ones to the <filename 46 class="directory">/boot/grub</filename> directory. Most users will 47 copy the <filename>e2fs_stage1_5</filename> and/or 48 <filename>reiserfs_stage1_5</filename> files.</para> 70 49 71 50 </sect2> … … 74 53 <sect2 id="contents-grub" role="content"><title>Contents of Grub</title> 75 54 76 <segmentedlist> 77 <segtitle>Installed programs</segtitle> 78 <seglistitem><seg>grub, grub-install, 79 grub-md5-crypt, grub-terminfo and mbchk</seg></seglistitem> 80 </segmentedlist> 81 82 <variablelist><title>Short descriptions</title> 83 84 <varlistentry id="grub"> 85 <term><command>grub</command></term> 86 <listitem> 87 <indexterm zone="ch-system-grub grub"><primary sortas="b-grub">grub</primary></indexterm> 88 <para>is the GRand Unified Bootloader's command shell.</para> 89 </listitem> 90 </varlistentry> 91 92 <varlistentry id="grub-install"> 93 <term><command>grub-install</command></term> 94 <listitem> 95 <indexterm zone="ch-system-grub grub-install"><primary sortas="b-grub-install">grub-install</primary></indexterm> 96 <para>installs GRUB on the given device.</para> 97 </listitem> 98 </varlistentry> 99 100 <varlistentry id="grub-md5-crypt"> 101 <term><command>grub-md5-crypt</command></term> 102 <listitem> 103 <indexterm zone="ch-system-grub grub-md5-crypt"><primary sortas="b-grub-md5-crypt">grub-md5-crypt</primary></indexterm> 104 <para>encrypts a password in MD5 format.</para> 105 </listitem> 106 </varlistentry> 107 108 <varlistentry id="grub-terminfo"> 109 <term><command>grub-terminfo</command></term> 110 <listitem> 111 <indexterm zone="ch-system-grub grub-terminfo"><primary sortas="b-grub-terminfo">grub-terminfo</primary></indexterm> 112 <para>generates a terminfo command from a 113 terminfo name. It can be used if you have an uncommon terminal.</para> 114 </listitem> 115 </varlistentry> 116 117 <varlistentry id="mbchk"> 118 <term><command>mbchk</command></term> 119 <listitem> 120 <indexterm zone="ch-system-grub mbchk"><primary sortas="b-mbchk">mbchk</primary></indexterm> 121 <para>checks the format of a multi-boot kernel.</para> 122 </listitem> 123 </varlistentry> 124 </variablelist> 55 <para>See testing</para> 125 56 126 57 </sect2> -
chapter06/gzip.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Gzip package contains programs for compressing and decompressing14 files.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Gzip installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,25 GCC, Glibc, Grep, Make, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 34 27 <screen><userinput>./configure --prefix=/usr</userinput></screen> 35 28 36 <para>The <command>gzexe</command> script has the location of the 37 <command>gzip</command> binary hard-wired into it. Because we later change 38 the location of the binary, the following command ensures that the new 39 location gets placed into the script:</para> 29 <para>Issue a sed command:</para> 40 30 41 31 <screen><userinput>sed -i 's@"BINDIR"@/bin@g' gzexe.in</userinput></screen> … … 62 52 <sect2 id="contents-gzip" role="content"><title>Contents of Gzip</title> 63 53 64 <segmentedlist> 65 <segtitle>Installed programs</segtitle> 66 <seglistitem><seg>gunzip (link to gzip), gzexe, 67 gzip, uncompress (link to gunzip), zcat (link to gzip), zcmp, zdiff, 68 zegrep, zfgrep, zforce, zgrep, zless, zmore and znew</seg></seglistitem> 69 </segmentedlist> 70 71 <variablelist><title>Short descriptions</title> 72 73 <varlistentry id="gunzip"> 74 <term><command>gunzip</command></term> 75 <listitem> 76 <indexterm zone="ch-system-gzip gunzip"><primary sortas="b-gunzip">gunzip</primary></indexterm> 77 <para>decompresses gzipped files.</para> 78 </listitem> 79 </varlistentry> 80 81 <varlistentry id="gzexe"> 82 <term><command>gzexe</command></term> 83 <listitem> 84 <indexterm zone="ch-system-gzip gzexe"><primary sortas="b-gzexe">gzexe</primary></indexterm> 85 <para>is used to create self-uncompressing executable files.</para> 86 </listitem> 87 </varlistentry> 88 89 <varlistentry id="gzip"> 90 <term><command>gzip</command></term> 91 <listitem> 92 <indexterm zone="ch-system-gzip gzip"><primary sortas="b-gzip">gzip</primary></indexterm> 93 <para>compresses the given files, using Lempel-Ziv (LZ77) coding.</para> 94 </listitem> 95 </varlistentry> 96 97 <varlistentry id="zcat"> 98 <term><command>zcat</command></term> 99 <listitem> 100 <indexterm zone="ch-system-gzip zcat"><primary sortas="b-zcat">zcat</primary></indexterm> 101 <para>uncompresses the given gzipped files to standard output.</para> 102 </listitem> 103 </varlistentry> 104 105 <varlistentry id="zcmp"> 106 <term><command>zcmp</command></term> 107 <listitem> 108 <indexterm zone="ch-system-gzip zcmp"><primary sortas="b-zcmp">zcmp</primary></indexterm> 109 <para>runs <command>cmp</command> on gzipped files.</para> 110 </listitem> 111 </varlistentry> 112 113 <varlistentry id="zdiff"> 114 <term><command>zdiff</command></term> 115 <listitem> 116 <indexterm zone="ch-system-gzip zdiff"><primary sortas="b-zdiff">zdiff</primary></indexterm> 117 <para>runs <command>diff</command> on gzipped files.</para> 118 </listitem> 119 </varlistentry> 120 121 <varlistentry id="zegrep"> 122 <term><command>zegrep</command></term> 123 <listitem> 124 <indexterm zone="ch-system-gzip zegrep"><primary sortas="b-zegrep">zegrep</primary></indexterm> 125 <para>runs <command>egrep</command> on gzipped files.</para> 126 </listitem> 127 </varlistentry> 128 129 <varlistentry id="zfgrep"> 130 <term><command>zfgrep</command></term> 131 <listitem> 132 <indexterm zone="ch-system-gzip zfgrep"><primary sortas="b-zfgrep">zfgrep</primary></indexterm> 133 <para>runs <command>fgrep</command> on gzipped files.</para> 134 </listitem> 135 </varlistentry> 136 137 <varlistentry id="zforce"> 138 <term><command>zforce</command></term> 139 <listitem> 140 <indexterm zone="ch-system-gzip zforce"><primary sortas="b-zforce">zforce</primary></indexterm> 141 <para>forces a <filename class="extension">.gz</filename> extension on all given files 142 that are gzipped files, so that <command>gzip</command> will not compress them again. This can be 143 useful when file names were truncated during a file transfer.</para> 144 </listitem> 145 </varlistentry> 146 147 <varlistentry id="zgrep"> 148 <term><command>zgrep</command></term> 149 <listitem> 150 <indexterm zone="ch-system-gzip zgrep"><primary sortas="b-zgrep">zgrep</primary></indexterm> 151 <para>runs <command>grep</command> on gzipped files.</para> 152 </listitem> 153 </varlistentry> 154 155 <varlistentry id="zless"> 156 <term><command>zless</command></term> 157 <listitem> 158 <indexterm zone="ch-system-gzip zless"><primary sortas="b-zless">zless</primary></indexterm> 159 <para>runs <command>less</command> on gzipped files.</para> 160 </listitem> 161 </varlistentry> 162 163 <varlistentry id="zmore"> 164 <term><command>zmore</command></term> 165 <listitem> 166 <indexterm zone="ch-system-gzip zmore"><primary sortas="b-zmore">zmore</primary></indexterm> 167 <para>runs <command>more</command> on gzipped files.</para> 168 </listitem> 169 </varlistentry> 170 171 <varlistentry id="znew"> 172 <term><command>znew</command></term> 173 <listitem> 174 <indexterm zone="ch-system-gzip znew"><primary sortas="b-znew">znew</primary></indexterm> 175 <para>re-compresses files from <command>compress</command> format to <command>gzip</command> format 176 -- <filename class="extension">.Z</filename> to <filename class="extension">.gz</filename>.</para> 177 </listitem> 178 </varlistentry> 179 </variablelist> 54 <para>See testing</para> 180 55 181 56 </sect2> -
chapter06/hotplug.xml
raaa3260 r3f0c882 12 12 <sect2 role="package"><title/> 13 13 14 <para>The Hotplug package contains scripts that react upon hotplug events15 generated by the kernel. Such events correspond to every change in the16 in the kernel state visible in the "sysfs" filesystem, e.g., the addition and17 removal of hardware. This package also detects existing hardware during18 boot and inserts the relevant modules into the running kernel.19 </para>20 14 <segmentedlist> 21 15 <segtitle>&buildtime;</segtitle> … … 33 27 <screen><userinput>make install</userinput></screen> 34 28 35 <para>Remove Hotplug's not-so-clean init script, since we're going to be using 36 the script including with LFS-Bootscripts:</para> 29 <para>Remove Hotplug's init script:</para> 37 30 38 31 <screen><userinput>rm -rf /etc/init.d</userinput></screen> 39 32 40 <para>Network device hotplugging is not supported by LFS bootscripts yet. For 41 that reason, remove the network hotplug agent:</para> 33 <para>Remove the network hotplug agent:</para> 42 34 43 35 <screen><userinput>rm -f /etc/hotplug/net.agent</userinput></screen> … … 47 39 <sect2 id="contents-hotplug" role="content"><title>Contents of Hotplug</title> 48 40 49 <variablelist> 50 <varlistentry id="hotplug"> 51 <term><command>/sbin/hotplug</command></term> 52 <listitem> 53 <indexterm zone="ch-system-hotplug hotplug"><primary 54 sortas="b-hotplug">hotplug</primary></indexterm> 55 <para>This script is called by default by Linux kernel when something 56 changes in its internal state (e.g., a new device is added or removed).</para> 57 </listitem> 58 </varlistentry> 41 <para>See testing</para> 59 42 60 <varlistentry id="hotplug-rc">61 <term><command>*.rc</command> files in62 <filename class="directory">/etc/hotplug</filename> directory</term>63 <listitem>64 <indexterm zone="ch-system-hotplug hotplug-rc"><primary65 sortas="e-/etc/hotplug/*.rc">/etc/hotplug/*.rc</primary></indexterm>66 <para>These scripts are used for cold plugging, i.e., detection and other67 specific actions upon hardware already present during system startup.68 They are called by the <filename>hotplug</filename> initscript that comes69 from the lfs-bootscripts package.70 The <command>*.rc</command>71 scripts try to recover hotplug events that were lost during system boot72 because, e.g., the root filesystem was not mounted by the kernel.73 </para>74 </listitem>75 </varlistentry>76 77 <varlistentry id="hotplug-agent">78 <term><command>*.agent</command> files in79 <filename class="directory">/etc/hotplug</filename> directory</term>80 <listitem>81 <indexterm zone="ch-system-hotplug hotplug-agent"><primary82 sortas="e-/etc/hotplug/*.agent">/etc/hotplug/*.agent</primary></indexterm>83 <para>These scripts are called by <command>/sbin/hotplug</command>84 in response to different types of hotplug events generated by the kernel.85 Their action is to insert corresponding kernel modules and call user-provided86 scripts, if any.87 </para>88 </listitem>89 </varlistentry>90 91 <varlistentry id="hotplug-functions">92 <term><filename>/etc/hotplug/hotplug.functions</filename></term>93 <listitem>94 <indexterm zone="ch-system-hotplug hotplug-functions"><primary95 sortas="e-/etc/hotplug/hotplug.functions">/etc/hotplug/hotplug.functions</primary></indexterm>96 <para>This file contains common functions used by other scripts in Hotplug97 package.98 </para>99 </listitem>100 </varlistentry>101 102 <varlistentry id="hotplug-blacklist">103 <term><filename>/etc/hotplug/blacklist</filename></term>104 <listitem>105 <indexterm zone="ch-system-hotplug hotplug-blacklist"><primary106 sortas="e-/etc/hotplug/blacklist">/etc/hotplug/blacklist</primary></indexterm>107 <para>This file contains the list of modules that should never be108 inserted into the kernel by hotplug scripts.109 </para>110 </listitem>111 </varlistentry>112 113 <varlistentry id="hotplug-subdirs">114 <term><filename class="directory">/etc/hotplug/{pci,usb}</filename></term>115 <listitem>116 <indexterm zone="ch-system-hotplug hotplug-subdirs"><primary117 sortas="e-/etc/hotplug/{pci,usb}">/etc/hotplug/{pci,usb}</primary></indexterm>118 <para>These directories are supposed to contain user-written handlers for119 hotplug events.120 </para>121 </listitem>122 </varlistentry>123 124 <varlistentry id="hotplug-usb.usermap">125 <term><filename>/etc/hotplug/usb.usermap</filename></term>126 <listitem>127 <indexterm zone="ch-system-hotplug hotplug-usb.usermap"><primary128 sortas="e-/etc/hotplug/usb.usermap">/etc/hotplug/usb.usermap</primary></indexterm>129 <para>This file contains rules that determine which user-defined handlers to130 call for each USB device, based on its vendor, id and other attributes.131 </para>132 </listitem>133 </varlistentry>134 135 <varlistentry id="hotplug-hotplug.d">136 <term><filename class="directory">/etc/hotplug.d</filename></term>137 <listitem>138 <indexterm zone="ch-system-hotplug hotplug-hotplug.d"><primary139 sortas="e-/etc/hotplug.d">/etc/hotplug.d</primary></indexterm>140 <para>This directory contains programs (or symlinks to them)141 that are interested in receiving hotplug events. E.g.,142 <application>udev</application> puts its symlink here during installation.143 </para>144 </listitem>145 </varlistentry>146 </variablelist>147 43 </sect2> 148 44 </sect1> -
chapter06/iana-etc.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Iana-Etc package provides data for network services and protocols.</para>14 13 15 14 <segmentedlist> … … 18 17 <seglistitem><seg>0.1 SBU</seg><seg>641 KB</seg></seglistitem> 19 18 </segmentedlist> 20 21 <para>The installation dependencies for Iana-Etc haven't been checked yet.</para>22 19 23 20 </sect2> … … 39 36 <sect2 id="contents-iana-etc" role="content"><title>Contents of Iana-Etc</title> 40 37 41 <segmentedlist> 42 <segtitle>Installed files</segtitle> 43 <seglistitem><seg>protocols, services</seg></seglistitem> 44 </segmentedlist> 45 46 <indexterm zone="ch-system-iana-etc"><primary sortas="e-/etc/protocols">/etc/protocols</primary></indexterm> 47 48 <indexterm zone="ch-system-iana-etc"><primary sortas="e-/etc/services">/etc/services</primary></indexterm> 38 <para>See testing</para> 49 39 50 40 </sect2> -
chapter06/inetutils.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Inetutils package contains programs for basic networking.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Inetutils installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils,24 Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Inetutils</title> 30 24 31 <para>Inetutils has issues with the Linux 2.6 kernel series - fix these isues 32 by applying the following patch:</para> 25 <para>Apply a patch patch:</para> 33 26 34 27 <screen><userinput>patch -Np1 -i ../inetutils-&inetutils-version;-kernel_headers-1.patch</userinput></screen> 35 28 36 <para>We are not going to install all the programs that come with Inetutils. 37 However, the Inetutils build system will insist on installing all the man 38 pages anyway. The following patch will correct this situation:</para> 29 <para>Apply another patch:</para> 39 30 40 31 <screen><userinput>patch -Np1 -i ../inetutils-&inetutils-version;-no_server_man_pages-1.patch</userinput></screen> … … 47 38 --disable-whois --disable-servers</userinput></screen> 48 39 49 <para>The meaning of the configure options:</para>50 51 <variablelist>52 <varlistentry>53 <term><parameter>--disable-logger</parameter></term>54 <listitem><para>This option55 prevents Inetutils from installing the <command>logger</command> program, which is used by56 scripts to pass messages to the System Log Daemon. We do not install it57 because Util-linux installs a better version later.</para></listitem>58 </varlistentry>59 60 <varlistentry>61 <term><parameter>--disable-syslogd</parameter></term>62 <listitem><para>This option63 prevents Inetutils from installing the System Log Daemon, which is64 installed with the Sysklogd package.</para></listitem>65 </varlistentry>66 67 <varlistentry>68 <term><parameter>--disable-whois</parameter></term>69 <listitem><para>This option disables70 the building of the Inetutils whois client, which is woefully out of date.71 Instructions for a better whois client are in the BLFS book.</para></listitem>72 </varlistentry>73 74 <varlistentry>75 <term><parameter>--disable-servers</parameter></term>76 <listitem><para>This disables the77 installation of the various network servers included as part of the Inetutils78 package. These servers are deemed not appropriate in a basic LFS system. Some79 are insecure by nature and are only considered safe on trusted networks. More80 information can be found at81 <ulink url="&blfs-root;view/stable/basicnet/inetutils.html"/>. Note that better82 replacements are available for many of these servers.</para></listitem>83 </varlistentry>84 </variablelist>85 86 40 <para>Compile the package:</para> 87 41 … … 92 46 <screen><userinput>make install</userinput></screen> 93 47 94 <para>Move the <command>ping</command> program to its FHS-compliant 95 place:</para> 48 <para>Move the <command>ping</command> program:</para> 96 49 97 50 <screen><userinput>mv /usr/bin/ping /bin</userinput></screen> … … 102 55 <sect2 id="contents-inetutils" role="content"><title>Contents of Inetutils</title> 103 56 104 <segmentedlist> 105 <segtitle>Installed programs</segtitle> 106 <seglistitem><seg>ftp, ping, rcp, rlogin, rsh, talk, telnet and tftp</seg></seglistitem> 107 </segmentedlist> 108 109 <variablelist><title>Short descriptions</title> 110 111 <varlistentry id="ftp"> 112 <term><command>ftp</command></term> 113 <listitem> 114 <indexterm zone="ch-system-inetutils ftp"><primary sortas="b-ftp">ftp</primary></indexterm> 115 <para>is the ARPANET file transfer program.</para> 116 </listitem> 117 </varlistentry> 118 119 <varlistentry id="ping"> 120 <term><command>ping</command></term> 121 <listitem> 122 <indexterm zone="ch-system-inetutils ping"><primary sortas="b-ping">ping</primary></indexterm> 123 <para>sends echo-request packets and reports how long the replies take.</para> 124 </listitem> 125 </varlistentry> 126 127 <varlistentry id="rcp"> 128 <term><command>rcp</command></term> 129 <listitem> 130 <indexterm zone="ch-system-inetutils rcp"><primary sortas="b-rcp">rcp</primary></indexterm> 131 <para>does remote file copy.</para> 132 </listitem> 133 </varlistentry> 134 135 <varlistentry id="rlogin"> 136 <term><command>rlogin</command></term> 137 <listitem> 138 <indexterm zone="ch-system-inetutils rlogin"><primary sortas="b-rlogin">rlogin</primary></indexterm> 139 <para>does remote login.</para> 140 </listitem> 141 </varlistentry> 142 143 <varlistentry id="rsh"> 144 <term><command>rsh</command></term> 145 <listitem> 146 <indexterm zone="ch-system-inetutils rsh"><primary sortas="b-rsh">rsh</primary></indexterm> 147 <para>runs a remote shell.</para> 148 </listitem> 149 </varlistentry> 150 151 <varlistentry id="talk"> 152 <term><command>talk</command></term> 153 <listitem> 154 <indexterm zone="ch-system-inetutils talk"><primary sortas="b-talk">talk</primary></indexterm> 155 <para>is used to chat up another user.</para> 156 </listitem> 157 </varlistentry> 158 159 <varlistentry id="telnet"> 160 <term><command>telnet</command></term> 161 <listitem> 162 <indexterm zone="ch-system-inetutils telnet"><primary sortas="b-telnet">telnet</primary></indexterm> 163 <para>is an interface to the TELNET protocol.</para> 164 </listitem> 165 </varlistentry> 166 167 <varlistentry id="tftp"> 168 <term><command>tftp</command></term> 169 <listitem> 170 <indexterm zone="ch-system-inetutils tftp"><primary sortas="b-tftp">tftp</primary></indexterm> 171 <para>is a trivial file transfer program.</para> 172 </listitem> 173 </varlistentry> 174 </variablelist> 57 <para>See testing</para> 175 58 176 59 </sect2> -
chapter06/introduction.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="introduction.html"?> 9 9 10 <para>In this chapter we enter the building site, and start 11 constructing our LFS system in earnest. That is, we chroot into 12 our temporary mini Linux system, create some auxiliary things, 13 and then start installing all the packages, one by one.</para> 14 15 <para>The installation of all this software is pretty straightforward, 16 and you will probably think it would be much shorter to give here 17 the generic installation instructions and explain in full only the 18 installation of those packages that require an alternate method. 19 Although we agree with that, we nevertheless choose to give the 20 full instructions for each and every package, simply to minimize 21 the possibilities for mistakes.</para> 22 23 <para>The key to learning what makes a Linux system work is to know 24 what each package is used for and why the user (or the system) needs it. 25 For this purpose for every installed package a summary of its content is 26 given followed by concise descriptions of each program and library it 27 installed.</para> 28 29 <para>If you plan to use compiler optimizations in this chapter, take a look at 30 the optimization hint at <ulink url="&hints-root;optimization.txt"/>. Compiler 31 optimizations can make a program run slightly faster, but they may also cause 32 compilation difficulties and even problems when running the program. If a 33 package refuses to compile when using optimization, try to compile it without 34 optimization and see if the problem goes away. Even if the package does compile 35 when using optimization, there is the risk it may have been compiled incorrectly 36 due to complex interactions between the code and build tools. In short, the 37 small potential gains achieved in using compiler optimization are generally 38 outweighed by the risk. First time builders of LFS are encouraged to build 39 without custom optimizations. Your system will still be very fast and very 40 stable at the same time.</para> 41 42 <para>The order in which packages are installed in this chapter has 43 to be strictly followed, to ensure that no program gets a path referring 44 to <filename class="directory">/tools</filename> hard-wired into it. 45 For the same reason, <emphasis>do not </emphasis> compile packages 46 in parallel. Compiling in parallel may save you some time (especially on 47 dual-CPU machines), but it could result in a program containing a 48 hard-wired path to <filename class="directory">/tools</filename>, 49 which will cause the program to stop working when that directory 50 is removed.</para> 51 52 <para>Before the installation instructions each installation page gives some 53 information about the package: a concise description of what it contains, 54 approximately how long it will take to build it, how much disk space it needs 55 during this building process, and which other packages it 56 needs in order to be built successfully. After the installation instructions 57 follows a list of programs and libraries that the package installs, together 58 with a series of short descriptions of these.</para> 59 60 <para>If you wish to keep track of which package installs what files, you may 61 want to use a package manager. For a general overview of package managers have 62 a look at <ulink url="&blfs-root;view/cvs/introduction/pkgmgt.html"/>. And for 63 a package management method specifically geared towards LFS see 64 <ulink url="&hints-root;more_control_and_pkg_man.txt"/>.</para> 10 <para>See testing</para> 65 11 66 12 </sect1> -
chapter06/iproute2.xml
raaa3260 r3f0c882 5 5 ]> 6 6 <sect1 id="ch-system-iproute2" xreflabel="IProute2" role="wrap"> 7 7 <title>Iproute2-&iproute2-version;</title> 8 8 <?dbhtml filename="iproute2.html"?> 9 9 10 <indexterm zone="ch-system-iproute2"> 10 11 <primary sortas="a-iproute2">iproute2</primary> … … 12 13 <sect2 role="package"> 13 14 <title/> 14 <para>The iproute2 package contains programs for basic and advanced 15 IPV4-based networking. 16 </para> 15 17 16 <segmentedlist> 18 17 <segtitle>&buildtime;</segtitle> … … 23 22 </seglistitem> 24 23 </segmentedlist> 25 <segmentedlist> 26 <segtitle>iproute2 installation depends on</segtitle> 27 <seglistitem> 28 <seg>sed, GCC, Glibc, Make, Linux-Headers</seg> 29 </seglistitem> 30 </segmentedlist> 24 31 25 </sect2> 26 32 27 <sect2 role="installation"> 33 28 <title>Installation of iproute2</title> 34 <para>The <command>arpd</command> binary included in this package is 35 dependent on Berkeley DB. As <command>arpd</command> is not a very 36 common requirement on a base Linux system we remove the dependency on 37 Berkeley DB by applying the patch using the command below. If you 38 need the <command>arpd</command> binary, then instructions for 39 compiling Berkeley DB can be found in the <ulink 40 url="http://www.linuxfromscratch.org/blfs/view/cvs/content/databases.html#db">BLFS book</ulink>. 41 </para> 29 30 <para>Apply a patch</para> 42 31 43 32 <screen><userinput>patch -Np1 -i ../iproute2-&iproute2-patch-version;-remove_db-1.patch</userinput></screen> … … 50 39 51 40 <para>Prepare iproute2 for compilation:</para> 52 <screen> <userinput>./configure </userinput></screen> 41 42 <screen><userinput>./configure </userinput></screen> 53 43 54 44 <para>Compile the package:</para> … … 56 46 <screen><userinput>make SBINDIR=/sbin</userinput></screen> 57 47 58 <variablelist>59 <varlistentry>60 <term><parameter>SBINDIR=/sbin</parameter></term>61 <listitem><para>This makes sure that the iproute2 binaries will install into62 <filename class="directory">/sbin</filename>. This is the correct63 location according to the FHS, as some of the iproute2 binaries are used64 in our bootscripts.</para>65 </listitem>66 </varlistentry>67 </variablelist>68 69 48 <para>Now install it:</para> 70 49 71 50 <screen><userinput>make install SBINDIR=/sbin</userinput></screen> 51 72 52 </sect2> 73 53 74 54 <sect2 id="contents-iproute2" role="content"> 75 <title>Contents of iproute2</title> 76 <segmentedlist> 77 <segtitle>Installed programs</segtitle> 78 <seglistitem> 79 <seg>ifstat, ip, nstat, routef, routel, rtmon, rtstat, ss, and tc.</seg> 80 </seglistitem> 81 </segmentedlist> 82 83 <variablelist> 84 <title>Short descriptions</title> 85 86 <varlistentry id="ifstat"> 87 <term> 88 <command>ifstat</command> 89 </term> 90 <listitem> 91 <indexterm zone="ch-system-iproute2 ifstat"> 92 <primary sortas="b-ifstat">ifstat</primary> 93 </indexterm> 94 <para>shows the interfaces statistics. Shows the amount of transmitted 95 and received packages by interface</para> 96 </listitem> 97 </varlistentry> 98 99 <varlistentry id="ip"> 100 <term> 101 <command>ip</command> 102 </term> 103 <listitem> 104 <indexterm zone="ch-system-iproute2 ip"> 105 <primary sortas="b-ip">ip</primary> 106 </indexterm> 107 108 <para>is the main executable. Has several different functions.</para> 109 110 <para><command>ip link <replaceable>[device]</replaceable></command> 111 allows you to look at the state of devices and to change it. 112 </para> 113 114 <para><command>ip addr</command> allows you to look at addresses and 115 their properties, add new addresses and to delete old ones. 116 </para> 117 118 <para><command>ip neighbor</command> allows you to look at neighbour 119 bindings and their properties, add new neighbour entries and to 120 delete old ones. 121 </para> 122 123 <para><command>ip rule</command> allows you to look at the routing 124 policies and change them. 125 </para> 126 127 <para><command>ip route</command> allows you to look at the routing 128 table and change routing table rules. 129 </para> 130 131 <para><command>ip tunnel</command> allows you to look at the ip 132 tunnels and their properties, and change them. 133 </para> 134 135 <para><command>ip maddr</command> allows you to look at the multicast 136 addresses and their properties, and change them. 137 </para> 138 139 <para><command>ip mroute</command> allows you to set, change, or 140 delete the mutlicast routing. 141 </para> 142 143 <para><command>ip monitor</command> allows you to monitor the state of 144 devices, addresses and routes continuously. 145 </para> 146 </listitem> 147 </varlistentry> 148 149 <varlistentry id="nstat"> 150 <term> 151 <command>nstat</command> 152 </term> 153 <listitem> 154 <indexterm zone="ch-system-iproute2 nstat"> 155 <primary sortas="b-nstat">nstat</primary> 156 </indexterm> 157 <para>Shows network statistics</para> 158 </listitem> 159 </varlistentry> 160 161 <varlistentry id="routef"> 162 <term> 163 <command>routef</command> 164 </term> 165 <listitem> 166 <indexterm zone="ch-system-iproute2 routef"> 167 <primary sortas="b-routef">routef</primary> 168 </indexterm> 169 <para>A component of ip route. This is for flushing the routing 170 tables. 171 </para> 172 </listitem> 173 </varlistentry> 174 175 <varlistentry id="routel"> 176 <term> 177 <command>routel</command> 178 </term> 179 <listitem> 180 <indexterm zone="ch-system-iproute2 routel"> 181 <primary sortas="b-routel">routel</primary> 182 </indexterm> 183 <para>A component of ip route. This is for listing the routing 184 tables. 185 </para> 186 </listitem> 187 </varlistentry> 188 189 <varlistentry id="rtmon"> 190 <term> 191 <command>rtmon</command> 192 </term> 193 <listitem> 194 <indexterm zone="ch-system-iproute2 rtmon"> 195 <primary sortas="b-rtmon">rtmon</primary> 196 </indexterm> 197 <para>Route Monitoring Utility.</para> 198 </listitem> 199 </varlistentry> 200 201 <varlistentry id="rtstat"> 202 <term> 203 <command>rtstat</command> 204 </term> 205 <listitem> 206 <indexterm zone="ch-system-iproute2 rtstat"> 207 <primary sortas="b-rtstat">rtstat</primary> 208 </indexterm> 209 <para>Route Status Utility</para> 210 </listitem> 211 </varlistentry> 212 213 <varlistentry id="ss"> 214 <term> 215 <command>ss</command> 216 </term> 217 <listitem> 218 <indexterm zone="ch-system-iproute2 ss"> 219 <primary sortas="b-ss">ss</primary> 220 </indexterm> 221 <para>Similar to the netstat command. Shows active connections.</para> 222 </listitem> 223 </varlistentry> 224 225 <varlistentry id="tc"> 226 <term> 227 <command>tc</command> 228 </term> 229 <listitem> 230 <indexterm zone="ch-system-iproute2 ss"> 231 <primary sortas="b-tc">tc</primary> 232 </indexterm> 233 <para>Traffic Controlling Executable. This is for QOS/COS 234 implementations. 235 </para> 236 237 <para><command>tc qdisc</command> allows you to setup the queueing 238 discipline. 239 </para> 240 241 <para><command>tc class</command> allows you to setup classes based on 242 the queuing discipline scheduling. 243 </para> 244 245 <para><command>tc estimator</command> allows you to estimate the 246 network flow into a network. 247 </para> 248 249 <para><command>tc filter</command> allows you to setup the QOS/COS 250 packet filtering. 251 </para> 252 253 <para><command>tc policy</command> allows you to setup the QOS/COS 254 policies. 255 </para> 256 </listitem> 257 </varlistentry> 258 </variablelist> 55 <title>Contents of iproute2</title> 56 57 <para>See testing</para> 58 259 59 </sect2> 260 60 </sect1> -
chapter06/kbd.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Kbd package contains key-table files and keyboard utilities.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Kbd installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Bison, Coreutils,24 Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 43 37 </sect2> 44 38 45 <!-- The "Configuring your keyboard" section has been moved to46 Chapter 7 and renamed to "Configuring Linux console" -->47 48 39 <sect2 id="contents-kbd" role="content"><title>Contents of Kbd</title> 49 40 50 <segmentedlist> 51 <segtitle>Installed programs</segtitle> 52 <seglistitem><seg>chvt, deallocvt, dumpkeys, 53 fgconsole, getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap, 54 mapscrn, openvt, psfaddtable (link to psfxtable), psfgettable (link to 55 psfxtable), psfstriptable (link to psfxtable), psfxtable, resizecons, 56 setfont, setkeycodes, setleds, setlogcons, setmetamode, setvesablank, 57 showconsolefont, showkey, unicode_start and unicode_stop</seg></seglistitem> 58 </segmentedlist> 59 60 <variablelist><title>Short descriptions</title> 61 62 <varlistentry id="chvt"> 63 <term><command>chvt</command></term> 64 <listitem> 65 <indexterm zone="ch-system-kbd chvt"><primary sortas="b-chvt">chvt</primary></indexterm> 66 <para>changes the foreground virtual terminal.</para> 67 </listitem> 68 </varlistentry> 69 70 <varlistentry id="deallocvt"> 71 <term><command>deallocvt</command></term> 72 <listitem> 73 <indexterm zone="ch-system-kbd deallocvt"><primary sortas="b-deallocvt">deallocvt</primary></indexterm> 74 <para>deallocates unused virtual terminals.</para> 75 </listitem> 76 </varlistentry> 77 78 <varlistentry id="dumpkeys"> 79 <term><command>dumpkeys</command></term> 80 <listitem> 81 <indexterm zone="ch-system-kbd dumpkeys"><primary sortas="b-dumpkeys">dumpkeys</primary></indexterm> 82 <para>dumps the keyboard translation tables.</para> 83 </listitem> 84 </varlistentry> 85 86 <varlistentry id="fgconsole"> 87 <term><command>fgconsole</command></term> 88 <listitem> 89 <indexterm zone="ch-system-kbd fgconsole"><primary sortas="b-fgconsole">fgconsole</primary></indexterm> 90 <para>prints the number of the active virtual terminal.</para> 91 </listitem> 92 </varlistentry> 93 94 <varlistentry id="getkeycodes"> 95 <term><command>getkeycodes</command></term> 96 <listitem> 97 <indexterm zone="ch-system-kbd getkeycodes"><primary sortas="b-getkeycodes">getkeycodes</primary></indexterm> 98 <para>prints the kernel scancode-to-keycode mapping table.</para> 99 </listitem> 100 </varlistentry> 101 102 <varlistentry id="getunimap"> 103 <term><command>getunimap</command></term> 104 <listitem> 105 <indexterm zone="ch-system-kbd getunimap"><primary sortas="b-getunimap">getunimap</primary></indexterm> 106 <para>prints the currently used unimap.</para> 107 </listitem> 108 </varlistentry> 109 110 <varlistentry id="kbd_mode"> 111 <term><command>kbd_mode</command></term> 112 <listitem> 113 <indexterm zone="ch-system-kbd kbd_mode"><primary sortas="b-kbd_mode">kbd_mode</primary></indexterm> 114 <para>reports or sets the keyboard mode.</para> 115 </listitem> 116 </varlistentry> 117 118 <varlistentry id="kbdrate"> 119 <term><command>kbdrate</command></term> 120 <listitem> 121 <indexterm zone="ch-system-kbd kbdrate"><primary sortas="b-kbdrate">kbdrate</primary></indexterm> 122 <para>sets the keyboard repeat and delay rates.</para> 123 </listitem> 124 </varlistentry> 125 126 <varlistentry id="loadkeys"> 127 <term><command>loadkeys</command></term> 128 <listitem> 129 <indexterm zone="ch-system-kbd loadkeys"><primary sortas="b-loadkeys">loadkeys</primary></indexterm> 130 <para>loads the keyboard translation tables.</para> 131 </listitem> 132 </varlistentry> 133 134 <varlistentry id="loadunimap"> 135 <term><command>loadunimap</command></term> 136 <listitem> 137 <indexterm zone="ch-system-kbd loadunimap"><primary sortas="b-loadunimap">loadunimap</primary></indexterm> 138 <para>loads the kernel unicode-to-font mapping table.</para> 139 </listitem> 140 </varlistentry> 141 142 <varlistentry id="mapscrn"> 143 <term><command>mapscrn</command></term> 144 <listitem> 145 <indexterm zone="ch-system-kbd mapscrn"><primary sortas="b-mapscrn">mapscrn</primary></indexterm> 146 <para>is an obsolete program that used to load 147 a user-defined output character mapping table into the console driver. This is 148 now done by <command>setfont</command>.</para> 149 </listitem> 150 </varlistentry> 151 152 <varlistentry id="openvt"> 153 <term><command>openvt</command></term> 154 <listitem> 155 <indexterm zone="ch-system-kbd openvt"><primary sortas="b-openvt">openvt</primary></indexterm> 156 <para>starts a program on a new virtual terminal (VT).</para> 157 </listitem> 158 </varlistentry> 159 160 <varlistentry id="psf"> 161 <term><command>psf*</command></term> 162 <listitem> 163 <indexterm zone="ch-system-kbd psf"><primary sortas="b-psf*">psf*</primary></indexterm> 164 <para>are a set of tools for handling Unicode character tables for console fonts.</para> 165 </listitem> 166 </varlistentry> 167 168 <varlistentry id="resizecons"> 169 <term><command>resizecons</command></term> 170 <listitem> 171 <indexterm zone="ch-system-kbd resizecons"><primary sortas="b-resizecons">resizecons</primary></indexterm> 172 <para>changes the kernel idea of the console size.</para> 173 </listitem> 174 </varlistentry> 175 176 <varlistentry id="setfont"> 177 <term><command>setfont</command></term> 178 <listitem> 179 <indexterm zone="ch-system-kbd setfont"><primary sortas="b-setfont">setfont</primary></indexterm> 180 <para>lets you change the EGA/VGA fonts on the console.</para> 181 </listitem> 182 </varlistentry> 183 184 <varlistentry id="setkeycodes"> 185 <term><command>setkeycodes</command></term> 186 <listitem> 187 <indexterm zone="ch-system-kbd setkeycodes"><primary sortas="b-setkeycodes">setkeycodes</primary></indexterm> 188 <para>loads kernel scancode-to-keycode 189 mapping table entries, useful if you have some unusual keys on your keyboard.</para> 190 </listitem> 191 </varlistentry> 192 193 <varlistentry id="setleds"> 194 <term><command>setleds</command></term> 195 <listitem> 196 <indexterm zone="ch-system-kbd setleds"><primary sortas="b-setleds">setleds</primary></indexterm> 197 <para>sets the keyboard flags and LEDs. Many 198 people find it useful to have <quote>Num Lock</quote> on by default, <command>setleds +num</command> achieves this.</para> 199 </listitem> 200 </varlistentry> 201 202 <varlistentry id="setlogcons"> 203 <term><command>setlogcons</command></term> 204 <listitem> 205 <indexterm zone="ch-system-kbd setlogcons"><primary sortas="b-setlogcons">setlogcons</primary></indexterm> 206 <para>sends kernel messages to the console.</para> 207 </listitem> 208 </varlistentry> 209 210 <varlistentry id="setmetamode"> 211 <term><command>setmetamode</command></term> 212 <listitem> 213 <indexterm zone="ch-system-kbd setmetamode"><primary sortas="b-setmetamode">setmetamode</primary></indexterm> 214 <para>defines the keyboard meta-key handling.</para> 215 </listitem> 216 </varlistentry> 217 218 <varlistentry id="setvesablank"> 219 <term><command>setvesablank</command></term> 220 <listitem> 221 <indexterm zone="ch-system-kbd setvesablank"><primary sortas="b-setvesablank">setvesablank</primary></indexterm> 222 <para>lets you fiddle with the built-in 223 hardware screensaver (no toasters, just a blank screen).</para> 224 </listitem> 225 </varlistentry> 226 227 <varlistentry id="showconsolefont"> 228 <term><command>showconsolefont</command></term> 229 <listitem> 230 <indexterm zone="ch-system-kbd showconsolefont"><primary sortas="b-showconsolefont">showconsolefont</primary></indexterm> 231 <para>shows the current EGA/VGA console screen font.</para> 232 </listitem> 233 </varlistentry> 234 235 <varlistentry id="showkey"> 236 <term><command>showkey</command></term> 237 <listitem> 238 <indexterm zone="ch-system-kbd showkey"><primary sortas="b-showkey">showkey</primary></indexterm> 239 <para>reports the scancodes and keycodes and 240 ASCII codes of the keys pressed on the keyboard.</para> 241 </listitem> 242 </varlistentry> 243 244 <varlistentry id="unicode_start"> 245 <term><command>unicode_start</command></term> 246 <listitem> 247 <indexterm zone="ch-system-kbd unicode_start"><primary sortas="b-unicode_start">unicode_start</primary></indexterm> 248 <para>puts the keyboard and console in UNICODE mode. Never use it on LFS, 249 because applications are not configured to support UNICODE.</para> 250 </listitem> 251 </varlistentry> 252 253 <varlistentry id="unicode_stop"> 254 <term><command>unicode_stop</command></term> 255 <listitem> 256 <indexterm zone="ch-system-kbd unicode_stop"><primary sortas="b-unicode_stop">unicode_stop</primary></indexterm> 257 <para>reverts keyboard and console from UNICODE mode.</para> 258 </listitem> 259 </varlistentry> 260 </variablelist> 41 <para>See testing</para> 261 42 262 43 </sect2> -
chapter06/kernfs.xml
raaa3260 r3f0c882 5 5 <?dbhtml filename="kernfs.html"?> 6 6 7 <para>Various file systems exported by the kernel don't exist at all on your 8 hard drive, but are used to communicate things to and from the kernel itself.</para> 9 10 <para>Begin by creating directories onto which the file systems will be mounted:</para> 7 <para>Create the dirs:</para> 11 8 12 9 <screen><userinput>mkdir -p $LFS/{proc,sys}</userinput></screen> … … 17 14 mount -t sysfs sysfs $LFS/sys</userinput></screen> 18 15 19 <para>Remember that if for any reason you stop working on your LFS, and start 20 again later, it's important to check that these file systems are mounted again 21 before entering the chroot environment, otherwise problems could occur.</para> 22 23 <para>Shortly, we'll be mounting a few more file systems from within the chroot 24 environment. To keep the host up-to-date, we'll do a <quote>fake mount</quote> 25 for each of these now:</para> 16 <para>Do some <quote>fake mounts</quote>:</para> 26 17 27 18 <screen><userinput>mount -f -t ramfs ramfs $LFS/dev -
chapter06/less.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Less package contains a text file viewer.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Less installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 32 26 33 27 <screen><userinput>./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc</userinput></screen> 34 35 <para>The meaning of the configure option:</para>36 37 <variablelist>38 <varlistentry>39 <term><parameter>--sysconfdir=/etc</parameter></term>40 <listitem><para>This option tells the programs created by the package to look in41 <filename class="directory">/etc</filename> for their configuration files.</para></listitem>42 </varlistentry>43 </variablelist>44 28 45 29 <para>Compile the package:</para> … … 55 39 <sect2 id="contents-less" role="content"><title>Contents of Less</title> 56 40 57 <segmentedlist> 58 <segtitle>Installed programs</segtitle> 59 <seglistitem><seg>less, lessecho and lesskey</seg></seglistitem> 60 </segmentedlist> 61 62 <variablelist><title>Short descriptions</title> 63 64 <varlistentry id="less"> 65 <term><command>less</command></term> 66 <listitem> 67 <indexterm zone="ch-system-less less"><primary sortas="b-less">less</primary></indexterm> 68 <para>is a file viewer or pager. It displays the contents of the given file, letting you 69 scroll around, find strings, and jump to marks.</para> 70 </listitem> 71 </varlistentry> 72 73 <varlistentry id="lessecho"> 74 <term><command>lessecho</command></term> 75 <listitem> 76 <indexterm zone="ch-system-less lessecho"><primary sortas="b-lessecho">lessecho</primary></indexterm> 77 <para>is needed to expand meta-characters, such as * and ?, in filenames on Unix systems.</para> 78 </listitem> 79 </varlistentry> 80 81 <varlistentry id="lesskey"> 82 <term><command>lesskey</command></term> 83 <listitem> 84 <indexterm zone="ch-system-less lesskey"><primary sortas="b-lesskey">lesskey</primary></indexterm> 85 <para>is used to specify the key bindings for <command>less</command>.</para> 86 </listitem> 87 </varlistentry> 88 </variablelist> 41 <para>See testing</para> 89 42 90 43 </sect2> -
chapter06/libol.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Libol package contains support libraries needed by Syslog-ng.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Libol installation depends on</segtitle>23 <seglistitem><seg>Unchecked</seg></seglistitem>24 </segmentedlist>25 20 </sect2> 26 21 … … 45 40 <sect2 id="contents-libol" role="content"><title>Contents of Libol</title> 46 41 47 <segmentedlist> 48 <segtitle>Installed programs</segtitle> 49 <seglistitem><seg>Unchecked</seg></seglistitem> 50 </segmentedlist> 51 52 <!-- 53 <variablelist><title>Short descriptions</title> 54 55 <varlistentry id="klogd"> 56 <term><command>klogd</command></term> 57 <listitem> 58 <indexterm zone="ch-system-sysklogd klogd"><primary sortas="b-klogd">klogd</primary></indexterm> 59 <para>is a system daemon for intercepting and logging kernel messages.</para> 60 </listitem> 61 </varlistentry> 62 63 <varlistentry id="syslogd"> 64 <term><command>syslogd</command></term> 65 <listitem> 66 <indexterm zone="ch-system-sysklogd syslogd"><primary sortas="b-syslogd">syslogd</primary></indexterm> 67 <para>logs the messages that system programs 68 offer for logging. Every logged message contains at least a date stamp and a 69 hostname, and normally the program's name too, but that depends on how 70 trusting the logging daemon is told to be.</para> 71 </listitem> 72 </varlistentry> 73 </variablelist> 74 --> 42 <para>See testing</para> 75 43 76 44 </sect2> -
chapter06/libtool.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Libtool package contains the GNU generic library support script.14 It wraps the complexity of using shared libraries in a consistent, portable15 interface.</para>16 13 17 14 <segmentedlist> … … 21 18 </segmentedlist> 22 19 23 <segmentedlist>24 <segtitle>Libtool installation depends on</segtitle>25 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,26 GCC, Glibc, Grep, Make, Sed</seg></seglistitem>27 </segmentedlist>28 20 </sect2> 29 21 … … 51 43 <sect2 id="contents-libtool" role="content"><title>Contents of Libtool</title> 52 44 53 <segmentedlist> 54 <segtitle>Installed programs</segtitle> 55 <segtitle>Installed libraries</segtitle> 56 <seglistitem><seg>libtool and libtoolize</seg><seg>libltdl.[a,so]</seg></seglistitem> 57 </segmentedlist> 58 59 <variablelist><title>Short descriptions</title> 60 61 <varlistentry id="libtool"> 62 <term><command>libtool</command></term> 63 <listitem> 64 <indexterm zone="ch-system-libtool libtool"><primary sortas="b-libtool">libtool</primary></indexterm> 65 <para>provides generalized library-building support services.</para> 66 </listitem> 67 </varlistentry> 68 69 <varlistentry id="libtoolize"> 70 <term><command>libtoolize</command></term> 71 <listitem> 72 <indexterm zone="ch-system-libtool libtoolize"><primary sortas="b-libtoolize">libtoolize</primary></indexterm> 73 <para>provides a standard way to add libtool support to a package.</para> 74 </listitem> 75 </varlistentry> 76 77 <varlistentry id="libltdl"> 78 <term><filename class="libraryfile">libltdl</filename></term> 79 <listitem> 80 <indexterm zone="ch-system-libtool libltdl"><primary sortas="c-libltdl">libltdl</primary></indexterm> 81 <para>hides the various difficulties of dlopening libraries.</para> 82 </listitem> 83 </varlistentry> 84 </variablelist> 45 <para>See testing</para> 85 46 86 47 </sect2> -
chapter06/linux-libc-headers.xml
raaa3260 r3f0c882 25 25 <title>Installation of Linux-Libc-Headers</title> 26 26 27 <para>For years it has been common practice to use so-called <quote>raw</quote>28 kernel headers (straight from a kernel tarball) in <filename class="directory">/usr/include</filename>, but over the29 last few years, the kernel developers have taken a strong stance that such30 things should not be done. Thus was born the linux-libc-headers project,31 designed to maintain an API stable version of the Linux headers.</para>32 33 27 <para>Install the header files:</para> 34 28 … … 50 44 <sect2 id="contents-linux-libc-headers" role="content"><title>Contents of Linux-Libc-Headers</title> 51 45 52 <segmentedlist> 53 <segtitle>Installed headers</segtitle> 54 <seglistitem><seg>/usr/include/{asm,linux}/*.h</seg></seglistitem> 55 </segmentedlist> 56 57 <variablelist><title>Short description</title> 58 59 <varlistentry id="linux-libc-headers"> 60 <term><filename class="headerfile">/usr/include/{asm,linux}/*.h</filename></term> 61 <listitem> 62 <indexterm zone="ch-system-linux-libc-headers linux-libc-headers"><primary sortas="e-/usr/include/{asm,linux}/*.h">/usr/include/{asm,linux}/*.h</primary></indexterm> 63 <para>This files are the Linux headers API.</para> 64 </listitem> 65 </varlistentry> 66 </variablelist> 46 <para>See testing</para> 67 47 68 48 </sect2> -
chapter06/m4.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The M4 package contains a macro processor.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>M4 installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils, GCC,24 Gettext, Glibc, Grep, Make, Perl, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-m4" role="content"><title>Contents of M4</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed program</segtitle> 53 <seglistitem><seg>m4</seg></seglistitem> 54 </segmentedlist> 55 56 <variablelist><title>Short descriptions</title> 57 58 <varlistentry id="m4"> 59 <term><command>m4</command></term> 60 <listitem> 61 <indexterm zone="ch-system-m4 m4"><primary sortas="b-m4">m4</primary></indexterm> 62 <para>copies the given files 63 while expanding the macros that they contain. These macros are either built-in 64 or user-defined and can take any number of arguments. Besides just doing macro 65 expansion, <command>m4</command> has built-in functions for including named files, running Unix 66 commands, doing integer arithmetic, manipulating text in various ways, 67 recursion, and so on. The <command>m4</command> program can be used either as a front-end to a 68 compiler or as a macro processor in its own right.</para> 69 </listitem> 70 </varlistentry> 71 </variablelist> 45 <para>See testing</para> 72 46 73 47 </sect2> -
chapter06/make.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Make package contains a program for compiling large packages.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Make installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Gettext, Glibc, Grep, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-make" role="content"><title>Contents of Make</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed program</segtitle> 53 <seglistitem><seg>make</seg></seglistitem> 54 </segmentedlist> 55 56 <variablelist><title>Short descriptions</title> 57 58 <varlistentry id="make"> 59 <term><command>make</command></term> 60 <listitem> 61 <indexterm zone="ch-system-make make"><primary sortas="b-make">make</primary></indexterm> 62 <para>automatically determines which pieces of a large package need to be 63 recompiled, and then issues the relevant commands.</para> 64 </listitem> 65 </varlistentry> 66 </variablelist> 45 <para>See testing</para> 67 46 68 47 </sect2> -
chapter06/man-pages.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Man-pages package contains over 1200 manual pages.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>For its installation Man-pages depends on</segtitle>23 <seglistitem><seg>Bash, Coreutils, Make</seg></seglistitem>24 </segmentedlist>25 20 </sect2> 26 21 … … 37 32 <sect2 id="contents-manpages" role="content"><title>Contents of Man-pages</title> 38 33 39 <segmentedlist> 40 <segtitle>Installed files</segtitle> 41 <seglistitem><seg>various manual pages</seg></seglistitem> 42 </segmentedlist> 43 44 <variablelist><title>Short descriptions</title> 45 46 <varlistentry id="manual-pages"> 47 <term><emphasis>manual pages</emphasis></term> 48 <listitem> 49 <indexterm zone="ch-system-man-pages manual-pages"><primary sortas="e-manual-pages">manual pages</primary></indexterm> 50 <para>Examples of provided manual pages are the pages describing all the C and 51 C++ functions, important device files, and important configuration files.</para> 52 </listitem> 53 </varlistentry> 54 </variablelist> 34 <para>See testing</para> 55 35 56 36 </sect2> -
chapter06/man.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Man package contains programs for finding and viewing manual pages.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Man installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Gawk, GCC,24 Glibc, Grep, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Man</title> 30 24 31 <para>We'll make three adjustments to the sources of Man.</para> 32 33 <para>The first is a patch which allows Man to work better with recent releases 34 of Groff. In particular, man pages will now display using the full terminal 35 width instead of being limited to 80 characters:</para> 25 <para>Apply a patch:</para> 36 26 37 27 <screen><userinput>patch -Np1 -i ../man-&man-version;-80cols-1.patch</userinput></screen> 38 28 39 <para>The second is a sed substitution to add the <parameter>-R</parameter> 40 switch to the <emphasis>PAGER</emphasis> variable so that escape sequences are 41 properly handled by Less:</para> 29 <para>Issue a sed substitution:</para> 42 30 43 31 <screen><userinput>sed -i 's@-is@&R@g' configure</userinput></screen> 44 32 45 <para>The third is also a sed substitution to comment out the <quote>MANPATH 46 /usr/man</quote> line in the <filename>man.conf</filename> file to prevent 47 redundant results when using programs such as <command>whatis</command>:</para> 33 <para>Issue another sed substitution:</para> 48 34 49 35 <screen><userinput>sed -i 's@MANPATH./usr/man@#&@g' src/man.conf.in</userinput></screen> … … 52 38 53 39 <screen><userinput>./configure -confdir=/etc</userinput></screen> 54 55 <para>The meaning of the configure options:</para>56 57 <variablelist>58 <varlistentry>59 <term><parameter>-confdir=/etc</parameter></term>60 <listitem><para>This tells the61 <command>man</command> program to look for the <filename>man.conf</filename>62 configuration file in the <filename class="directory">/etc</filename> directory.</para></listitem>63 </varlistentry>64 </variablelist>65 40 66 41 <para>Compile the package:</para> … … 72 47 <screen><userinput>make install</userinput></screen> 73 48 74 <note><para>If you wish to disable SGR (Select Graphic Rendition) escape sequences, you should edit the75 <filename>man.conf</filename> file and add the <parameter>-c</parameter> switch76 to NROFF.</para></note>77 78 <para>If your character set uses 8-bit characters, search for the line79 beginning with <quote>NROFF</quote> in <filename>/etc/man.conf</filename>, and verify that it coincides80 with the following:</para>81 82 <screen>NROFF /usr/bin/nroff -Tlatin1 -mandoc</screen>83 84 <para>Note that you should use <quote>latin1</quote> even if it is not the character set85 of your locale. The reason is that,86 according to the specification, <application>groff</application> has87 no means of typesetting characters outside ISO-8859-188 without some strange escape codes, and localized manual89 pages are therefore really a hack. When formatting manual pages,90 <application>groff</application> thinks that they are in the ISO-8859-191 encoding and this <parameter>-Tlatin1</parameter> switch tells92 <application>groff</application> to use the same encoding for output.93 Since <application>groff</application> does no recoding of input characters,94 the formatted result is really in the same encoding as input (although95 <application>groff</application> doesn't know that it is not ISO-8859-1)96 and therefore it is usable as the input for a pager.</para>97 98 <para>Of course, this hack does not solve the problem of non-working99 <command>man2dvi</command> program for localized manual100 pages in non-ISO-8859-1 locales.101 Also, it does not work at all with multibyte character sets.102 The first problem does not have a solution currently. The second103 one is not of a concern because the LFS installation does not support104 multibyte character sets properly anyway. You may want to look at105 internationalization related hints, though.</para>106 107 <para>You may want to also take a look at the BLFS page at108 <ulink url="&blfs-root;view/cvs/postlfs/compressdoc.html"/> which deals with109 formatting and compression issues for man pages.</para>110 111 49 </sect2> 112 50 … … 114 52 <sect2 id="contents-man" role="content"><title>Contents of Man</title> 115 53 116 <segmentedlist> 117 <segtitle>Installed programs</segtitle> 118 <seglistitem><seg>apropos, makewhatis, man, 119 man2dvi, man2html and whatis</seg></seglistitem> 120 </segmentedlist> 121 122 <variablelist><title>Short descriptions</title> 123 124 <varlistentry id="apropos"> 125 <term><command>apropos</command></term> 126 <listitem> 127 <indexterm zone="ch-system-man apropos"><primary sortas="b-apropos">apropos</primary></indexterm> 128 <para>searches the whatis database and displays 129 the short descriptions of system commands that contain a given string.</para> 130 </listitem> 131 </varlistentry> 132 133 <varlistentry id="makewhatis"> 134 <term><command>makewhatis</command></term> 135 <listitem> 136 <indexterm zone="ch-system-man makewhatis"><primary sortas="b-makewhatis">makewhatis</primary></indexterm> 137 <para>builds the whatis database. It reads 138 all the manual pages in the manpath and for each page writes the name and a 139 short description in the whatis database.</para> 140 </listitem> 141 </varlistentry> 142 143 <varlistentry id="man"> 144 <term><command>man</command></term> 145 <listitem> 146 <indexterm zone="ch-system-man man"><primary sortas="b-man">man</primary></indexterm> 147 <para>formats and displays the requested on-line manual page.</para> 148 </listitem> 149 </varlistentry> 150 151 <varlistentry id="man2dvi"> 152 <term><command>man2dvi</command></term> 153 <listitem> 154 <indexterm zone="ch-system-man man2dvi"><primary sortas="b-man2dvi">man2dvi</primary></indexterm> 155 <para>converts a manual page into dvi format.</para> 156 </listitem> 157 </varlistentry> 158 159 <varlistentry id="man2html"> 160 <term><command>man2html</command></term> 161 <listitem> 162 <indexterm zone="ch-system-man man2html"><primary sortas="b-man2html">man2html</primary></indexterm> 163 <para>converts a manual page into html.</para> 164 </listitem> 165 </varlistentry> 166 167 <varlistentry id="whatis"> 168 <term><command>whatis</command></term> 169 <listitem> 170 <indexterm zone="ch-system-man whatis"><primary sortas="b-whatis">whatis</primary></indexterm> 171 <para>searches the whatis database and displays the short descriptions of system 172 commands that contain the given keyword as a separate word.</para> 173 </listitem> 174 </varlistentry> 175 </variablelist> 54 <para>See testing</para> 176 55 177 56 </sect2> -
chapter06/mktemp.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Mktemp package contains programs used to create secure temporary14 files in shell scripts.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <para>The installation dependencies for Mktemp haven't been checked yet.</para>23 24 20 </sect2> 25 21 … … 27 23 <title>Installation of Mktemp</title> 28 24 29 <para>Many scripts still use the deprecated <command>tempfile</command> 30 program, which has functionality much the same as <command>mktemp</command>. 31 Patch Mktemp to include a <command>tempfile</command> wrapper:</para> 25 <para>Apply a patch:</para> 32 26 33 27 <screen><userinput>patch -Np1 -i ../mktemp-&mktemp-version;-add_tempfile-1.patch</userinput></screen> … … 36 30 37 31 <screen><userinput>./configure --prefix=/usr --with-libc</userinput></screen> 38 39 <para>The meaning of the configure option:</para>40 41 <variablelist>42 <varlistentry>43 <term><parameter>--with-libc</parameter></term>44 <listitem><para>This causes the <command>mktemp</command> program to45 use the <emphasis>mkstemp</emphasis> and <emphasis>mkdtemp</emphasis>46 functions from the system C library.</para></listitem>47 </varlistentry>48 </variablelist>49 32 50 33 <para>Compile the package:</para> … … 62 45 <sect2 id="contents-mktemp" role="content"><title>Contents of Mktemp</title> 63 46 64 <segmentedlist> 65 <segtitle>Installed programs</segtitle> 66 <seglistitem><seg>mktemp, tempfile</seg></seglistitem> 67 </segmentedlist> 68 69 <variablelist><title>Short descriptions</title> 70 71 <varlistentry id="mktemp"> 72 <term><command>mktemp</command></term> 73 <listitem> 74 <indexterm zone="ch-system-mktemp mktemp"><primary sortas="b-mktemp">mktemp</primary></indexterm> 75 <para>creates temporary files in a secure manner. It is used in scripts.</para> 76 </listitem> 77 </varlistentry> 78 79 <varlistentry id="tempfile"> 80 <term><command>tempfile</command></term> 81 <listitem> 82 <indexterm zone="ch-system-mktemp tempfile"><primary sortas="b-tempfile">tempfile</primary></indexterm> 83 <para>creates temporary files in a less secure manner than 84 <command>mktemp</command>. It is installed for backwards-compatibility.</para> 85 </listitem> 86 </varlistentry> 87 </variablelist> 47 <para>See testing</para> 88 48 89 49 </sect2> -
chapter06/module-init-tools.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Module-Init-Tools package contains programs for handling kernel14 modules in Linux kernels greater than or equal to version 2.5.47.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Module-Init-Tools installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Bison,25 Coreutils, Diffutils, Flex, GCC, Glibc, Grep, M4, Make, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 50 43 <sect2 id="contents-module-init-tools" role="content"><title>Contents of Module-Init-Tools</title> 51 44 52 <segmentedlist> 53 <segtitle>Installed programs</segtitle> 54 <seglistitem><seg>depmod, genksyms, insmod, 55 insmod_ksymoops_clean, kallsyms (link to insmod), kernelversion, ksyms 56 (link to insmod), lsmod (link to insmod), modinfo, modprobe (link to insmod) 57 and rmmod (link to insmod)</seg></seglistitem> 58 </segmentedlist> 59 60 <variablelist><title>Short descriptions</title> 61 62 <varlistentry id="depmod"> 63 <term><command>depmod</command></term> 64 <listitem> 65 <indexterm zone="ch-system-module-init-tools depmod"><primary sortas="b-depmod">depmod</primary></indexterm> 66 <para>creates a dependency file, based on the 67 symbols it finds in the existing set of modules. This dependency file is used 68 by modprobe to automatically load the required modules.</para> 69 </listitem> 70 </varlistentry> 71 72 <varlistentry id="genksyms"> 73 <term><command>genksyms</command></term> 74 <listitem> 75 <indexterm zone="ch-system-module-init-tools genksyms"><primary sortas="b-genksyms">genksyms</primary></indexterm> 76 <para>generates symbol version information.</para> 77 </listitem> 78 </varlistentry> 79 80 <varlistentry id="insmod"> 81 <term><command>insmod</command></term> 82 <listitem> 83 <indexterm zone="ch-system-module-init-tools insmod"><primary sortas="b-insmod">insmod</primary></indexterm> 84 <para>installs a loadable module in the running kernel.</para> 85 </listitem> 86 </varlistentry> 87 88 <varlistentry id="insmod_ksymoops_clean"> 89 <term><command>insmod_ksymoops_clean</command></term> 90 <listitem> 91 <indexterm zone="ch-system-module-init-tools insmod_ksymoops_clean"><primary sortas="b-insmod_ksymoops_clean">insmod_ksymoops_clean</primary></indexterm> 92 <para>deletes saved ksyms and modules not accessed for two days.</para> 93 </listitem> 94 </varlistentry> 95 96 <varlistentry id="kallsyms"> 97 <term><command>kallsyms</command></term> 98 <listitem> 99 <indexterm zone="ch-system-module-init-tools kallsyms"><primary sortas="b-kallsyms">kallsyms</primary></indexterm> 100 <para>extracts all kernel symbols for debugging.</para> 101 </listitem> 102 </varlistentry> 103 104 <varlistentry id="kernelversion"> 105 <term><command>kernelversion</command></term> 106 <listitem> 107 <indexterm zone="ch-system-module-init-tools kernelversion"><primary sortas="b-kernelversion">kernelversion</primary></indexterm> 108 <para>reports the major version of the running kernel.</para> 109 </listitem> 110 </varlistentry> 111 112 <varlistentry id="ksyms"> 113 <term><command>ksyms</command></term> 114 <listitem> 115 <indexterm zone="ch-system-module-init-tools ksyms"><primary sortas="b-ksyms">ksyms</primary></indexterm> 116 <para>displays exported kernel symbols.</para> 117 </listitem> 118 </varlistentry> 119 120 <varlistentry id="lsmod"> 121 <term><command>lsmod</command></term> 122 <listitem> 123 <indexterm zone="ch-system-module-init-tools lsmod"><primary sortas="b-lsmod">lsmod</primary></indexterm> 124 <para>shows which modules are loaded.</para> 125 </listitem> 126 </varlistentry> 127 128 <varlistentry id="modinfo"> 129 <term><command>modinfo</command></term> 130 <listitem> 131 <indexterm zone="ch-system-module-init-tools modinfo"><primary sortas="b-modinfo">modinfo</primary></indexterm> 132 <para>examines an object file associated with 133 a kernel module and displays any information that it can glean.</para> 134 </listitem> 135 </varlistentry> 136 137 <varlistentry id="modprobe"> 138 <term><command>modprobe</command></term> 139 <listitem> 140 <indexterm zone="ch-system-module-init-tools modprobe"><primary sortas="b-modprobe">modprobe</primary></indexterm> 141 <para>uses a dependency file, created by 142 <command>depmod</command>, to automatically load the relevant modules.</para> 143 </listitem> 144 </varlistentry> 145 146 <varlistentry id="rmmod"> 147 <term><command>rmmod</command></term> 148 <listitem> 149 <indexterm zone="ch-system-module-init-tools rmmod"><primary sortas="b-rmmod">rmmod</primary></indexterm> 150 <para>unloads modules from the running kernel.</para> 151 </listitem> 152 </varlistentry> 153 </variablelist> 45 <para>See testing</para> 154 46 155 47 </sect2> -
chapter06/ncurses.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Ncurses package contains libraries for terminal-independent14 handling of character screens.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Ncurses installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,25 Gawk, GCC, Glibc, Grep, Make, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 46 39 <screen><userinput>chmod 755 /usr/lib/*.&ncurses-version;</userinput></screen> 47 40 48 <para>Now fix a library that shouldn't be executable:</para>41 <para>Now fix a library:</para> 49 42 50 43 <screen><userinput>chmod 644 /usr/lib/libncurses++.a</userinput></screen> 51 44 52 <para>Move the libraries to the <filename class="directory">/lib</filename> directory, 53 where they're expected to reside:</para> 45 <para>Move the libraries to the <filename class="directory">/lib</filename> directory:</para> 54 46 55 47 <screen><userinput>mv /usr/lib/libncurses.so.5* /lib</userinput></screen> 56 48 57 <para>Because the libraries have been moved, a few symlinks are pointing to 58 non-existent files. Recreate those symlinks:</para> 49 <para>Recreate some symlinks:</para> 59 50 60 51 <screen><userinput>ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so … … 65 56 <sect2 id="contents-ncurses" role="content"><title>Contents of Ncurses</title> 66 57 67 <segmentedlist> 68 <segtitle>Installed programs</segtitle> 69 <segtitle>Installed libraries</segtitle> 70 <seglistitem><seg>captoinfo (link to tic), clear, infocmp, infotocap (link to tic), 71 reset (link to tset), tack, tic, toe, tput and tset</seg> 72 <seg>libcurses.[a,so] (link to libncurses.[a,so]), libform.[a,so], libmenu.[a,so], 73 libncurses++.a, libncurses.[a,so], libpanel.[a,so]</seg></seglistitem> 74 </segmentedlist> 75 76 <variablelist><title>Short descriptions</title> 77 78 <varlistentry id="captoinfo"> 79 <term><command>captoinfo</command></term> 80 <listitem> 81 <indexterm zone="ch-system-ncurses captoinfo"><primary sortas="b-captoinfo">captoinfo</primary></indexterm> 82 <para>converts a termcap description into a terminfo description.</para> 83 </listitem> 84 </varlistentry> 85 86 <varlistentry id="clear"> 87 <term><command>clear</command></term> 88 <listitem> 89 <indexterm zone="ch-system-ncurses clear"><primary sortas="b-clear">clear</primary></indexterm> 90 <para>clears the screen, if this is possible.</para> 91 </listitem> 92 </varlistentry> 93 94 <varlistentry id="infocmp"> 95 <term><command>infocmp</command></term> 96 <listitem> 97 <indexterm zone="ch-system-ncurses infocmp"><primary sortas="b-infocmp">infocmp</primary></indexterm> 98 <para>compares or prints out terminfo descriptions.</para> 99 </listitem> 100 </varlistentry> 101 102 <varlistentry id="infotocap"> 103 <term><command>infotocap</command></term> 104 <listitem> 105 <indexterm zone="ch-system-ncurses infotocap"><primary sortas="b-infotocap">infotocap</primary></indexterm> 106 <para>converts a terminfo description into a termcap description.</para> 107 </listitem> 108 </varlistentry> 109 110 <varlistentry id="reset"> 111 <term><command>reset</command></term> 112 <listitem> 113 <indexterm zone="ch-system-ncurses reset"><primary sortas="b-reset">reset</primary></indexterm> 114 <para>reinitializes a terminal to its default values.</para> 115 </listitem> 116 </varlistentry> 117 118 <varlistentry id="tack"> 119 <term><command>tack</command></term> 120 <listitem> 121 <indexterm zone="ch-system-ncurses tack"><primary sortas="b-tack">tack</primary></indexterm> 122 <para>is the terminfo action checker. It is mainly 123 used to test the correctness of an entry in the terminfo database.</para> 124 </listitem> 125 </varlistentry> 126 127 <varlistentry id="tic"> 128 <term><command>tic</command></term> 129 <listitem> 130 <indexterm zone="ch-system-ncurses tic"><primary sortas="b-tic">tic</primary></indexterm> 131 <para>is the terminfo entry-description compiler. 132 It translates a terminfo file from source format into the binary format needed 133 for the ncurses library routines. A terminfo file contains information on the 134 capabilities of a certain terminal.</para> 135 </listitem> 136 </varlistentry> 137 138 <varlistentry id="toe"> 139 <term><command>toe</command></term> 140 <listitem> 141 <indexterm zone="ch-system-ncurses toe"><primary sortas="b-toe">toe</primary></indexterm> 142 <para>lists all available terminal types, for each 143 giving its primary name and its description.</para> 144 </listitem> 145 </varlistentry> 146 147 <varlistentry id="tput"> 148 <term><command>tput</command></term> 149 <listitem> 150 <indexterm zone="ch-system-ncurses tput"><primary sortas="b-tput">tput</primary></indexterm> 151 <para>makes the values of terminal-dependent 152 capabilities available to the shell. It can also be used to reset or initialize 153 a terminal, or report its long name.</para> 154 </listitem> 155 </varlistentry> 156 157 <varlistentry id="tset"> 158 <term><command>tset</command></term> 159 <listitem> 160 <indexterm zone="ch-system-ncurses tset"><primary sortas="b-tset">tset</primary></indexterm> 161 <para>can be used to initialize terminals.</para> 162 </listitem> 163 </varlistentry> 164 165 <varlistentry id="libncurses"> 166 <term><filename class="libraryfile">>libncurses*</filename></term> 167 <listitem> 168 <indexterm zone="ch-system-ncurses libncurses"><primary sortas="c-libncurses*">libncurses*</primary></indexterm> 169 <para>contains functions to display text in 170 many complicated ways on a terminal screen. A good example of the use of these 171 functions is the menu displayed during the kernel's <command>make menuconfig</command>.</para> 172 </listitem> 173 </varlistentry> 174 175 <varlistentry id="libform"> 176 <term><filename class="libraryfile">libform*</filename></term> 177 <listitem> 178 <indexterm zone="ch-system-ncurses libform"><primary sortas="c-libform*">libform*</primary></indexterm> 179 <para>contains functions to implement forms.</para> 180 </listitem> 181 </varlistentry> 182 183 <varlistentry id="libmenu"> 184 <term><filename class="libraryfile">libmenu*</filename></term> 185 <listitem> 186 <indexterm zone="ch-system-ncurses libmenu"><primary sortas="c-libmenu*">libmenu*</primary></indexterm> 187 <para>contains functions to implement menus.</para> 188 </listitem> 189 </varlistentry> 190 191 <varlistentry id="libpanel"> 192 <term><filename class="libraryfile">libpanel*</filename></term> 193 <listitem> 194 <indexterm zone="ch-system-ncurses libpanel"><primary sortas="c-libpanel*">libpanel*</primary></indexterm> 195 <para>contains functions to implement panels.</para> 196 </listitem> 197 </varlistentry> 198 </variablelist> 58 <para>See testing</para> 199 59 200 60 </sect2> -
chapter06/patch.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Patch package contains a program for modifying files.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Patch installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Glibc, Grep, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Patch</title> 30 24 31 <para>Prepare Patch for compilation (the preprocessor flag 32 <parameter>-D_GNU_SOURCE</parameter> is only needed on PowerPCs, on other 33 machines you can leave it out):</para> 25 <para>Prepare Patch for compilation:</para> 34 26 35 27 <screen><userinput>CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/usr</userinput></screen> … … 48 40 <sect2 id="contents-patch" role="content"><title>Contents of Patch</title> 49 41 50 <segmentedlist> 51 <segtitle>Installed program</segtitle> 52 <seglistitem><seg>patch</seg></seglistitem> 53 </segmentedlist> 54 55 <variablelist><title>Short descriptions</title> 56 57 <varlistentry id="patch"> 58 <term><command>patch</command></term> 59 <listitem> 60 <indexterm zone="ch-system-patch patch"><primary sortas="b-patch">patch</primary></indexterm> 61 <para>modifies files according to a patch file. 62 A patch file normally is a difference listing created with the <command>diff</command> program. 63 By applying these differences to the original files, <command>patch</command> creates the patched 64 versions. Using patches instead of entirely new tarballs to keep your sources 65 up-to-date can save you a lot of download time.</para> 66 </listitem> 67 </varlistentry> 68 </variablelist> 42 <para>See testing</para> 69 43 70 44 </sect2> -
chapter06/perl.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Perl package contains the Practical Extraction and Report Language.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Perl installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 Gawk, GCC, Glibc, Grep, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Perl</title> 30 24 31 <para>If you want full control over the way Perl is set up, you can run the 32 interactive <command>Configure</command> script and hand-pick the way this 33 package is built. If you think you can live with the (sensible) 34 defaults it auto-detects, then prepare Perl for compilation with:</para> 25 <para>Prepare Perl for compilation:</para> 35 26 36 27 <screen><userinput>./configure.gnu --prefix=/usr -Dpager="/bin/less -isR"</userinput></screen> 37 38 <para>The meaning of the configure option:</para>39 40 <variablelist>41 <varlistentry>42 <term><parameter>-Dpager="/bin/less -isR"</parameter></term>43 <listitem><para>This corrects an error in the <command>perldoc</command> code with the invocation44 of the <command>less</command> program.</para></listitem>45 </varlistentry>46 </variablelist>47 28 48 29 <para>Compile the package:</para> … … 50 31 <screen><userinput>make</userinput></screen> 51 32 52 <para>If you wish to run the test suite, you first have to create a basic 53 <filename>/etc/hosts</filename> file, which is needed by a couple of tests to 54 resolve the name <emphasis>localhost</emphasis>:</para> 33 <para>Create a basic <filename>/etc/hosts</filename> file:</para> 55 34 56 35 <screen><userinput>echo "127.0.0.1 localhost $(hostname)" > /etc/hosts</userinput></screen> 57 36 58 <para> Now run the tests, if you wish:</para>37 <para>Run the tests:</para> 59 38 60 39 <screen><userinput>make test</userinput></screen> 61 40 62 <para> Finally, install the package:</para>41 <para>Install the package:</para> 63 42 64 43 <screen><userinput>make install</userinput></screen> … … 69 48 <sect2 id="contents-perl" role="content"><title>Contents of Perl</title> 70 49 71 <segmentedlist> 72 <segtitle>Installed programs</segtitle> 73 <segtitle>Installed libraries</segtitle> 74 <seglistitem><seg>a2p, c2ph, dprofpp, enc2xs, 75 find2perl, h2ph, h2xs, libnetcfg, perl, perl&perl-version; (link to perl), 76 perlbug, perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man, 77 pod2text, pod2usage, podchecker, podselect, psed (link to s2p), pstruct (link 78 to c2ph), s2p, splain and xsubpp</seg> 79 <seg>(too many to name)</seg></seglistitem> 80 </segmentedlist> 81 82 <variablelist><title>Short descriptions</title> 83 84 <varlistentry id="a2p"> 85 <term><command>a2p</command></term> 86 <listitem> 87 <indexterm zone="ch-system-perl a2p"><primary sortas="b-a2p">a2p</primary></indexterm> 88 <para>translates awk to Perl.</para> 89 </listitem> 90 </varlistentry> 91 92 <varlistentry id="c2ph"> 93 <term><command>c2ph</command></term> 94 <listitem> 95 <indexterm zone="ch-system-perl c2ph"><primary sortas="b-c2ph">c2ph</primary></indexterm> 96 <para>dumps C structures as generated from <quote>cc -g -S</quote> stabs.</para> 97 </listitem> 98 </varlistentry> 99 100 <varlistentry id="dprofpp"> 101 <term><command>dprofpp</command></term> 102 <listitem> 103 <indexterm zone="ch-system-perl dprofpp"><primary sortas="b-dprofpp">dprofpp</primary></indexterm> 104 <para>displays Perl profile data.</para> 105 </listitem> 106 </varlistentry> 107 108 <varlistentry id="en2cxs"> 109 <term><command>en2cxs</command></term> 110 <listitem> 111 <indexterm zone="ch-system-perl en2cxs"><primary sortas="b-en2cxs">en2cxs</primary></indexterm> 112 <para>builds a Perl extension for the Encode module, 113 from either Unicode Character Mappings or Tcl Encoding Files.</para> 114 </listitem> 115 </varlistentry> 116 117 <varlistentry id="find2perl"> 118 <term><command>find2perl</command></term> 119 <listitem> 120 <indexterm zone="ch-system-perl find2perl"><primary sortas="b-find2perl">find2perl</primary></indexterm> 121 <para>translates find commands to Perl.</para> 122 </listitem> 123 </varlistentry> 124 125 <varlistentry id="h2ph"> 126 <term><command>h2ph</command></term> 127 <listitem> 128 <indexterm zone="ch-system-perl h2ph"><primary sortas="b-h2ph">h2ph</primary></indexterm> 129 <para>converts <filename class="extension">.h</filename> C header files to 130 <filename class="extension">.ph</filename> Perl header files.</para> 131 </listitem> 132 </varlistentry> 133 134 <varlistentry id="h2xs"> 135 <term><command>h2xs</command></term> 136 <listitem> 137 <indexterm zone="ch-system-perl h2xs"><primary sortas="b-h2xs">h2xs</primary></indexterm> 138 <para>converts <filename class="extension">.h</filename> C header files to Perl extensions.</para> 139 </listitem> 140 </varlistentry> 141 142 <varlistentry id="libnetcfg"> 143 <term><command>libnetcfg</command></term> 144 <listitem> 145 <indexterm zone="ch-system-perl libnetcfg"><primary sortas="b-libnetcfg">libnetcfg</primary></indexterm> 146 <para>can be used to configure the <filename class="libraryfile">libnet</filename>.</para> 147 </listitem> 148 </varlistentry> 149 150 <varlistentry id="perl"> 151 <term><command>perl</command></term> 152 <listitem> 153 <indexterm zone="ch-system-perl perl"><primary sortas="b-perl">perl</primary></indexterm> 154 <para>combines some of the best features of C, sed, 155 awk and sh into a single swiss-army language.</para> 156 </listitem> 157 </varlistentry> 158 159 <varlistentry id="perlbug"> 160 <term><command>perlbug</command></term> 161 <listitem> 162 <indexterm zone="ch-system-perl perlbug"><primary sortas="b-perlbug">perlbug</primary></indexterm> 163 <para>is used to generate bug reports about 164 Perl or the modules that come with it, and mail them.</para> 165 </listitem> 166 </varlistentry> 167 168 <varlistentry id="perlcc"> 169 <term><command>perlcc</command></term> 170 <listitem> 171 <indexterm zone="ch-system-perl perlcc"><primary sortas="b-perlcc">perlcc</primary></indexterm> 172 <para>generates executables from Perl programs.</para> 173 </listitem> 174 </varlistentry> 175 176 <varlistentry id="perldoc"> 177 <term><command>perldoc</command></term> 178 <listitem> 179 <indexterm zone="ch-system-perl perldoc"><primary sortas="b-perldoc">perldoc</primary></indexterm> 180 <para>displays a piece of documentation in pod 181 format that is embedded in the Perl installation tree or in a Perl script.</para> 182 </listitem> 183 </varlistentry> 184 185 <varlistentry id="perlivp"> 186 <term><command>perlivp</command></term> 187 <listitem> 188 <indexterm zone="ch-system-perl perlivp"><primary sortas="b-perlivp">perlivp</primary></indexterm> 189 <para>is the Perl Installation Verification Procedure. It can be used to verify that 190 Perl and its libraries have been installed correctly.</para> 191 </listitem> 192 </varlistentry> 193 194 <varlistentry id="piconv"> 195 <term><command>piconv</command></term> 196 <listitem> 197 <indexterm zone="ch-system-perl piconv"><primary sortas="b-piconv">piconv</primary></indexterm> 198 <para>is a Perl version of the character encoding 199 converter <command>iconv</command>.</para> 200 </listitem> 201 </varlistentry> 202 203 <varlistentry id="pl2pm"> 204 <term><command>pl2pm</command></term> 205 <listitem> 206 <indexterm zone="ch-system-perl pl2pm"><primary sortas="b-pl2pm">pl2pm</primary></indexterm> 207 <para>is a rough tool for converting Perl4 <filename class="extension">.pl</filename> 208 files to Perl5 <filename class="extension">.pm</filename> modules.</para> 209 </listitem> 210 </varlistentry> 211 212 <varlistentry id="pod2html"> 213 <term><command>pod2html</command></term> 214 <listitem> 215 <indexterm zone="ch-system-perl pod2html"><primary sortas="b-pod2html">pod2html</primary></indexterm> 216 <para>converts files from pod format to HTML format.</para> 217 </listitem> 218 </varlistentry> 219 220 <varlistentry id="pod2latex"> 221 <term><command>pod2latex</command></term> 222 <listitem> 223 <indexterm zone="ch-system-perl pod2latex"><primary sortas="b-pod2latex">pod2latex</primary></indexterm> 224 <para>converts files from pod format to LaTeX format.</para> 225 </listitem> 226 </varlistentry> 227 228 <varlistentry id="pod2man"> 229 <term><command>pod2man</command></term> 230 <listitem> 231 <indexterm zone="ch-system-perl pod2man"><primary sortas="b-pod2man">pod2man</primary></indexterm> 232 <para>converts pod data to formatted *roff input.</para> 233 </listitem> 234 </varlistentry> 235 236 <varlistentry id="pod2text"> 237 <term><command>pod2text</command></term> 238 <listitem> 239 <indexterm zone="ch-system-perl pod2text"><primary sortas="b-pod2text">pod2text</primary></indexterm> 240 <para>converts pod data to formatted ASCII text.</para> 241 </listitem> 242 </varlistentry> 243 244 <varlistentry id="pod2usage"> 245 <term><command>pod2usage</command></term> 246 <listitem> 247 <indexterm zone="ch-system-perl pod2usage"><primary sortas="b-pod2usage">pod2usage</primary></indexterm> 248 <para>prints usage messages from embedded pod docs in files.</para> 249 </listitem> 250 </varlistentry> 251 252 <varlistentry id="podchecker"> 253 <term><command>podchecker</command></term> 254 <listitem> 255 <indexterm zone="ch-system-perl podchecker"><primary sortas="b-podchecker">podchecker</primary></indexterm> 256 <para>checks the syntax of pod format documentation files.</para> 257 </listitem> 258 </varlistentry> 259 260 <varlistentry id="podselect"> 261 <term><command>podselect</command></term> 262 <listitem> 263 <indexterm zone="ch-system-perl podselect"><primary sortas="b-podselect">podselect</primary></indexterm> 264 <para>displays selected sections of pod documentation.</para> 265 </listitem> 266 </varlistentry> 267 268 <varlistentry id="psed"> 269 <term><command>psed</command></term> 270 <listitem> 271 <indexterm zone="ch-system-perl psed"><primary sortas="b-psed">psed</primary></indexterm> 272 <para>is a Perl version of the stream editor <command>sed</command>.</para> 273 </listitem> 274 </varlistentry> 275 276 <varlistentry id="pstruct"> 277 <term><command>pstruct</command></term> 278 <listitem> 279 <indexterm zone="ch-system-perl pstruct"><primary sortas="b-pstruct">pstruct</primary></indexterm> 280 <para>dumps C structures as generated from <quote>cc -g -S</quote> stabs.</para> 281 </listitem> 282 </varlistentry> 283 284 <varlistentry id="s2p"> 285 <term><command>s2p</command></term> 286 <listitem> 287 <indexterm zone="ch-system-perl s2p"><primary sortas="b-s2p">s2p</primary></indexterm> 288 <para>translates sed to Perl.</para> 289 </listitem> 290 </varlistentry> 291 292 <varlistentry id="splain"> 293 <term><command>splain</command></term> 294 <listitem> 295 <indexterm zone="ch-system-perl splain"><primary sortas="b-splain">splain</primary></indexterm> 296 <para>is used to force verbose warning 297 diagnostics in Perl.</para> 298 </listitem> 299 </varlistentry> 300 301 <varlistentry id="xsubpp"> 302 <term><command>xsubpp</command></term> 303 <listitem> 304 <indexterm zone="ch-system-perl xsubpp"><primary sortas="b-xsubpp">xsubpp</primary></indexterm> 305 <para>converts Perl XS code into C code.</para> 306 </listitem> 307 </varlistentry> 308 </variablelist> 50 <para>See testing</para> 309 51 310 52 </sect2> -
chapter06/procps.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Procps package contains programs for monitoring processes.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Procps installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, GCC, Glibc,24 Make, Ncurses</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 42 36 <sect2 id="contents-procps" role="content"><title>Contents of Procps</title> 43 37 44 <segmentedlist> 45 <segtitle>Installed programs</segtitle> 46 <segtitle>Installed library</segtitle> 47 <seglistitem><seg>free, kill, pgrep, pkill, 48 pmap, ps, skill, snice, sysctl, tload, top, uptime, vmstat, w and watch</seg> 49 <seg>libproc.so</seg></seglistitem> 50 </segmentedlist> 51 52 <variablelist><title>Short descriptions</title> 53 54 <varlistentry id="free"> 55 <term><command>free</command></term> 56 <listitem> 57 <indexterm zone="ch-system-procps free"><primary sortas="b-free">free</primary></indexterm> 58 <para>reports the amount of free and used memory 59 in the system, both physical and swap memory.</para> 60 </listitem> 61 </varlistentry> 62 63 <varlistentry id="kill"> 64 <term><command>kill</command></term> 65 <listitem> 66 <indexterm zone="ch-system-procps kill"><primary sortas="b-kill">kill</primary></indexterm> 67 <para>is used to send signals to processes.</para> 68 </listitem> 69 </varlistentry> 70 71 <varlistentry id="pgrep"> 72 <term><command>pgrep</command></term> 73 <listitem> 74 <indexterm zone="ch-system-procps pgrep"><primary sortas="b-pgrep">pgrep</primary></indexterm> 75 <para>looks up processes based on their name and other attributes.</para> 76 </listitem> 77 </varlistentry> 78 79 <varlistentry id="pkill"> 80 <term><command>pkill</command></term> 81 <listitem> 82 <indexterm zone="ch-system-procps pkill"><primary sortas="b-pkill">pkill</primary></indexterm> 83 <para>signals processes based on their name and other attributes.</para> 84 </listitem> 85 </varlistentry> 86 87 <varlistentry id="pmap"> 88 <term><command>pmap</command></term> 89 <listitem> 90 <indexterm zone="ch-system-procps pmap"><primary sortas="b-pmap">pmap</primary></indexterm> 91 <para>reports the memory map of the given process.</para> 92 </listitem> 93 </varlistentry> 94 95 <varlistentry id="ps"> 96 <term><command>ps</command></term> 97 <listitem> 98 <indexterm zone="ch-system-procps ps"><primary sortas="b-ps">ps</primary></indexterm> 99 <para>gives a snapshot of the current processes.</para> 100 </listitem> 101 </varlistentry> 102 103 <varlistentry id="skill"> 104 <term><command>skill</command></term> 105 <listitem> 106 <indexterm zone="ch-system-procps skill"><primary sortas="b-skill">skill</primary></indexterm> 107 <para>sends signals to processes matching the given criteria.</para> 108 </listitem> 109 </varlistentry> 110 111 <varlistentry id="snice"> 112 <term><command>snice</command></term> 113 <listitem> 114 <indexterm zone="ch-system-procps snice"><primary sortas="b-snice">snice</primary></indexterm> 115 <para>changes the scheduling priority of processes matching the given criteria.</para> 116 </listitem> 117 </varlistentry> 118 119 <varlistentry id="sysctl"> 120 <term><command>sysctl</command></term> 121 <listitem> 122 <indexterm zone="ch-system-procps sysctl"><primary sortas="b-sysctl">sysctl</primary></indexterm> 123 <para>modifies kernel parameters at run time.</para> 124 </listitem> 125 </varlistentry> 126 127 <varlistentry id="tload"> 128 <term><command>tload</command></term> 129 <listitem> 130 <indexterm zone="ch-system-procps tload"><primary sortas="b-tload">tload</primary></indexterm> 131 <para>prints a graph of the current system load average.</para> 132 </listitem> 133 </varlistentry> 134 135 <varlistentry id="top"> 136 <term><command>top</command></term> 137 <listitem> 138 <indexterm zone="ch-system-procps top"><primary sortas="b-top">top</primary></indexterm> 139 <para>displays the top CPU processes. It provides 140 an ongoing look at processor activity in real time.</para> 141 </listitem> 142 </varlistentry> 143 144 <varlistentry id="uptime"> 145 <term><command>uptime</command></term> 146 <listitem> 147 <indexterm zone="ch-system-procps uptime"><primary sortas="b-uptime">uptime</primary></indexterm> 148 <para>reports how long the system has been 149 running, how many users are logged on, and the system load averages.</para> 150 </listitem> 151 </varlistentry> 152 153 <varlistentry id="vmstat"> 154 <term><command>vmstat</command></term> 155 <listitem> 156 <indexterm zone="ch-system-procps vmstat"><primary sortas="b-vmstat">vmstat</primary></indexterm> 157 <para>reports virtual memory statistics, giving information about processes, 158 memory, paging, block IO, traps, and CPU activity.</para> 159 </listitem> 160 </varlistentry> 161 162 <varlistentry id="w"> 163 <term><command>w</command></term> 164 <listitem> 165 <indexterm zone="ch-system-procps w"><primary sortas="b-w">w</primary></indexterm> 166 <para>shows which users are currently logged on, where and since when.</para> 167 </listitem> 168 </varlistentry> 169 170 <varlistentry id="watch"> 171 <term><command>watch</command></term> 172 <listitem> 173 <indexterm zone="ch-system-procps watch"><primary sortas="b-watch">watch</primary></indexterm> 174 <para>runs a given command repeatedly, displaying the first screen-full of its 175 output. This allows you to watch the output change over time.</para> 176 </listitem> 177 </varlistentry> 178 179 <varlistentry id="libproc"> 180 <term><filename class="libraryfile">libproc</filename></term> 181 <listitem> 182 <indexterm zone="ch-system-procps libproc"><primary sortas="c-libproc">libproc</primary></indexterm> 183 <para>contains the functions used by most programs in this package.</para> 184 </listitem> 185 </varlistentry> 186 </variablelist> 38 <para>See testing</para> 187 39 188 40 </sect2> -
chapter06/psmisc.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Psmisc package contains programs for displaying information on14 processes.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Psmisc installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,25 GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 34 27 <screen><userinput>./configure --prefix=/usr --exec-prefix=""</userinput></screen> 35 28 36 <para>The meaning of the configure option:</para>37 38 <variablelist>39 <varlistentry>40 <term><parameter>--exec-prefix=""</parameter></term>41 <listitem><para>This causes the42 binaries to be installed in <filename class="directory">/bin</filename> instead of43 <filename class="directory">/usr/bin</filename>. As the Psmisc programs are often used in44 bootscripts, they should be available also when the <filename class="directory">/usr</filename>45 file system isn't mounted.</para></listitem>46 </varlistentry>47 </variablelist>48 49 29 <para>Compile the package:</para> 50 30 … … 55 35 <screen><userinput>make install</userinput></screen> 56 36 57 <para>There is no reason for the <command>pstree</command> and 58 <command>pstree.x11</command> programs to reside in 59 <filename class="directory">/bin</filename>. We therefore move them to 60 <filename class="directory">/usr/bin</filename>. Also, there is no need 61 for <command>pstree.x11</command> to exist as a separate program. We 62 therefore make it a symbolic link to <command>pstree</command>:</para> 37 <para>Move a program:</para> 63 38 64 39 <screen><userinput>mv /bin/pstree* /usr/bin 65 40 ln -sf pstree /usr/bin/pstree.x11</userinput></screen> 66 41 67 <para>By default Psmisc's <command>pidof</command> program isn't installed. 68 Generally, this isn't a problem because we later install the Sysvinit package, 69 which provides a better <command>pidof</command> program. But if you're not 70 going to use Sysvinit, you should complete the installation of Psmisc by 71 creating the following symlink:</para> 42 <para>If you're not going to use Sysvinit, you should create the following symlink:</para> 72 43 73 44 <screen><userinput>ln -s killall /bin/pidof</userinput></screen> … … 78 49 <sect2 id="contents-psmisc" role="content"><title>Contents of Psmisc</title> 79 50 80 <segmentedlist> 81 <segtitle>Installed programs</segtitle> 82 <seglistitem><seg>fuser, killall, pstree and pstree.x11 (link to pstree)</seg></seglistitem> 83 </segmentedlist> 84 85 <variablelist><title>Short descriptions</title> 86 87 <varlistentry id="fuser"> 88 <term><command>fuser</command></term> 89 <listitem> 90 <indexterm zone="ch-system-psmisc fuser"><primary sortas="b-fuser">fuser</primary></indexterm> 91 <para>reports the PIDs of processes that use the given files or file systems.</para> 92 </listitem> 93 </varlistentry> 94 95 <varlistentry id="killall"> 96 <term><command>killall</command></term> 97 <listitem> 98 <indexterm zone="ch-system-psmisc killall"><primary sortas="b-killall">killall</primary></indexterm> 99 <para>kills processes by name. It sends a signal 100 to all processes running any of the given commands.</para> 101 </listitem> 102 </varlistentry> 103 104 <varlistentry id="pstree"> 105 <term><command>pstree</command></term> 106 <listitem> 107 <indexterm zone="ch-system-psmisc pstree"><primary sortas="b-pstree">pstree</primary></indexterm> 108 <para>displays running processes as a tree.</para> 109 </listitem> 110 </varlistentry> 111 112 <varlistentry id="pstree.x11"> 113 <term><command>pstree.x11</command></term> 114 <listitem> 115 <indexterm zone="ch-system-psmisc pstree.x11"><primary sortas="b-pstree.x11">pstree.x11</primary></indexterm> 116 <para>same as pstree except that it waits for confirmation before exiting.</para> 117 </listitem> 118 </varlistentry> 119 </variablelist> 51 <para>See testing</para> 120 52 121 53 </sect2> -
chapter06/pwdgroup.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="pwdgroup.html"?> 9 9 10 <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/etc/passwd">/etc/passwd</primary></indexterm> 11 <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/etc/group">/etc/group</primary></indexterm> 12 <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/run/utmp">/var/run/utmp</primary></indexterm> 13 <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/btmp">/var/log/btmp</primary></indexterm> 14 <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/lastlog">/var/log/lastlog</primary></indexterm> 15 <indexterm zone="ch-system-pwdgroup"><primary sortas="e-/var/log/wtmp">/var/log/wtmp</primary></indexterm> 16 17 <para>In order for <emphasis>root</emphasis> to be able to login and for the 18 name <quote>root</quote> to be recognized, there need to be relevant entries in 19 the <filename>/etc/passwd</filename> and <filename>/etc/group</filename> files. 20 </para> 21 22 <para>Create the <filename>/etc/passwd</filename> file by running the following 23 command:</para> 10 <para>Create the <filename>/etc/passwd</filename> file:</para> 24 11 25 12 <screen><userinput>cat > /etc/passwd << "EOF" … … 27 14 EOF</userinput></screen> 28 15 29 <para>The actual password for <emphasis>root</emphasis> (the <quote>x</quote> 30 here is just a placeholder) will be set later.</para> 31 32 <para>Create the <filename>/etc/group</filename> file by running the following 33 command:</para> 16 <para>Create the <filename>/etc/group</filename> file:</para> 34 17 35 18 <screen><userinput>cat > /etc/group << "EOF" … … 51 34 EOF</userinput></screen> 52 35 53 <para>The created groups aren't part of any standard -- they are some of the 54 groups that the Udev configuration we will be using in the next section 55 uses. The LSB (<ulink url="http://www.linuxbase.org/">Linux Standard 56 Base</ulink>) recommends only that, beside the group <quote>root</quote> with a 57 GID of 0, a group <quote>bin</quote> with a GID of 1 be present. All other group 58 names and GIDs can be chosen freely by the system administrator, since 59 well-written packages don't depend on GID numbers but use the group's name. 60 </para> 61 62 <para>To get rid of the <quote>I have no name!</quote> prompt, we will start a 63 new shell. Since we installed a full Glibc in 64 <xref linkend="chapter-temporary-tools"/>, and have just created the 65 <filename>/etc/passwd</filename> and <filename>/etc/group</filename> files, 66 user name and group name resolution will now work.</para> 36 <para>Start a new shell:</para> 67 37 68 38 <screen><userinput>exec /tools/bin/bash --login +h</userinput></screen> 69 39 70 <para>Note the use of the <parameter>+h</parameter> directive. This tells 71 <command>bash</command> not to use its internal path hashing. Without this 72 directive, <command>bash</command> would remember the paths to binaries it 73 has executed. Since we want to use our newly compiled binaries as soon as 74 they are installed, we turn off this function for the duration of this 75 chapter.</para> 76 77 <para>The <command>login</command>, <command>agetty</command> and 78 <command>init</command> programs (and some others) use a number of log 79 files to record information such as who was logged into the system and when. 80 These programs, however, won't write to the log files if they don't already 81 exist. Initialize the log files and give them their proper permissions:</para> 40 <para>Initialize the log files and give them their proper permissions:</para> 82 41 83 42 <screen><userinput>touch /var/run/utmp /var/log/{btmp,lastlog,wtmp} … … 85 44 chmod 664 /var/run/utmp /var/log/lastlog</userinput></screen> 86 45 87 <para>The <filename>/var/run/utmp</filename> file records the users that are88 currently logged in. The <filename>/var/log/wtmp</filename> file records all89 logins and logouts. The <filename>/var/log/lastlog</filename> file records for90 each user when he or she last logged in. The <filename>/var/log/btmp</filename>91 file records the bad login attempts.</para>92 93 46 </sect1> -
chapter06/readjusting.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="readjusting.html"?> 9 9 10 <para>Now that the new and final C libraries have been installed, it's time to 11 adjust our toolchain again. We'll adjust it so that it will link any newly 12 compiled program against these new libraries. This is in fact the same thing we 13 did in the <quote>Adjusting</quote> phase in the beginning of the previous 14 chapter, even though it looks like the reverse: then we guided the chain from 15 the host's <filename class="directory">/{,usr/}lib</filename> to the new 16 <filename class="directory">/tools/lib</filename>, now we guide it from that 17 same <filename class="directory">/tools/lib</filename> to the LFS's <filename 18 class="directory">/{,usr/}lib</filename>.</para> 19 20 <para>First we adjust the linker. For this we retained the 21 source and build directories from the second pass over Binutils. Install the 22 adjusted linker by running the following from within the 10 <para>Install the adjusted linker by running the following from within the 23 11 <filename class="directory">binutils-build</filename> directory:</para> 24 12 25 13 <screen><userinput>make -C ld INSTALL=/tools/bin/install install</userinput></screen> 26 14 27 <note><para>If you somehow missed the earlier warning to retain the Binutils 28 source and build directories from the second pass in 29 <xref linkend="chapter-temporary-tools"/>, or otherwise accidentally deleted them or just 30 don't have access to them, don't worry, all is not lost. Just ignore the above 31 command. The result will be that the next package, Binutils, will link against 32 the C libraries in <filename class="directory">/tools</filename> rather 33 than in <filename class="directory">/{,usr/}lib</filename>. This is not ideal, 34 however, our testing has shown that the resulting Binutils program binaries 35 should be identical.</para></note> 36 37 <para>From now on every compiled program will link <emphasis>only</emphasis> 38 against the libraries in <filename class="directory">/usr/lib</filename> and 39 <filename class="directory">/lib</filename>. The extra 40 <parameter>INSTALL=/tools/bin/install</parameter> is needed because the Makefile 41 created during the second pass still contains the reference to 42 <command>/usr/bin/install</command>, which we obviously haven't installed yet. 43 Some host distributions contain a <filename class="symlink">ginstall</filename> 44 symbolic link which takes precedence in the Makefile and thus can cause a 45 problem here. The above command takes care of this also.</para> 46 47 <para>You can now remove the Binutils source and build directories.</para> 48 49 <para>The next thing to do is to amend our GCC specs file so that it points 50 to the new dynamic linker. Just like earlier on, we use a sed to accomplish 51 this:</para> 15 <para>Amend the GCC specs file:</para> 52 16 53 17 <!-- Ampersands are needed to allow cut and paste --> … … 57 21 `gcc --print-file specs`</userinput></screen> 58 22 59 <para>Again, cutting and pasting the above is recommended. And just like 60 before, it is a good idea to visually inspect the specs file to verify the 61 intended change was actually made.</para> 62 63 <important><para>If you are working on a platform where the name of the dynamic 64 linker is something other than <filename>ld-linux.so.2</filename>, you 65 <emphasis>must</emphasis> substitute <filename>ld-linux.so.2</filename> with the 66 name of your platform's dynamic linker in the above commands. Refer back to 67 <xref linkend="ch-tools-toolchaintechnotes"/> if necessary.</para></important> 68 69 70 <caution><para>It is imperative at this point to stop and ensure that the 71 basic functions (compiling and linking) of the adjusted toolchain are working 72 as expected. For this we are going to perform a simple sanity check:</para> 23 <caution><para>Perform a simple sanity check:</para> 73 24 74 25 <screen><userinput>echo 'main(){}' > dummy.c … … 76 27 readelf -l a.out | grep ': /lib'</userinput></screen> 77 28 78 <para>If everything is working correctly, there should be no errors, and the 79 output of the last command will be (allowing for platform specific differences 80 in dynamic linker name):</para> 29 <para>The output of the last command will be:</para> 81 30 82 31 <screen><computeroutput>[Requesting program interpreter: /lib/ld-linux.so.2]</computeroutput></screen> 83 84 <para>Note especially that <filename class="directory">/lib</filename> is now85 the prefix of our dynamic linker.</para>86 87 <para> If you did not receive the output88 as shown above, or received no output at all, then something is seriously wrong.89 You will need to investigate and retrace your steps to find out where the90 problem is and correct it. There is no point in continuing until this is done.91 Most likely something went wrong with the specs file amendment above.</para>92 32 93 33 <para>Once you are satisfied that all is well, clean up the test files:</para> -
chapter06/readline.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Readline package contains the Readline command-line library.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Readline installation depends on</segtitle>23 <seglistitem><seg>Binutils, Coreutils, Diffutils, Gawk,24 GCC, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 29 23 <title>Installation of Readline</title> 30 24 31 <para>The following patch fixes various issues including a problem where Readline 32 sometimes will only show 33 characters on a line and then wrap to the next line.</para> 25 <para>Apply a patch.</para> 33 26 34 27 <screen><userinput>patch -Np1 -i ../readline-&readline-version;-fixes-1.patch</userinput></screen> … … 63 56 64 57 <sect2 id="contents-readline" role="content"><title>Contents of Readline</title> 65 <segmentedlist> 66 <segtitle>Installed libraries</segtitle> 67 <seglistitem><seg>Not checked</seg></seglistitem> 68 </segmentedlist> 58 59 <para>See testing</para> 60 69 61 </sect2> 70 62 -
chapter06/revisedchroot.xml
raaa3260 r3f0c882 8 8 <?dbhtml filename="revisedchroot.html"?> 9 9 10 <para>From now on, when you exit the chroot environment and wish to reenter 11 it, you should use the following modified chroot command:</para> 10 <para>Modified chroot command:</para> 12 11 13 12 <screen><userinput>chroot "$LFS" /usr/bin/env -i \ … … 16 15 /bin/bash --login</userinput></screen> 17 16 18 <para>The reason for this is that, since the programs in <filename19 class="directory">/tools</filename> are no longer needed, you may want to20 delete the whole directory and regain the space. Before actually deleting the21 directory, exit from chroot and reenter it with the above command. Also, before22 removing <filename class="directory">/tools</filename>, you may want to tar it23 up and store it in a safe place, in case you want to build another LFS system24 soon.</para>25 26 <note><para>Removing <filename class="directory">/tools</filename> will also27 remove the temporary copies of Tcl, Expect and DejaGNU, which were used for28 running the toolchain tests. If you want to use these programs later on, you29 will need to recompile and re-install them. The installation instructions are30 the same as in <xref linkend="chapter-temporary-tools"/>, apart from changing31 the prefix from <filename class="directory">/tools</filename> to <filename class="directory">/usr</filename>. The32 BLFS book discusses a slightly different approach to installing Tcl, see33 <ulink url="&blfs-root;"/>.</para></note>34 35 <para>You may also want to move the packages and patches stored in <filename36 class="directory">/sources</filename> to a more usual location, such as37 <filename class="directory">/usr/src/packages</filename>, and remove the38 directory -- or simply delete the whole directory if you've burned its contents39 on a CD).</para>40 41 17 </sect1> -
chapter06/sed.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Sed package contains a stream editor.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Sed installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils,24 Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-sed" role="content"><title>Contents of Sed</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed program</segtitle> 53 <seglistitem><seg>sed</seg></seglistitem> 54 </segmentedlist> 55 56 <variablelist><title>Short descriptions</title> 57 58 <varlistentry id="sed"> 59 <term><command>sed</command></term> 60 <listitem> 61 <indexterm zone="ch-system-sed sed"><primary sortas="b-sed">sed</primary></indexterm> 62 <para>is used to filter and transform text files in a single pass.</para> 63 </listitem> 64 </varlistentry> 65 </variablelist> 45 <para>See testing</para> 66 46 67 47 </sect2> -
chapter06/shadow.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Shadow package contains programs for handling passwords in a secure14 way.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Shadow installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Bison, Coreutils,25 Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 42 35 <screen><userinput>make install</userinput></screen> 43 36 44 <para>Shadow uses two files to configure authentication settings for the 45 system. Install these two config files:</para> 37 <para>Install two config files:</para> 46 38 47 39 <screen><userinput>cp etc/{limits,login.access} /etc</userinput></screen> 48 40 49 <para>Instead of using the default <emphasis>crypt</emphasis> method, we want 50 to use the more secure <emphasis>MD5</emphasis> method of password encryption, 51 which also allows passwords longer than 8 characters. We also need to 52 change the obsolete <filename class="directory">/var/spool/mail</filename> 53 location for user mailboxes that Shadow uses by default to the <filename 54 class="directory">/var/mail</filename> location used currently. We accomplish 55 both these things by changing the relevant configuration file while copying it 56 to its destination (it's probably better to cut-and-paste this rather than try 57 and type it all in):</para> 41 <para>Change a configuration file while copying it:</para> 58 42 59 43 <screen><userinput>sed -e's@#MD5_CRYPT_ENAB.no@MD5_CRYPT_ENAB yes@' \ … … 61 45 < etc/login.defs.linux > /etc/login.defs</userinput></screen> 62 46 63 <para>Move some misplaced symlinks/programs to their proper locations:</para>47 <para>Move a program:</para> 64 48 65 49 <screen><userinput>mv /usr/bin/passwd /bin</userinput></screen> 66 50 67 <para> And move Shadow's static library to a more appropriate location:</para>51 <para>Move a library:</para> 68 52 69 53 <screen><userinput>mv /lib/libshadow.*a /usr/lib</userinput></screen> 70 54 71 <para>As some packages expect to find the libraries in 72 <filename class="directory">/usr/lib</filename>, create the following symlinks:</para> 55 <para>Create the following symlinks:</para> 73 56 74 57 <screen><userinput>rm /lib/libshadow.so 75 58 ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so</userinput></screen> 76 59 77 <para>The <parameter>-D</parameter> option of the <command>useradd</command> program requires this 78 directory for it to work properly:</para> 60 <para>Create a dir:</para> 79 61 80 62 <screen><userinput>mkdir /etc/default</userinput></screen> 81 63 82 <para>Coreutils has already installed a better <command>groups</command> 83 program in <filename class="directory">/usr/bin</filename>. Remove the one 84 installed by Shadow:</para> 64 <para>Remove a program:</para> 85 65 86 66 <screen><userinput>rm /bin/groups</userinput></screen> … … 90 70 91 71 <sect2 id="conf-shadow" role="configuration"><title>Configuring Shadow</title> 92 <indexterm zone="conf-shadow">93 <primary sortas="a-Shadow">Shadow</primary>94 <secondary>configuring</secondary></indexterm>95 72 96 <para>This package contains utilities to add, modify and delete users and 97 groups, set and change their passwords, and other such administrative tasks. 98 For a full explanation of what <emphasis>password shadowing</emphasis> means, 99 see the <filename>doc/HOWTO</filename> file within the unpacked source tree. 100 There's one thing to keep in mind if you decide to use Shadow support: programs 101 that need to verify passwords (display managers, ftp programs, pop3 daemons, 102 and the like) need to be <emphasis>shadow-compliant</emphasis>, that is they 103 need to be able to work with shadowed passwords.</para> 104 105 <para>To enable shadowed passwords, run the following command:</para> 73 <para>To enable shadowed passwords:</para> 106 74 107 75 <screen><userinput>pwconv</userinput></screen> … … 110 78 111 79 <screen><userinput>grpconv</userinput></screen> 112 113 <para>Under normal circumstances, you won't have created any passwords yet.114 However, if returning to this section later to enable shadowing, you should115 reset any current user passwords with the <command>passwd</command> command or116 any group passwords with the <command>gpasswd</command> command.</para>117 80 118 81 </sect2> … … 131 94 <sect2 id="contents-shadow" role="content"><title>Contents of Shadow</title> 132 95 133 <segmentedlist> 134 <segtitle>Installed programs</segtitle> 135 <seglistitem><seg>chage, chfn, chpasswd, chsh, expiry, faillog, gpasswd, 136 groupadd, groupdel, groupmod, groups, grpck, grpconv, grpunconv, lastlog, login, 137 logoutd, mkpasswd, newgrp, newusers, passwd, pwck, pwconv, pwunconv, sg 138 (link to newgrp), useradd, userdel, usermod, vigr (link to vipw) and vipw</seg> 139 </seglistitem> 140 </segmentedlist> 141 142 <variablelist><title>Short descriptions</title> 143 144 <varlistentry id="chage"> 145 <term><command>chage</command></term> 146 <listitem> 147 <indexterm zone="ch-system-shadow chage"><primary sortas="b-chage">chage</primary></indexterm> 148 <para>is used to change the maximum number of 149 days between obligatory password changes.</para> 150 </listitem> 151 </varlistentry> 152 153 <varlistentry id="chfn"> 154 <term><command>chfn</command></term> 155 <listitem> 156 <indexterm zone="ch-system-shadow chfn"><primary sortas="b-chfn">chfn</primary></indexterm> 157 <para>is used to change a user's full name and some other info.</para> 158 </listitem> 159 </varlistentry> 160 161 <varlistentry id="chpasswd"> 162 <term><command>chpasswd</command></term> 163 <listitem> 164 <indexterm zone="ch-system-shadow chpasswd"><primary sortas="b-chpasswd">chpasswd</primary></indexterm> 165 <para>is used to update the passwords of a 166 whole series of user accounts in one go.</para> 167 </listitem> 168 </varlistentry> 169 170 <varlistentry id="chsh"> 171 <term><command>chsh</command></term> 172 <listitem> 173 <indexterm zone="ch-system-shadow chsh"><primary sortas="b-chsh">chsh</primary></indexterm> 174 <para>is used to change a user's default login shell.</para> 175 </listitem> 176 </varlistentry> 177 178 <varlistentry id="expiry"> 179 <term><command>expiry</command></term> 180 <listitem> 181 <indexterm zone="ch-system-shadow expiry"><primary sortas="b-expiry">expiry</primary></indexterm> 182 <para>checks and enforces the current password expiration policy.</para> 183 </listitem> 184 </varlistentry> 185 186 <varlistentry id="faillog"> 187 <term><command>faillog</command></term> 188 <listitem> 189 <indexterm zone="ch-system-shadow faillog"><primary sortas="b-faillog">faillog</primary></indexterm> 190 <para>is used to examine the log of login failures, to set a maximum number of 191 failures before an account is blocked, or to reset the failure count.</para> 192 </listitem> 193 </varlistentry> 194 195 <varlistentry id="gpasswd"> 196 <term><command>gpasswd</command></term> 197 <listitem> 198 <indexterm zone="ch-system-shadow gpasswd"><primary sortas="b-gpasswd">gpasswd</primary></indexterm> 199 <para>is used to add and delete members and administrators to groups.</para> 200 </listitem> 201 </varlistentry> 202 203 <varlistentry id="groupadd"> 204 <term><command>groupadd</command></term> 205 <listitem> 206 <indexterm zone="ch-system-shadow groupadd"><primary sortas="b-groupadd">groupadd</primary></indexterm> 207 <para>creates a group with the given name.</para> 208 </listitem> 209 </varlistentry> 210 211 <varlistentry id="groupdel"> 212 <term><command>groupdel</command></term> 213 <listitem> 214 <indexterm zone="ch-system-shadow groupdel"><primary sortas="b-groupdel">groupdel</primary></indexterm> 215 <para>deletes the group with the given name.</para> 216 </listitem> 217 </varlistentry> 218 219 <varlistentry id="groupmod"> 220 <term><command>groupmod</command></term> 221 <listitem> 222 <indexterm zone="ch-system-shadow groupmod"><primary sortas="b-groupmod">groupmod</primary></indexterm> 223 <para>is used to modify the given group's name or GID.</para> 224 </listitem> 225 </varlistentry> 226 227 <varlistentry id="groups"> 228 <term><command>groups</command></term> 229 <listitem> 230 <indexterm zone="ch-system-shadow groups"><primary sortas="b-groups">groups</primary></indexterm> 231 <para>reports the groups of which the given users are members.</para> 232 </listitem> 233 </varlistentry> 234 235 <varlistentry id="grpck"> 236 <term><command>grpck</command></term> 237 <listitem> 238 <indexterm zone="ch-system-shadow grpck"><primary sortas="b-grpck">grpck</primary></indexterm> 239 <para>verifies the integrity of the group files, <filename>/etc/group</filename> 240 and <filename>/etc/gshadow</filename>.</para> 241 </listitem> 242 </varlistentry> 243 244 <varlistentry id="grpconv"> 245 <term><command>grpconv</command></term> 246 <listitem> 247 <indexterm zone="ch-system-shadow grpconv"><primary sortas="b-grpconv">grpconv</primary></indexterm> 248 <para>creates or updates the shadow group file from the normal group file.</para> 249 </listitem> 250 </varlistentry> 251 252 <varlistentry id="grpunconv"> 253 <term><command>grpunconv</command></term> 254 <listitem> 255 <indexterm zone="ch-system-shadow grpunconv"><primary sortas="b-grpunconv">grpunconv</primary></indexterm> 256 <para>updates <filename>/etc/group</filename> 257 from <filename>/etc/gshadow</filename> and then deletes the latter.</para> 258 </listitem> 259 </varlistentry> 260 261 <varlistentry id="lastlog"> 262 <term><command>lastlog</command></term> 263 <listitem> 264 <indexterm zone="ch-system-shadow lastlog"><primary sortas="b-lastlog">lastlog</primary></indexterm> 265 <para>reports the most recent login of all users, or of a given user.</para> 266 </listitem> 267 </varlistentry> 268 269 <varlistentry id="login"> 270 <term><command>login</command></term> 271 <listitem> 272 <indexterm zone="ch-system-shadow login"><primary sortas="b-login">login</primary></indexterm> 273 <para>is used by the system to let users sign on.</para> 274 </listitem> 275 </varlistentry> 276 277 <varlistentry id="logoutd"> 278 <term><command>logoutd</command></term> 279 <listitem> 280 <indexterm zone="ch-system-shadow logoutd"><primary sortas="b-logoutd">logoutd</primary></indexterm> 281 <para>is a daemon used to enforce restrictions on log-on time and ports.</para> 282 </listitem> 283 </varlistentry> 284 285 <varlistentry id="mkpasswd"> 286 <term><command>mkpasswd</command></term> 287 <listitem> 288 <indexterm zone="ch-system-shadow mkpasswd"><primary sortas="b-mkpasswd">mkpasswd</primary></indexterm> 289 <para>encrypts the given password using the also given perturbation.</para> 290 </listitem> 291 </varlistentry> 292 293 <varlistentry id="newgrp"> 294 <term><command>newgrp</command></term> 295 <listitem> 296 <indexterm zone="ch-system-shadow newgrp"><primary sortas="b-newgrp">newgrp</primary></indexterm> 297 <para>is used to change the current GID during a login session.</para> 298 </listitem> 299 </varlistentry> 300 301 <varlistentry id="newusers"> 302 <term><command>newusers</command></term> 303 <listitem> 304 <indexterm zone="ch-system-shadow newusers"><primary sortas="b-newusers">newusers</primary></indexterm> 305 <para>is used to create or update a whole series of user accounts in one go.</para> 306 </listitem> 307 </varlistentry> 308 309 <varlistentry id="passwd"> 310 <term><command>passwd</command></term> 311 <listitem> 312 <indexterm zone="ch-system-shadow passwd"><primary sortas="b-passwd">passwd</primary></indexterm> 313 <para>is used to change the password for a user or group account.</para> 314 </listitem> 315 </varlistentry> 316 317 <varlistentry id="pwck"> 318 <term><command>pwck</command></term> 319 <listitem> 320 <indexterm zone="ch-system-shadow pwck"><primary sortas="b-pwck">pwck</primary></indexterm> 321 <para>verifies the integrity of the password files, 322 <filename>/etc/passwd</filename> and <filename>/etc/shadow</filename>.</para> 323 </listitem> 324 </varlistentry> 325 326 <varlistentry id="pwconv"> 327 <term><command>pwconv</command></term> 328 <listitem> 329 <indexterm zone="ch-system-shadow pwconv"><primary sortas="b-pwconv">pwconv</primary></indexterm> 330 <para>creates or updates the shadow password file 331 from the normal password file.</para> 332 </listitem> 333 </varlistentry> 334 335 <varlistentry id="pwunconv"> 336 <term><command>pwunconv</command></term> 337 <listitem> 338 <indexterm zone="ch-system-shadow pwunconv"><primary sortas="b-pwunconv">pwunconv</primary></indexterm> 339 <para>updates <filename>/etc/passwd</filename> 340 from <filename>/etc/shadow</filename> and then deletes the latter.</para> 341 </listitem> 342 </varlistentry> 343 344 <varlistentry id="sg"> 345 <term><command>sg</command></term> 346 <listitem> 347 <indexterm zone="ch-system-shadow sg"><primary sortas="b-sg">sg</primary></indexterm> 348 <para>executes a given command while the user's GID 349 is set to that of the given group.</para> 350 </listitem> 351 </varlistentry> 352 353 <varlistentry id="su"> 354 <term><command>su</command></term> 355 <listitem> 356 <indexterm zone="ch-system-shadow su"><primary sortas="b-su">su</primary></indexterm> 357 <para>runs a shell with substitute user and group IDs.</para> 358 </listitem> 359 </varlistentry> 360 361 <varlistentry id="useradd"> 362 <term><command>useradd</command></term> 363 <listitem> 364 <indexterm zone="ch-system-shadow useradd"><primary sortas="b-useradd">useradd</primary></indexterm> 365 <para>creates a new user with the given name, 366 or updates the default new-user information.</para> 367 </listitem> 368 </varlistentry> 369 370 <varlistentry id="userdel"> 371 <term><command>userdel</command></term> 372 <listitem> 373 <indexterm zone="ch-system-shadow userdel"><primary sortas="b-userdel">userdel</primary></indexterm> 374 <para>deletes the given user account.</para> 375 </listitem> 376 </varlistentry> 377 378 <varlistentry id="usermod"> 379 <term><command>usermod</command></term> 380 <listitem> 381 <indexterm zone="ch-system-shadow usermod"><primary sortas="b-usermod">usermod</primary></indexterm> 382 <para>is used to modify the given user's login name, UID (User Identification), 383 shell, initial group, home directory, and the like.</para> 384 </listitem> 385 </varlistentry> 386 387 <varlistentry id="vigr"> 388 <term><command>vigr</command></term> 389 <listitem> 390 <indexterm zone="ch-system-shadow vigr"><primary sortas="b-vigr">vigr</primary></indexterm> 391 <para>can be used to edit the <filename>/etc/group</filename> or 392 <filename>/etc/gshadow</filename> files.</para> 393 </listitem> 394 </varlistentry> 395 396 <varlistentry id="vipw"> 397 <term><command>vipw</command></term> 398 <listitem> 399 <indexterm zone="ch-system-shadow vipw"><primary sortas="b-vipw">vipw</primary></indexterm> 400 <para>can be used to edit the <filename>/etc/passwd</filename> or 401 <filename>/etc/shadow</filename> files.</para> 402 </listitem> 403 </varlistentry> 404 405 <varlistentry id="libmisc"> 406 <term><filename class="libraryfile">libmisc</filename></term> 407 <listitem> 408 <indexterm zone="ch-system-shadow libmisc"><primary sortas="c-libmisc">libmisc</primary></indexterm> 409 <para>...</para> 410 </listitem> 411 </varlistentry> 412 413 <varlistentry id="libshadow"> 414 <term><filename class="libraryfile">libshadow</filename></term> 415 <listitem> 416 <indexterm zone="ch-system-shadow libshadow"><primary sortas="c-libshadow">libshadow</primary></indexterm> 417 <para>contains functions used by most programs in this package.</para> 418 </listitem> 419 </varlistentry> 420 </variablelist> 96 <para>See testing</para> 421 97 422 98 </sect2> -
chapter06/strippingagain.xml
raaa3260 r3f0c882 5 5 <?dbhtml filename="strippingagain.html"?> 6 6 7 <para>If you are not a programmer and don't plan to do any debugging on your 8 system software, you can shrink your system by about 200 MB by removing the 9 debugging symbols from binaries and libraries. This causes no inconvenience 10 other than not being able to debug the software fully any more.</para> 11 12 <para>Most people who use the command mentioned below don't experience any 13 problems. But it is easy to make a typo and render your new system unusable, so 14 before running the strip command it is probably a good idea to make a backup of 15 the current situation.</para> 16 17 <para>If you are going to perform the stripping, special care is needed to 18 ensure you're not running any of the binaries that are about to be stripped. 19 If you're not sure whether you entered chroot with the command given in 20 <xref linkend="ch-system-chroot"/>, then first exit from chroot:</para> 7 <para>Exit from chroot:</para> 21 8 22 9 <screen><userinput>logout</userinput></screen> 23 10 24 <para> Then reenter itwith:</para>11 <para>Reenter with:</para> 25 12 26 13 <screen><userinput>chroot $LFS /tools/bin/env -i \ … … 29 16 /tools/bin/bash --login</userinput></screen> 30 17 31 <para> Now you can safely strip the binaries and libraries:</para>18 <para>Strip the binaries and libraries:</para> 32 19 33 20 <screen><userinput>/tools/bin/find /{,usr/}{bin,lib,sbin} -type f \ 34 21 -exec /tools/bin/strip --strip-debug '{}' ';'</userinput></screen> 35 22 36 <para>A large number of files will be reported as having their file format not37 recognized. These warnings can be safely ignored, they just mean that those38 files are scripts instead of binaries, no harm is done.</para>39 40 <para>If you are really tight on disk space, you may want to use41 <parameter>--strip-all</parameter> on the binaries in42 <filename class="directory">/{,usr/}{bin,sbin}</filename> to gain several more megabytes. But do43 <emphasis>not</emphasis> use this option on libraries: they would be44 destroyed.</para>45 46 23 </sect1> 47 24 -
chapter06/syslogng.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Syslog-ng package contains programs for logging system messages, such14 as those given by the kernel when unusual things happen.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Syslog-ng installation depends on</segtitle>24 <seglistitem><seg>Unchecked</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 45 39 46 40 <sect2 id="conf-syslogng" role="configuration"><title>Configuring Syslog-ng</title> 47 <indexterm zone="conf-syslogng">48 <primary sortas="a-Syslogng">Syslog-ng</primary>49 <secondary>configuring</secondary></indexterm>50 41 51 <indexterm zone="conf-syslogng"><primary sortas="e-/etc/syslog-ng/syslog-ng.conf">/etc/syslog-ng/syslog-ng.conf</primary></indexterm> 52 53 <para>Create a new <filename>/etc/syslog-ng/syslog-ng.conf</filename> file by 54 running the following:</para> 42 <para>Create a <filename>/etc/syslog-ng/syslog-ng.conf</filename> file:</para> 55 43 56 44 <screen><userinput>mkdir -p /etc/syslog-ng … … 134 122 <sect2 id="contents-syslogng" role="content"><title>Contents of Syslog-ng</title> 135 123 136 <segmentedlist> 137 <segtitle>Installed programs</segtitle> 138 <seglistitem><seg>Unchecked</seg></seglistitem> 139 </segmentedlist> 140 141 <variablelist><title>Short descriptions</title> 142 143 <varlistentry id="syslog-ng"> 144 <term><command>syslog-ng</command></term> 145 <listitem> 146 <indexterm zone="ch-system-syslogng"><primary sortas="b-syslog-ng">syslog-ng</primary></indexterm> 147 <para>logs the messages that system programs 148 offer for logging. Every logged message contains at least a date stamp and a 149 hostname, and normally the program's name too, but that depends on how 150 trusting the logging daemon is told to be.</para> 151 </listitem> 152 153 </varlistentry> 154 </variablelist> 124 <para>See testing</para> 155 125 156 126 </sect2> -
chapter06/sysvinit.xml
raaa3260 r3f0c882 29 29 <title>Installation of Sysvinit</title> 30 30 31 <para>When run-levels are changed (for example, when halting the system), 32 <command>init</command> sends termination signals to those processes that 33 <command>init</command> itself started and that shouldn't be running in the new 34 run-level. While doing this, <command>init</command> outputs messages like 35 <quote>Sending processes the TERM signal</quote> which seem to imply that it is sending these signals to all currently running processes. To avoid this 36 misinterpretation, you can modify the source so that these messages read like 37 <quote>Sending processes started by init the TERM signal</quote> instead:</para> 31 <para>Issue a sed sustitution:</para> 38 32 39 33 <screen><userinput>sed -i 's@Sending processes@& started by init@g' \ … … 52 46 53 47 <sect2 id="conf-sysvinit" role="configuration"><title>Configuring Sysvinit</title> 54 <indexterm zone="conf-sysvinit">55 <primary sortas="a-Sysvinit">Sysvinit</primary>56 <secondary>configuring</secondary></indexterm>57 48 58 <indexterm zone="conf-sysvinit"><primary sortas="e-/etc/inittab">/etc/inittab</primary></indexterm> 59 60 <para>Create a new <filename>/etc/inittab</filename> file by running the 61 following:</para> 49 <para>Create a <filename>/etc/inittab</filename> file:</para> 62 50 63 51 <screen><userinput>cat > /etc/inittab << "EOF" … … 90 78 EOF</userinput></screen> 91 79 92 <para> The <parameter>-I '\033(K'</parameter> switch tells <command>agetty</command> to send this escape sequence to93 the terminal before doing anything else. This escape sequence switches the94 console character set to a user-defined one, which can be modified by95 running the <command>setfont</command> program.96 Actually, the <command>console</command> initscript from the LFS-Bootscripts97 package calls the <command>setfont</command> program during system98 startup. Sending this escape sequence is necessary for99 people who use non-ISO-8859-1 screen font, but does not hurt native English100 speakers.</para>101 102 80 </sect2> 103 81 … … 105 83 <sect2 id="contents-sysvinit" role="content"><title>Contents of Sysvinit</title> 106 84 107 <segmentedlist> 108 <segtitle>Installed programs</segtitle> 109 <seglistitem><seg>halt, init, killall5, last, lastb (link to last), mesg, pidof (link to 110 killall5), poweroff (link to halt), reboot (link to halt), runlevel, shutdown, sulogin, telinit 111 (link to init), utmpdump and wall</seg></seglistitem> 112 </segmentedlist> 85 <para>See testing</para> 113 86 114 <variablelist><title>Short descriptions</title> 115 116 <varlistentry id="halt"> 117 <term><command>halt</command></term> 118 <listitem> 119 <indexterm zone="ch-system-sysvinit halt"><primary sortas="b-halt">halt</primary></indexterm> 120 <para>normally invokes <command>shutdown</command> with the <parameter>-h</parameter> flag, 121 except when already in run-level 0, then it tells the kernel to halt the system. 122 But first it notes in the file <filename>/var/log/wtmp</filename> that the 123 system is being brought down.</para> 124 </listitem> 125 </varlistentry> 126 127 <varlistentry id="init"> 128 <term><command>init</command></term> 129 <listitem> 130 <indexterm zone="ch-system-sysvinit init"><primary sortas="b-init">init</primary></indexterm> 131 <para>is the mother of all processes. It reads its 132 commands from <filename>/etc/inittab</filename>, which normally tell it which 133 scripts to run for which run-level, and how many gettys to spawn.</para> 134 </listitem> 135 </varlistentry> 136 137 <varlistentry id="killall5"> 138 <term><command>killall5</command></term> 139 <listitem> 140 <indexterm zone="ch-system-sysvinit killall5"><primary sortas="b-killall5">killall5</primary></indexterm> 141 <para>sends a signal to all processes, except the processes in its own session -- 142 so it won't kill the shell running the script that called it.</para> 143 </listitem> 144 </varlistentry> 145 146 <varlistentry id="last"> 147 <term><command>last</command></term> 148 <listitem> 149 <indexterm zone="ch-system-sysvinit last"><primary sortas="b-last">last</primary></indexterm> 150 <para>shows which users last logged in (and out), 151 searching back through the file <filename>/var/log/wtmp</filename>. It can 152 also show system boots and shutdowns, and run-level changes.</para> 153 </listitem> 154 </varlistentry> 155 156 <varlistentry id="lastb"> 157 <term><command>lastb</command></term> 158 <listitem> 159 <indexterm zone="ch-system-sysvinit lastb"><primary sortas="b-lastb">lastb</primary></indexterm> 160 <para>shows the failed login attempts, as logged in 161 <filename>/var/log/btmp</filename>.</para> 162 </listitem> 163 </varlistentry> 164 165 <varlistentry id="mesg"> 166 <term><command>mesg</command></term> 167 <listitem> 168 <indexterm zone="ch-system-sysvinit mesg"><primary sortas="b-mesg">mesg</primary></indexterm> 169 <para>controls whether other users can send 170 messages to the current user's terminal.</para> 171 </listitem> 172 </varlistentry> 87 <!-- This should be added to testing: 173 88 174 89 <varlistentry id="mountpoint"> 175 90 <term><command>mountpoint</command></term> 176 91 <listitem> 92 <para>Checks if the directory is a mountpoint</para> 177 93 <indexterm zone="ch-system-sysvinit mountpoint"><primary sortas="b-mountpoint">mountpoint</primary></indexterm> 178 <para>checks if the directory is a mountpoint.</para>179 94 </listitem> 180 95 </varlistentry> 181 96 182 <varlistentry id="pidof"> 183 <term><command>pidof</command></term> 184 <listitem> 185 <indexterm zone="ch-system-sysvinit pidof"><primary sortas="b-pidof">pidof</primary></indexterm> 186 <para>reports the PIDs of the given programs.</para> 187 </listitem> 188 </varlistentry> 189 190 <varlistentry id="poweroff"> 191 <term><command>poweroff</command></term> 192 <listitem> 193 <indexterm zone="ch-system-sysvinit poweroff"><primary sortas="b-poweroff">poweroff</primary></indexterm> 194 <para>tells the kernel to halt the system and 195 switch off the computer. But see <command>halt</command>.</para> 196 </listitem> 197 </varlistentry> 198 199 <varlistentry id="reboot"> 200 <term><command>reboot</command></term> 201 <listitem> 202 <indexterm zone="ch-system-sysvinit reboot"><primary sortas="b-reboot">reboot</primary></indexterm> 203 <para>tells the kernel to reboot the system. But see <command>halt</command>.</para> 204 </listitem> 205 </varlistentry> 206 207 <varlistentry id="runlevel"> 208 <term><command>runlevel</command></term> 209 <listitem> 210 <indexterm zone="ch-system-sysvinit runlevel"><primary sortas="b-runlevel">runlevel</primary></indexterm> 211 <para>reports the previous and the current run-level, as noted in the last run-level 212 record in <filename>/var/run/utmp</filename>.</para> 213 </listitem> 214 </varlistentry> 215 216 <varlistentry id="shutdown"> 217 <term><command>shutdown</command></term> 218 <listitem> 219 <indexterm zone="ch-system-sysvinit shutdown"><primary sortas="b-shutdown">shutdown</primary></indexterm> 220 <para>brings the system down in a secure way, 221 signaling all processes and notifying all logged-in users.</para> 222 </listitem> 223 </varlistentry> 224 225 <varlistentry id="sulogin"> 226 <term><command>sulogin</command></term> 227 <listitem> 228 <indexterm zone="ch-system-sysvinit sulogin"><primary sortas="b-sulogin">sulogin</primary></indexterm> 229 <para>allows the superuser to log in. It is 230 normally invoked by <command>init</command> when the system goes into single user mode.</para> 231 </listitem> 232 </varlistentry> 233 234 <varlistentry id="telinit"> 235 <term><command>telinit</command></term> 236 <listitem> 237 <indexterm zone="ch-system-sysvinit telinit"><primary sortas="b-telinit">telinit</primary></indexterm> 238 <para>tells <command>init</command> which run-level to enter.</para> 239 </listitem> 240 </varlistentry> 241 242 <varlistentry id="utmpdump"> 243 <term><command>utmpdump</command></term> 244 <listitem> 245 <indexterm zone="ch-system-sysvinit utmpdump"><primary sortas="b-utmpdump">utmpdump</primary></indexterm> 246 <para>displays the content of the given login file in a friendlier format.</para> 247 </listitem> 248 </varlistentry> 249 250 <varlistentry id="wall"> 251 <term><command>wall</command></term> 252 <listitem> 253 <indexterm zone="ch-system-sysvinit wall"><primary sortas="b-wall">wall</primary></indexterm> 254 <para>writes a message to all logged-in users.</para> 255 </listitem> 256 </varlistentry> 257 </variablelist> 97 --> 258 98 259 99 </sect2> -
chapter06/tar.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Tar package contains an archiving program.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Tar installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils,24 Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 … … 49 43 <sect2 id="contents-tar" role="content"><title>Contents of Tar</title> 50 44 51 <segmentedlist> 52 <segtitle>Installed programs</segtitle> 53 <seglistitem><seg>rmt and tar</seg></seglistitem> 54 </segmentedlist> 55 56 <variablelist><title>Short descriptions</title> 57 58 <varlistentry id="rmt"> 59 <term><command>rmt</command></term> 60 <listitem> 61 <indexterm zone="ch-system-tar rmt"><primary sortas="b-rmt">rmt</primary></indexterm> 62 <para>is used to remotely manipulate a magnetic 63 tape drive, through an interprocess communication connection.</para> 64 </listitem> 65 </varlistentry> 66 67 <varlistentry id="tar"> 68 <term><command>tar</command></term> 69 <listitem> 70 <indexterm zone="ch-system-tar tar"><primary sortas="b-tar">tar</primary></indexterm> 71 <para>is used to create and extract files from archives, also known as tarballs.</para> 72 </listitem> 73 </varlistentry> 74 </variablelist> 45 <para>See testing</para> 75 46 76 47 </sect2> -
chapter06/texinfo.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Texinfo package contains programs for reading, writing, and14 converting Info documents.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Texinfo installation depends on</segtitle>24 <seglistitem><seg>Bash, Binutils, Coreutils,25 Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>26 </segmentedlist>27 20 </sect2> 28 21 … … 30 23 <title>Installation of Texinfo</title> 31 24 32 <para>Prepare Texinfo for compilation:</para> 33 34 <para>The patch listed below fixes a known segfault in texinfo:</para> 25 <para>Apply a patch:</para> 35 26 36 27 <screen><userinput>patch -Np1 -i ../texinfo-&texinfo-version;-segfault-1.patch</userinput></screen> … … 55 46 <screen><userinput>make TEXMF=/usr/share/texmf install-tex</userinput></screen> 56 47 57 <para>The meaning of the make parameter:</para> 58 59 <variablelist> 60 <varlistentry> 61 <term><parameter>TEXMF=/usr/share/texmf</parameter></term> 62 <listitem><para>The TEXMF 63 makefile variable holds the location of the root of your TeX tree if, for 64 example, you plan to install a TeX package later on.</para></listitem> 65 </varlistentry> 66 </variablelist> 67 68 <para>The Info documentation system uses a plain text file to hold its list of 69 menu entries. The file is located at <filename>/usr/share/info/dir</filename>. 70 Unfortunately, due to occasional problems in the Makefiles of various packages, 71 it can sometimes get out of step with the Info manuals actually installed on the 72 system. If ever you need to recreate the 73 <filename>/usr/share/info/dir</filename> file, the following optional commands 74 will accomplish the task:</para> 48 <para>If ever you need to recreate the 49 <filename>/usr/share/info/dir</filename> file, run this:</para> 75 50 76 51 <screen><userinput>cd /usr/share/info … … 85 60 <sect2 id="contents-texinfo" role="content"><title>Contents of Texinfo</title> 86 61 87 <segmentedlist> 88 <segtitle>Installed programs</segtitle> 89 <seglistitem><seg>info, infokey, install-info, 90 makeinfo, texi2dvi and texindex</seg></seglistitem> 91 </segmentedlist> 92 93 <variablelist><title>Short descriptions</title> 94 95 <varlistentry id="info"> 96 <term><command>info</command></term> 97 <listitem> 98 <indexterm zone="ch-system-texinfo info"><primary sortas="b-info">info</primary></indexterm> 99 <para>is used to read Info documents. Info 100 documents are a bit like man pages, but often go much deeper than just 101 explaining all the flags. Compare for example <command>man tar</command> 102 and <command>info tar</command>.</para> 103 </listitem> 104 </varlistentry> 105 106 <varlistentry id="infokey"> 107 <term><command>infokey</command></term> 108 <listitem> 109 <indexterm zone="ch-system-texinfo infokey"><primary sortas="b-infokey">infokey</primary></indexterm> 110 <para>compiles a source file containing Info 111 customizations into a binary format.</para> 112 </listitem> 113 </varlistentry> 114 115 <varlistentry id="install-info"> 116 <term><command>install-info</command></term> 117 <listitem> 118 <indexterm zone="ch-system-texinfo install-info"><primary sortas="b-install-info">install-info</primary></indexterm> 119 <para>is used to install Info files. It updates entries in the Info index file.</para> 120 </listitem> 121 </varlistentry> 122 123 <varlistentry id="makeinfo"> 124 <term><command>makeinfo</command></term> 125 <listitem> 126 <indexterm zone="ch-system-texinfo makeinfo"><primary sortas="b-makeinfo">makeinfo</primary></indexterm> 127 <para>translates the given Texinfo source 128 documents into various other formats: Info files, plain text, or HTML.</para> 129 </listitem> 130 </varlistentry> 131 132 <varlistentry id="texi2dvi"> 133 <term><command>texi2dvi</command></term> 134 <listitem> 135 <indexterm zone="ch-system-texinfo texi2dvi"><primary sortas="b-texi2dvi">texi2dvi</primary></indexterm> 136 <para>is used to format the given Texinfo 137 document into a device-independent file that can be printed.</para> 138 </listitem> 139 </varlistentry> 140 141 <varlistentry id="texindex"> 142 <term><command>texindex</command></term> 143 <listitem> 144 <indexterm zone="ch-system-texinfo texindex"><primary sortas="b-texindex">texindex</primary></indexterm> 145 <para>is used to sort Texinfo index files.</para> 146 </listitem> 147 </varlistentry> 148 </variablelist> 62 <para>See testing</para> 149 63 150 64 </sect2> -
chapter06/udev.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Udev package contains programs for dynamic creation of device nodes.</para>14 13 15 14 <segmentedlist> … … 28 27 <screen><userinput>make udevdir=/dev</userinput></screen> 29 28 30 <variablelist>31 <varlistentry>32 <term><parameter>udevdir=/dev</parameter></term>33 <listitem><para>This tells <command>udev</command> which directory it is to34 create device nodes in.</para></listitem>35 </varlistentry>36 </variablelist>37 38 29 <para>Install it:</para> 39 30 40 31 <screen><userinput>make udevdir=/dev install</userinput></screen> 41 32 42 <para>Udev's configuration is far from ideal by default, so we install our own 43 configuration files here:</para> 33 <para>Install our configuration files:</para> 44 34 45 35 <screen><userinput>cp ../udev-config-2.permissions /etc/udev/permissions.d/25-lfs.permissions 46 36 cp ../udev-config-1.rules /etc/udev/rules.d/25-lfs.rules</userinput></screen> 47 37 48 <para>Finally, we'll allow udev to create the full compliment of device 49 nodes, since earlier we only created a minimal set.</para> 38 <para>Create the full compliment of device nodes:</para> 50 39 51 40 <screen><userinput>/sbin/udevstart</userinput></screen> … … 56 45 <sect2 id="contents-udev" role="content"><title>Contents of Udev</title> 57 46 58 <segmentedlist> 59 <segtitle>Installed programs</segtitle> 60 <seglistitem><seg>udev, udevd, udevsend, udevstart, udevinfo, udevtest</seg></seglistitem> 61 </segmentedlist> 47 <para>See testing</para> 62 48 63 <variablelist><title>Short descriptions</title>64 65 <varlistentry id="udev">66 <term><command>udev</command></term>67 <listitem><indexterm zone="ch-system-udev udev"><primary68 sortas="b-udev">udev</primary></indexterm>69 <para>is used to create device nodes in <filename70 class="directory">/dev</filename> or to rename network interfaces (not in LFS)71 in response to hotplug events.</para>72 </listitem></varlistentry>73 74 <varlistentry id="udevd">75 <term><command>udevd</command></term>76 <listitem> <indexterm zone="ch-system-udev udevd"><primary77 sortas="b-udevd">udevd</primary></indexterm>78 <para>is a daemon that reorders hotplug events before submitting them to79 <command>udev</command>,80 thus avoiding various race conditions.</para>81 </listitem></varlistentry>82 83 <varlistentry id="udevsend">84 <term><command>udevsend</command></term>85 <listitem> <indexterm zone="ch-system-udev udevsend"><primary86 sortas="b-udevsend">udevsend</primary></indexterm>87 <para>is used to deliver hotplug events to <command>udevd</command>.</para>88 </listitem></varlistentry>89 90 <varlistentry id="udevstart">91 <term><command>udevstart</command></term>92 <listitem> <indexterm zone="ch-system-udev udevstart"><primary93 sortas="b-udevstart">udevstart</primary></indexterm>94 <para>is used to create device nodes in <filename95 class="directory">/dev</filename> that correspond to drivers compiled directly96 into the kernel. It performs that task by simulating hotplug events presumably97 dropped by the kernel before invocation of this program (e.g. because the root98 filesystem has not been mounted) and submitting such synthetic hotplug events99 to <command>udev</command>.</para>100 </listitem>101 </varlistentry>102 103 <varlistentry id="udevinfo">104 <term><command>udevinfo</command></term>105 <listitem> <indexterm zone="ch-system-udev udevinfo"><primary106 sortas="b-udevinfo">udevinfo</primary></indexterm>107 <para>allows users to query the <command>udev</command> database for108 information on any device currently present on the system. It also109 provides a way to query any device in the sysfs tree to help creating udev110 rules.</para>111 </listitem></varlistentry>112 113 <varlistentry id="udevtest">114 <term><command>udevtest</command></term>115 <listitem> <indexterm zone="ch-system-udev udevtest"><primary116 sortas="b-udevtest">udevtest</primary></indexterm>117 <para>simulates a <command>udev</command> run for the given device,118 and prints out the name of the node the real <command>udev</command> would119 have created, or (not in LFS) the name of the renamed network interface.</para>120 </listitem></varlistentry>121 122 <varlistentry id="etc-dev-d">123 <term><filename class="directory">/etc/dev.d</filename></term>124 <listitem> <indexterm zone="ch-system-udev etc-dev-d"><primary125 sortas="e-etc-dev-d">/etc/dev.d</primary></indexterm>126 <para>directory is supposed to contain user-written handlers for device127 creation hotplug events.</para>128 </listitem></varlistentry>129 130 <varlistentry id="etc-udev">131 <term><filename class="directory">/etc/udev</filename></term>132 <listitem> <indexterm zone="ch-system-udev etc-udev"><primary133 sortas="e-etc-udev">/etc/udev</primary></indexterm>134 <para>directory contains <command>udev</command> configuration files,135 device permissions and rules for device naming.</para>136 </listitem></varlistentry>137 </variablelist>138 49 </sect2> 139 50 -
chapter06/util-linux.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Util-linux package contains miscellaneous utility programs. Among14 them are utilities for handling file systems, consoles, partitions, and15 messages.</para>16 13 17 14 <segmentedlist> … … 21 18 </segmentedlist> 22 19 23 <segmentedlist>24 <segtitle>Util-linux installation depends on</segtitle>25 <seglistitem><seg>Bash, Binutils, Coreutils,26 Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib</seg></seglistitem>27 </segmentedlist>28 20 </sect2> 29 21 … … 31 23 <title>FHS compliance notes</title> 32 24 33 <para>The FHS recommends that we use <filename class="directory">/var/lib/hwclock</filename>, 34 instead of the usual <filename class="directory">/etc</filename>, as the location for the 35 <filename>adjtime</filename> file. To make the <command>hwclock</command> 36 program FHS-compliant, run the following:</para> 25 <para>Issue a sed sustitution:</para> 37 26 38 27 <screen><userinput>sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' hwclock/hwclock.c … … 52 41 <screen><userinput>make HAVE_KILL=yes HAVE_SLN=yes</userinput></screen> 53 42 54 <para>The meaning of the make parameters:</para>55 56 <variablelist>57 <varlistentry>58 <term><parameter>HAVE_KILL=yes</parameter></term>59 <listitem><para>This prevents the60 <command>kill</command> program (already installed by Procps) from being61 built and installed again.</para></listitem>62 </varlistentry>63 64 <varlistentry>65 <term><parameter>HAVE_SLN=yes</parameter></term>66 <listitem><para>This prevents the67 <command>sln</command> program (a statically linked68 <command>ln</command> already installed by Glibc) from being built and69 installed again.</para></listitem>70 </varlistentry>71 </variablelist>72 73 43 <para>Now install the package:</para> 74 44 … … 80 50 <sect2 id="contents-utillinux" role="content"><title>Contents of Util-linux</title> 81 51 82 <segmentedlist> 83 <segtitle>Installed programs</segtitle> 84 <seglistitem><seg>agetty, arch, blockdev, cal, cfdisk, chkdupexe, col, colcrt, 85 colrm, column, ctrlaltdel, cytune, ddate, dmesg, elvtune, fdformat, fdisk, 86 fsck.cramfs, fsck.minix, getopt, hexdump, hwclock, ipcrm, ipcs, isosize, line, 87 logger, look, losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap, 88 more, mount, namei, pg, pivot_root, ramsize (link to rdev), raw, rdev, readprofile, 89 rename, renice, rev, rootflags (link to rdev), script, setfdprm, setsid, setterm, 90 sfdisk, swapoff (link to swapon), swapon, tunelp, ul, umount, vidmode (link to rdev), 91 whereis and write</seg></seglistitem> 92 </segmentedlist> 93 94 <variablelist><title>Short descriptions</title> 95 96 <varlistentry id="agetty"> 97 <term><command>agetty</command></term> 98 <listitem> 99 <indexterm zone="ch-system-util-linux agetty"><primary sortas="b-agetty">agetty</primary></indexterm> 100 <para>opens a tty port, prompts for a login name, 101 and then invokes the <command>login</command> program.</para> 102 </listitem> 103 </varlistentry> 104 105 <varlistentry id="arch"> 106 <term><command>arch</command></term> 107 <listitem> 108 <indexterm zone="ch-system-util-linux arch"><primary sortas="b-arch">arch</primary></indexterm> 109 <para>reports the machine's architecture.</para> 110 </listitem> 111 </varlistentry> 112 113 <varlistentry id="blockdev"> 114 <term><command>blockdev</command></term> 115 <listitem> 116 <indexterm zone="ch-system-util-linux blockdev"><primary sortas="b-blockdev">blockdev</primary></indexterm> 117 <para>allows you to call block device ioctls from the command line.</para> 118 </listitem> 119 </varlistentry> 120 121 <varlistentry id="cal"> 122 <term><command>cal</command></term> 123 <listitem> 124 <indexterm zone="ch-system-util-linux cal"><primary sortas="b-cal">cal</primary></indexterm> 125 <para>displays a simple calendar.</para> 126 </listitem> 127 </varlistentry> 128 129 <varlistentry id="cfdisk"> 130 <term><command>cfdisk</command></term> 131 <listitem> 132 <indexterm zone="ch-system-util-linux cfdisk"><primary sortas="b-cfdisk">cfdisk</primary></indexterm> 133 <para>is used to manipulate the partition table of the given device.</para> 134 </listitem> 135 </varlistentry> 136 137 <varlistentry id="chkdupexe"> 138 <term><command>chkdupexe</command></term> 139 <listitem> 140 <indexterm zone="ch-system-util-linux chkdupexe"><primary sortas="b-chkdupexe">chkdupexe</primary></indexterm> 141 <para>finds duplicate executables.</para> 142 </listitem> 143 </varlistentry> 144 145 <varlistentry id="col"> 146 <term><command>col</command></term> 147 <listitem> 148 <indexterm zone="ch-system-util-linux col"><primary sortas="b-col">col</primary></indexterm> 149 <para>filters out reverse line feeds.</para> 150 </listitem> 151 </varlistentry> 152 153 <varlistentry id="colcrt"> 154 <term><command>colcrt</command></term> 155 <listitem> 156 <indexterm zone="ch-system-util-linux colcrt"><primary sortas="b-colcrt">colcrt</primary></indexterm> 157 <para>is used to filter nroff output for terminals 158 that lack some capabilities such as overstriking and half-lines.</para> 159 </listitem> 160 </varlistentry> 161 162 <varlistentry id="colrm"> 163 <term><command>colrm</command></term> 164 <listitem> 165 <indexterm zone="ch-system-util-linux colrm"><primary sortas="b-colrm">colrm</primary></indexterm> 166 <para>filters out the given columns.</para> 167 </listitem> 168 </varlistentry> 169 170 <varlistentry id="column"> 171 <term><command>column</command></term> 172 <listitem> 173 <indexterm zone="ch-system-util-linux column"><primary sortas="b-column">column</primary></indexterm> 174 <para>formats a given file into multiple columns.</para> 175 </listitem> 176 </varlistentry> 177 178 <varlistentry id="ctrlaltdel"> 179 <term><command>ctrlaltdel</command></term> 180 <listitem> 181 <indexterm zone="ch-system-util-linux ctrlaltdel"><primary sortas="b-ctrlaltdel">ctrlaltdel</primary></indexterm> 182 <para>sets the function of the Ctrl+Alt+Del key combination to a hard or a 183 soft reset.</para> 184 </listitem> 185 </varlistentry> 186 187 <varlistentry id="cytune"> 188 <term><command>cytune</command></term> 189 <listitem> 190 <indexterm zone="ch-system-util-linux cytune"><primary sortas="b-cytune">cytune</primary></indexterm> 191 <para>was used to tune the parameters of the 192 serial line drivers for Cyclades cards.</para> 193 </listitem> 194 </varlistentry> 195 196 <varlistentry id="ddate"> 197 <term><command>ddate</command></term> 198 <listitem> 199 <indexterm zone="ch-system-util-linux ddate"><primary sortas="b-ddate">ddate</primary></indexterm> 200 <para>gives the Discordian date, or converts the 201 given Gregorian date to a Discordian one.</para> 202 </listitem> 203 </varlistentry> 204 205 <varlistentry id="dmesg"> 206 <term><command>dmesg</command></term> 207 <listitem> 208 <indexterm zone="ch-system-util-linux dmesg"><primary sortas="b-dmesg">dmesg</primary></indexterm> 209 <para>dumps the kernel boot messages.</para> 210 </listitem> 211 </varlistentry> 212 213 <varlistentry id="elvtune"> 214 <term><command>elvtune</command></term> 215 <listitem> 216 <indexterm zone="ch-system-util-linux elvtune"><primary sortas="b-elvtune">elvtune</primary></indexterm> 217 <para>can be used to tune the performance 218 and interactivity of a block device.</para> 219 </listitem> 220 </varlistentry> 221 222 <varlistentry id="fdformat"> 223 <term><command>fdformat</command></term> 224 <listitem> 225 <indexterm zone="ch-system-util-linux fdformat"><primary sortas="b-fdformat">fdformat</primary></indexterm> 226 <para>low-level formats a floppy disk.</para> 227 </listitem> 228 </varlistentry> 229 230 <varlistentry id="fdisk"> 231 <term><command>fdisk</command></term> 232 <listitem> 233 <indexterm zone="ch-system-util-linux fdisk"><primary sortas="b-fdisk">fdisk</primary></indexterm> 234 <para>could be used to manipulate the partition table of the given device.</para> 235 </listitem> 236 </varlistentry> 237 238 <varlistentry id="fsck.cramfs"> 239 <term><command>fsck.cramfs</command></term> 240 <listitem> 241 <indexterm zone="ch-system-util-linux fsck.cramfs"><primary sortas="b-fsck.cramfs">fsck.cramfs</primary></indexterm> 242 <para>performs a consistency check on the 243 Cramfs file system on the given device.</para> 244 </listitem> 245 </varlistentry> 246 247 <varlistentry id="fsck.minix"> 248 <term><command>fsck.minix</command></term> 249 <listitem> 250 <indexterm zone="ch-system-util-linux fsck.minix"><primary sortas="b-fsck.minix">fsck.minix</primary></indexterm> 251 <para>performs a consistency check on the 252 Minix file system on the given device.</para> 253 </listitem> 254 </varlistentry> 255 256 <varlistentry id="getopt"> 257 <term><command>getopt</command></term> 258 <listitem> 259 <indexterm zone="ch-system-util-linux getopt"><primary sortas="b-getopt">getopt</primary></indexterm> 260 <para>parses options in the given command line.</para> 261 </listitem> 262 </varlistentry> 263 264 <varlistentry id="hexdump"> 265 <term><command>hexdump</command></term> 266 <listitem> 267 <indexterm zone="ch-system-util-linux hexdump"><primary sortas="b-hexdump">hexdump</primary></indexterm> 268 <para>dumps the given file in hexadecimal, or in another given format.</para> 269 </listitem> 270 </varlistentry> 271 272 <varlistentry id="hwclock"> 273 <term><command>hwclock</command></term> 274 <listitem> 275 <indexterm zone="ch-system-util-linux hwclock"><primary sortas="b-hwclock">hwclock</primary></indexterm> 276 <para>is used to read or set the system's hardware clock, also called the RTC 277 (Real-Time Clock) or BIOS (Basic Input-Output System) clock.</para> 278 </listitem> 279 </varlistentry> 280 281 <varlistentry id="ipcrm"> 282 <term><command>ipcrm</command></term> 283 <listitem> 284 <indexterm zone="ch-system-util-linux ipcrm"><primary sortas="b-ipcrm">ipcrm</primary></indexterm> 285 <para>removes the given IPC resource.</para> 286 </listitem> 287 </varlistentry> 288 289 <varlistentry id="ipcs"> 290 <term><command>ipcs</command></term> 291 <listitem> 292 <indexterm zone="ch-system-util-linux ipcs"><primary sortas="b-ipcs">ipcs</primary></indexterm> 293 <para>provides IPC status information.</para> 294 </listitem> 295 </varlistentry> 296 297 <varlistentry id="isosize"> 298 <term><command>isosize</command></term> 299 <listitem> 300 <indexterm zone="ch-system-util-linux isosize"><primary sortas="b-isosize">isosize</primary></indexterm> 301 <para>reports the size of an iso9660 file system.</para> 302 </listitem> 303 </varlistentry> 304 305 <varlistentry id="line"> 306 <term><command>line</command></term> 307 <listitem> 308 <indexterm zone="ch-system-util-linux line"><primary sortas="b-line">line</primary></indexterm> 309 <para>copies a single line.</para> 310 </listitem> 311 </varlistentry> 312 313 <varlistentry id="logger"> 314 <term><command>logger</command></term> 315 <listitem> 316 <indexterm zone="ch-system-util-linux logger"><primary sortas="b-logger">logger</primary></indexterm> 317 <para>enters the given message into the system log.</para> 318 </listitem> 319 </varlistentry> 320 321 <varlistentry id="look"> 322 <term><command>look</command></term> 323 <listitem> 324 <indexterm zone="ch-system-util-linux look"><primary sortas="b-look">look</primary></indexterm> 325 <para>displays lines that begin with the given string.</para> 326 </listitem> 327 </varlistentry> 328 329 <varlistentry id="losetup"> 330 <term><command>losetup</command></term> 331 <listitem> 332 <indexterm zone="ch-system-util-linux losetup"><primary sortas="b-losetup">losetup</primary></indexterm> 333 <para>is used to set up and control loop devices.</para> 334 </listitem> 335 </varlistentry> 336 337 <varlistentry id="mcookie"> 338 <term><command>mcookie</command></term> 339 <listitem> 340 <indexterm zone="ch-system-util-linux mcookie"><primary sortas="b-mcookie">mcookie</primary></indexterm> 341 <para>generates magic cookies, 128-bit random hexadecimal numbers, 342 for <command>xauth</command>.</para> 343 </listitem> 344 </varlistentry> 345 346 <varlistentry id="mkfs"> 347 <term><command>mkfs</command></term> 348 <listitem> 349 <indexterm zone="ch-system-util-linux mkfs"><primary sortas="b-mkfs">mkfs</primary></indexterm> 350 <para>is used to build a file system on a device 351 (usually a hard disk partition).</para> 352 </listitem> 353 </varlistentry> 354 355 <varlistentry id="mkfs.bfs"> 356 <term><command>mkfs.bfs</command></term> 357 <listitem> 358 <indexterm zone="ch-system-util-linux mkfs.bfs"><primary sortas="b-mkfs.bfs">mkfs.bfs</primary></indexterm> 359 <para>creates an SCO (Santa Cruz Operations) bfs file system.</para> 360 </listitem> 361 </varlistentry> 362 363 <varlistentry id="mkfs.cramfs"> 364 <term><command>mkfs.cramfs</command></term> 365 <listitem> 366 <indexterm zone="ch-system-util-linux mkfs.cramfs"><primary sortas="b-mkfs.cramfs">mkfs.cramfs</primary></indexterm> 367 <para>creates a cramfs file system.</para> 368 </listitem> 369 </varlistentry> 370 371 <varlistentry id="mkfs.minix"> 372 <term><command>mkfs.minix</command></term> 373 <listitem> 374 <indexterm zone="ch-system-util-linux mkfs.minix"><primary sortas="b-mkfs.minix">mkfs.minix</primary></indexterm> 375 <para>creates a Minix file system.</para> 376 </listitem> 377 </varlistentry> 378 379 <varlistentry id="mkswap"> 380 <term><command>mkswap</command></term> 381 <listitem> 382 <indexterm zone="ch-system-util-linux mkswap"><primary sortas="b-mkswap">mkswap</primary></indexterm> 383 <para>initializes the given device or file to be used as a swap area.</para> 384 </listitem> 385 </varlistentry> 386 387 <varlistentry id="more"> 388 <term><command>more</command></term> 389 <listitem> 390 <indexterm zone="ch-system-util-linux more"><primary sortas="b-more">more</primary></indexterm> 391 <para>is a filter for paging through text one 392 screen full at a time. But <command>less</command> is much better.</para> 393 </listitem> 394 </varlistentry> 395 396 <varlistentry id="mount"> 397 <term><command>mount</command></term> 398 <listitem> 399 <indexterm zone="ch-system-util-linux mount"><primary sortas="b-mount">mount</primary></indexterm> 400 <para>attaches the file system on the given device to a specified directory (thus 401 hiding the contents of that directory) in the file-system tree.</para> 402 </listitem> 403 </varlistentry> 404 405 <varlistentry id="namei"> 406 <term><command>namei</command></term> 407 <listitem> 408 <indexterm zone="ch-system-util-linux namei"><primary sortas="b-namei">namei</primary></indexterm> 409 <para>shows the symbolic links in the given pathnames.</para> 410 </listitem> 411 </varlistentry> 412 413 <varlistentry id="pg"> 414 <term><command>pg</command></term> 415 <listitem> 416 <indexterm zone="ch-system-util-linux pg"><primary sortas="b-pg">pg</primary></indexterm> 417 <para>displays a text file one screen full at a time.</para> 418 </listitem> 419 </varlistentry> 420 421 <varlistentry id="pivot_root"> 422 <term><command>pivot_root</command></term> 423 <listitem> 424 <indexterm zone="ch-system-util-linux pivot_root"><primary sortas="b-pivot_root">pivot_root</primary></indexterm> 425 <para>makes the given file system the new 426 root file system of the current process.</para> 427 </listitem> 428 </varlistentry> 429 430 <varlistentry id="ramsize"> 431 <term><command>ramsize</command></term> 432 <listitem> 433 <indexterm zone="ch-system-util-linux ramsize"><primary sortas="b-ramsize">ramsize</primary></indexterm> 434 <para>is used to set the size of the RAM disk in a bootable image.</para> 435 </listitem> 436 </varlistentry> 437 438 <varlistentry id="rdev"> 439 <term><command>rdev</command></term> 440 <listitem> 441 <indexterm zone="ch-system-util-linux rdev"><primary sortas="b-rdev">rdev</primary></indexterm> 442 <para>is used to query and set the root 443 device and other things in a bootable image.</para> 444 </listitem> 445 </varlistentry> 446 447 <varlistentry id="readprofile"> 448 <term><command>readprofile</command></term> 449 <listitem> 450 <indexterm zone="ch-system-util-linux readprofile"><primary sortas="b-readprofile">readprofile</primary></indexterm> 451 <para>reads kernel profiling information.</para> 452 </listitem> 453 </varlistentry> 454 455 <varlistentry id="rename"> 456 <term><command>rename</command></term> 457 <listitem> 458 <indexterm zone="ch-system-util-linux rename"><primary sortas="b-rename">rename</primary></indexterm> 459 <para>renames the given files, replacing a given string with another.</para> 460 </listitem> 461 </varlistentry> 462 463 <varlistentry id="renice"> 464 <term><command>renice</command></term> 465 <listitem> 466 <indexterm zone="ch-system-util-linux renice"><primary sortas="b-renice">renice</primary></indexterm> 467 <para>is used to alter the priority of running processes.</para> 468 </listitem> 469 </varlistentry> 470 471 <varlistentry id="rev"> 472 <term><command>rev</command></term> 473 <listitem> 474 <indexterm zone="ch-system-util-linux rev"><primary sortas="b-rev">rev</primary></indexterm> 475 <para>reverses the lines of a given file.</para> 476 </listitem> 477 </varlistentry> 478 479 <varlistentry id="rootflags"> 480 <term><command>rootflags</command></term> 481 <listitem> 482 <indexterm zone="ch-system-util-linux rootflags"><primary sortas="b-rootflags">rootflags</primary></indexterm> 483 <para>is used to set the rootflags in a bootable image.</para> 484 </listitem> 485 </varlistentry> 486 487 <varlistentry id="script"> 488 <term><command>script</command></term> 489 <listitem> 490 <indexterm zone="ch-system-util-linux script"><primary sortas="b-script">script</primary></indexterm> 491 <para>makes a typescript of a terminal session, of everything printed to 492 the terminal.</para> 493 </listitem> 494 </varlistentry> 495 496 <varlistentry id="setfdprm"> 497 <term><command>setfdprm</command></term> 498 <listitem> 499 <indexterm zone="ch-system-util-linux setfdprm"><primary sortas="b-setfdprm">setfdprm</primary></indexterm> 500 <para>sets user-provided floppy disk parameters.</para> 501 </listitem> 502 </varlistentry> 503 504 <varlistentry id="setsid"> 505 <term><command>setsid</command></term> 506 <listitem> 507 <indexterm zone="ch-system-util-linux setsid"><primary sortas="b-setsid">setsid</primary></indexterm> 508 <para>runs the given program in a new session.</para> 509 </listitem> 510 </varlistentry> 511 512 <varlistentry id="setterm"> 513 <term><command>setterm</command></term> 514 <listitem> 515 <indexterm zone="ch-system-util-linux setterm"><primary sortas="b-setterm">setterm</primary></indexterm> 516 <para>is used to set terminal attributes.</para> 517 </listitem> 518 </varlistentry> 519 520 <varlistentry id="sfdisk"> 521 <term><command>sfdisk</command></term> 522 <listitem> 523 <indexterm zone="ch-system-util-linux sfdisk"><primary sortas="b-sfdisk">sfdisk</primary></indexterm> 524 <para>is a disk partition table manipulator.</para> 525 </listitem> 526 </varlistentry> 527 528 <varlistentry id="swapdev"> 529 <term><command>swapdev</command></term> 530 <listitem> 531 <indexterm zone="ch-system-util-linux swapdev"><primary sortas="b-swapdev">swapdev</primary></indexterm> 532 <para>is used to set the swap device in a bootable image.</para> 533 </listitem> 534 </varlistentry> 535 536 <varlistentry id="swapoff"> 537 <term><command>swapoff</command></term> 538 <listitem> 539 <indexterm zone="ch-system-util-linux swapoff"><primary sortas="b-swapoff">swapoff</primary></indexterm> 540 <para>disables devices and files for paging and swapping.</para> 541 </listitem> 542 </varlistentry> 543 544 <varlistentry id="swapon"> 545 <term><command>swapon</command></term> 546 <listitem> 547 <indexterm zone="ch-system-util-linux swapon"><primary sortas="b-swapon">swapon</primary></indexterm> 548 <para>enables devices and files for paging and swapping.</para> 549 </listitem> 550 </varlistentry> 551 552 <varlistentry id="tunelp"> 553 <term><command>tunelp</command></term> 554 <listitem> 555 <indexterm zone="ch-system-util-linux tunelp"><primary sortas="b-tunelp">tunelp</primary></indexterm> 556 <para>is used to tune the parameters of the line printer.</para> 557 </listitem> 558 </varlistentry> 559 560 <varlistentry id="ul"> 561 <term><command>ul</command></term> 562 <listitem> 563 <indexterm zone="ch-system-util-linux ul"><primary sortas="b-ul">ul</primary></indexterm> 564 <para>is a filter for translating underscores into 565 escape sequences indicating underlining for the terminal in use.</para> 566 </listitem> 567 </varlistentry> 568 569 <varlistentry id="umount"> 570 <term><command>umount</command></term> 571 <listitem> 572 <indexterm zone="ch-system-util-linux umount"><primary sortas="b-umount">umount</primary></indexterm> 573 <para>disconnects a file system from the system's file tree.</para> 574 </listitem> 575 </varlistentry> 576 577 <varlistentry id="vidmode"> 578 <term><command>vidmode</command></term> 579 <listitem> 580 <indexterm zone="ch-system-util-linux vidmode"><primary sortas="b-vidmode">vidmode</primary></indexterm> 581 <para>could be used to set the video mode in a bootable image.</para> 582 </listitem> 583 </varlistentry> 584 585 <varlistentry id="whereis"> 586 <term><command>whereis</command></term> 587 <listitem> 588 <indexterm zone="ch-system-util-linux whereis"><primary sortas="b-whereis">whereis</primary></indexterm> 589 <para>reports the location of binary, the 590 source, and the manual page for the given command.</para> 591 </listitem> 592 </varlistentry> 593 594 <varlistentry id="write"> 595 <term><command>write</command></term> 596 <listitem> 597 <indexterm zone="ch-system-util-linux write"><primary sortas="b-write">write</primary></indexterm> 598 <para>sends a message to the given user, 599 <emphasis>if</emphasis> that user has not disabled such messages.</para> 600 </listitem> 601 </varlistentry> 602 </variablelist> 52 <para>See testing</para> 603 53 604 54 </sect2> -
chapter06/vim.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Vim package contains a powerful text editor.</para>14 13 15 14 <segmentedlist> … … 19 18 </segmentedlist> 20 19 21 <segmentedlist>22 <segtitle>Vim installation depends on</segtitle>23 <seglistitem><seg>Bash, Binutils, Coreutils, Diffutils,24 GCC, Glibc, Grep, Make, Ncurses, Sed</seg></seglistitem>25 </segmentedlist>26 27 <tip>28 <title>Alternatives to Vim</title>29 <para>If you prefer another editor -- like Emacs, Joe, or Nano -- to Vim,30 have a look at <ulink url="&blfs-root;view/stable/postlfs/editors.html"/> for31 suggested installation instructions.</para>32 </tip>33 20 </sect2> 34 21 … … 36 23 <title>Installation of Vim</title> 37 24 38 <para>First, unpack both 39 <filename>vim-&vim-version;.tar.bz2</filename> and (optionally) 40 <filename>vim-&vim-version;-lang.tar.gz</filename> archives into the same 41 directory. Then change the default locations of the <filename>vimrc</filename> and 42 <filename>gvimrc</filename> configuration files to <filename class="directory">/etc</filename>.</para> 25 <para>Change the default locations of the configuration files:</para> 43 26 44 27 <screen><userinput>echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h … … 49 32 <screen><userinput>./configure --prefix=/usr --enable-multibyte</userinput></screen> 50 33 51 <para>The optional but highly recommended52 <parameter>--enable-multibyte</parameter> switch53 includes support for editing files in multibyte character encodings into54 <command>vim</command>.55 It is needed for those people who ignore our recommendation not to56 use LFS in locales with multibyte character sets. It is also needed for57 people who want to be able to edit text files initially created58 in Linux distributions like Fedora Core59 that use UTF-8 as a default character set.</para>60 61 34 <para>Compile the package:</para> 62 35 63 36 <screen><userinput>make</userinput></screen> 64 37 65 <para>To test the results, you can issue: 66 <userinput>make test</userinput>. However, this test suite outputs a lot of 67 seemingly garbage characters to the screen, and this can wreak havoc with the 68 settings of the current terminal. Therefore the running of the test suite here 69 is strictly optional.</para> 38 <para>To test the results, issue: 39 <userinput>make test</userinput></para> 70 40 71 41 <para>Now install the package:</para> … … 73 43 <screen><userinput>make install</userinput></screen> 74 44 75 <para>Many users are used to using <command>vi</command>, instead of 76 <command>vim</command>. To let them execute <command>vim</command> when 77 they habitually enter <command>vi</command>, create a symlink:</para> 45 <para>Create a symlink:</para> 78 46 79 47 <screen><userinput>ln -s vim /usr/bin/vi</userinput></screen> 80 81 <para>If you are going to install the X Window System on your LFS system, you82 may want to re-compile Vim after having installed X. Vim comes with a nice GUI83 version of the editor that requires X and a few other libraries to be84 installed. For more information read the Vim documentation.</para>85 48 86 49 </sect2> … … 88 51 89 52 <sect2 id="conf-vim" role="configuration"><title>Configuring Vim</title> 90 <indexterm zone="conf-vim"><primary sortas="e-/etc/vim">/etc/vim</primary></indexterm>91 53 92 <para>By default, <command>vim</command> runs in vi-incompatible mode. Some 93 people might not like this, but we prefer to run <command>vim</command> in its 94 own mode (else we wouldn't have included it in this book, but the original 95 <command>vi</command>). We've included the setting of <quote>nocompatible</quote> 96 below to high-light the fact that the new behavior is being used. It 97 also reminds those who would change to <quote>compatible</quote> mode that it should 98 appear first because it changes other settings and overrides must come 99 after this setting. Create a default vim configuration file by running 54 <para>Create a default vim configuration file by running 100 55 the following:</para> 101 56 … … 114 69 EOF</userinput></screen> 115 70 116 <para>The <parameter>set nocompatible</parameter> makes117 <command>vim</command> behave in a more useful way (the default) than the118 vi-compatible manner. Remove the <quote>no</quote> if you want the old <command>vi</command>119 behavior. The <parameter>set backspace=2</parameter> allows120 backspacing over line breaks, autoindents and the start of insert. The121 <parameter>syntax on</parameter> enables <command>vim</command>'s122 syntax highliting.123 71 <!-- XXX: the ascii-only files are considered to be in utf-8 - that's not what 124 72 one expects . That's why fileencodings stuff is commented out for now … … 134 82 passed the <parameter>- -enable-multibyte</parameter> switch to the 135 83 <command>./configure</command> command above, this line will not work. --> 136 Finally, the <emphasis>if</emphasis> statement with the137 <parameter>set background=dark</parameter> corrects <command>vim</command>'s138 guess about the background color of some terminal emulators. This gives the139 highliting a better color scheme for use on the black background of140 these programs.141 </para>142 84 143 85 <para>Documentation for other available options can be obtained by running … … 151 93 <sect2 id="contents-vim" role="content"><title>Contents of Vim</title> 152 94 153 <segmentedlist> 154 <segtitle>Installed programs</segtitle> 155 <seglistitem><seg>efm_filter.pl, efm_perl.pl, ex (link to vim), less.sh, mve.awk, 156 pltags.pl, ref, rview (link to vim), rvim (link to vim), shtags.pl, tcltags, vi (link to vim), 157 view (link to vim), vim, vim132, vim2html.pl, vimdiff (link to vim), vimm, vimspell.sh, 158 vimtutor and xxd</seg></seglistitem> 159 </segmentedlist> 160 161 <variablelist><title>Short descriptions</title> 162 163 <varlistentry id="efm_filter.pl"> 164 <term><command>efm_filter.pl</command></term> 165 <listitem> 166 <indexterm zone="ch-system-vim efm_filter.pl"><primary sortas="b-efm_filter.pl">efm_filter.pl</primary></indexterm> 167 <para>is a filter for creating an error file that can be read by <command>vim</command>.</para> 168 </listitem> 169 </varlistentry> 170 171 <varlistentry id="efm_perl.pl"> 172 <term><command>efm_perl.pl</command></term> 173 <listitem> 174 <indexterm zone="ch-system-vim efm_perl.pl"><primary sortas="b-efm_perl.pl">efm_perl.pl</primary></indexterm> 175 <para>reformats the error messages of the 176 Perl interpreter for use with the <quote>quickfix</quote> mode of <command>vim</command>.</para> 177 </listitem> 178 </varlistentry> 179 180 <varlistentry id="ex"> 181 <term><command>ex</command></term> 182 <listitem> 183 <indexterm zone="ch-system-vim ex"><primary sortas="b-ex">ex</primary></indexterm> 184 <para>starts <command>vim</command> in ex mode.</para> 185 </listitem> 186 </varlistentry> 187 188 <varlistentry id="less.sh"> 189 <term><command>less.sh</command></term> 190 <listitem> 191 <indexterm zone="ch-system-vim less.sh"><primary sortas="b-less.sh">less.sh</primary></indexterm> 192 <para>is a script that starts <command>vim</command> with less.vim.</para> 193 </listitem> 194 </varlistentry> 195 196 <varlistentry id="mve.awk"> 197 <term><command>mve.awk</command></term> 198 <listitem> 199 <indexterm zone="ch-system-vim mve.awk"><primary sortas="b-mve.awk">mve.awk</primary></indexterm> 200 <para>processes <command>vim</command> errors.</para> 201 </listitem> 202 </varlistentry> 203 204 <varlistentry id="pltags.pl"> 205 <term><command>pltags.pl</command></term> 206 <listitem> 207 <indexterm zone="ch-system-vim pltags.pl"><primary sortas="b-pltags.pl">pltags.pl</primary></indexterm> 208 <para>creates a tags file for Perl code, for use by <command>vim</command>.</para> 209 </listitem> 210 </varlistentry> 211 212 <varlistentry id="ref"> 213 <term><command>ref</command></term> 214 <listitem> 215 <indexterm zone="ch-system-vim ref"><primary sortas="b-ref">ref</primary></indexterm> 216 <para>checks the spelling of arguments.</para> 217 </listitem> 218 </varlistentry> 219 220 <varlistentry id="rview"> 221 <term><command>rview</command></term> 222 <listitem> 223 <indexterm zone="ch-system-vim rview"><primary sortas="b-rview">rview</primary></indexterm> 224 <para>is a restricted version of <command>view</command>: no shell 225 commands can be started and <command>view</command> can't be suspended.</para> 226 </listitem> 227 </varlistentry> 228 229 <varlistentry id="rvim"> 230 <term><command>rvim</command></term> 231 <listitem> 232 <indexterm zone="ch-system-vim rvim"><primary sortas="b-rvim">rvim</primary></indexterm> 233 <para>is a restricted version of <command>vim</command>: no shell 234 commands can be started and <command>vim</command> can't be suspended.</para> 235 </listitem> 236 </varlistentry> 237 238 <varlistentry id="shtags.pl"> 239 <term><command>shtags.pl</command></term> 240 <listitem> 241 <indexterm zone="ch-system-vim shtags.pl"><primary sortas="b-shtags.pl">shtags.pl</primary></indexterm> 242 <para>generates a tag file for Perl scripts.</para> 243 </listitem> 244 </varlistentry> 245 246 <varlistentry id="tcltags"> 247 <term><command>tcltags</command></term> 248 <listitem> 249 <indexterm zone="ch-system-vim tcltags"><primary sortas="b-tcltags">tcltags</primary></indexterm> 250 <para>generates a tag file for TCL code.</para> 251 </listitem> 252 </varlistentry> 253 254 <varlistentry id="view"> 255 <term><command>view</command></term> 256 <listitem> 257 <indexterm zone="ch-system-vim view"><primary sortas="b-view">view</primary></indexterm> 258 <para>starts <command>vim</command> in read-only mode.</para> 259 </listitem> 260 </varlistentry> 261 262 <varlistentry id="vim"> 263 <term><command>vim</command></term> 264 <listitem> 265 <indexterm zone="ch-system-vim vim"><primary sortas="b-vim">vim</primary></indexterm> 266 <para>is the editor.</para> 267 </listitem> 268 </varlistentry> 269 270 <varlistentry id="vim132"> 271 <term><command>vim132</command></term> 272 <listitem> 273 <indexterm zone="ch-system-vim vim132"><primary sortas="b-vim132">vim132</primary></indexterm> 274 <para>starts <command>vim</command> with the terminal in 132-column mode.</para> 275 </listitem> 276 </varlistentry> 277 278 <varlistentry id="vim2html.pl"> 279 <term><command>vim2html.pl</command></term> 280 <listitem> 281 <indexterm zone="ch-system-vim vim2html.pl"><primary sortas="b-vim2html.pl">vim2html.pl</primary></indexterm> 282 <para>converts Vim documentation to HTML.</para> 283 </listitem> 284 </varlistentry> 285 286 <varlistentry id="vimdiff"> 287 <term><command>vimdiff</command></term> 288 <listitem> 289 <indexterm zone="ch-system-vim vimdiff"><primary sortas="b-vimdiff">vimdiff</primary></indexterm> 290 <para>edits two or three versions of a file with <command>vim</command> and show differences.</para> 291 </listitem> 292 </varlistentry> 293 294 <varlistentry id="vimm"> 295 <term><command>vimm</command></term> 296 <listitem> 297 <indexterm zone="ch-system-vim vimm"><primary sortas="b-vimm">vimm</primary></indexterm> 298 <para>enables the DEC locator input model on a remote terminal.</para> 299 </listitem> 300 </varlistentry> 301 302 <varlistentry id="vimspell.sh"> 303 <term><command>vimspell.sh</command></term> 304 <listitem> 305 <indexterm zone="ch-system-vim vimspell.sh"><primary sortas="b-vimspell.sh">vimspell.sh</primary></indexterm> 306 <para>is a script which spells a file and generates the syntax statements necessary 307 to highlight in <command>vim</command>. This script requires the old Unix <command>spell</command> 308 command, which is provided neither in LFS nor in BLFS.</para> 309 </listitem> 310 </varlistentry> 311 312 <varlistentry id="vimtutor"> 313 <term><command>vimtutor</command></term> 314 <listitem> 315 <indexterm zone="ch-system-vim vimtutor"><primary sortas="b-vimtutor">vimtutor</primary></indexterm> 316 <para>teaches you the basic keys and commands of <command>vim</command>.</para> 317 </listitem> 318 </varlistentry> 319 320 <varlistentry id="xxd"> 321 <term><command>xxd</command></term> 322 <listitem> 323 <indexterm zone="ch-system-vim xxd"><primary sortas="b-xxd">xxd</primary></indexterm> 324 <para>makes a hex dump of the given file. It can 325 also do the reverse, so it can be used for binary patching.</para> 326 </listitem> 327 </varlistentry> 328 </variablelist> 95 <para>See testing</para> 329 96 330 97 </sect2> -
chapter06/zlib.xml
raaa3260 r3f0c882 11 11 12 12 <sect2 role="package"><title/> 13 <para>The Zlib package contains compression and un-compression routines used by14 some programs.</para>15 13 16 14 <segmentedlist> … … 20 18 </segmentedlist> 21 19 22 <segmentedlist>23 <segtitle>Zlib installation depends on</segtitle>24 <seglistitem><seg>Binutils, Coreutils, GCC, Glibc, Make, Sed</seg></seglistitem>25 </segmentedlist>26 20 </sect2> 27 21 28 22 <sect2 role="installation"> 29 23 <title>Installation of Zlib</title> 30 31 <note><para>Zlib is known to build its shared library incorrectly if CFLAGS is32 specified in the environment. If you are using your own CFLAGS variable, be33 sure to add the <parameter>-fPIC</parameter> directive to your CFLAGS for the34 duration of the below <command>configure</command> command, then remove it35 afterwards.</para></note>36 24 37 25 <para>Prepare Zlib for compilation:</para> … … 77 65 <sect2 id="contents-zlib" role="content"><title>Contents of Zlib</title> 78 66 79 <segmentedlist> 80 <segtitle>Installed libraries</segtitle> 81 <seglistitem><seg>libz[a,so]</seg></seglistitem> 82 </segmentedlist> 83 84 <variablelist><title>Short description</title> 85 86 <varlistentry id="libz"> 87 <term><filename class="libraryfile">libz*</filename></term> 88 <listitem> 89 <indexterm zone="ch-system-zlib libz"><primary sortas="c-libz*">libz*</primary></indexterm> 90 <para>contains compression and un-compression 91 functions used by some programs.</para> 92 </listitem> 93 </varlistentry> 94 </variablelist> 67 <para>See testing</para> 95 68 96 69 </sect2>
Note:
See TracChangeset
for help on using the changeset viewer.