Linux From Scratch

Version 7.2

製作： Gerard Beekmans

編集： Matthew Burgess 、Bruce Dubbs

日本語訳： 松山 道夫 (20120902 版)

   製作著作 © 1999-2012 Gerard Beekmans

   Copyright © 1999-2012, Gerard
   Beekmans

   All rights reserved.

   本書は [1]クリエイティブコモンズライセンス に従います。

   本書のインストール手順のコマンドを抜き出したものは [2]MIT
   ライセンス に従ってください。

   Linux® は Linus Torvalds の登録商標です。
     ______________________________

目次

     * 序文
          + [3]はしがき
          + [4]対象読者
          + [5]LFS が対象とする CPU アーキテクチャー
          + [6]LFS と各種標準
          + [7]各パッケージを用いる理由
          + [8]必要な知識
          + [9]ホストシステム要件
          + [10]本書の表記
          + [11]本書の構成
          + [12]正誤情報
          + [13]日本語訳について
     * I. はじめに
          + 1. はじめに
               o [14]LFS をどうやって作るか
               o [15]前版からの変更点
               o [16]変更履歴
               o [17]変更履歴 (日本語版)
               o [18]情報源
               o [19]ヘルプ
     * II. ビルド作業のための準備
          + 2. 新しいパーティションの準備
               o [20]はじめに
               o [21]新しいパーティションの生成
               o [22]ファイルシステムの生成
               o [23]新しいパーティションのマウント
          + 3. パッケージとパッチ
               o [24]はじめに
               o [25]全パッケージ
               o [26]必要なパッチ
          + 4. 準備作業の仕上げ
               o [27]$LFSについて
               o [28]$LFS/tools
                 ディレクトリの生成
               o [29]LFS ユーザーの追加
               o [30]環境設定
               o [31]SBU 値について
               o [32]テストスイートについて
          + 5. 一時的環境の構築
               o [33]はじめに
               o [34]ツールチェーンの技術的情報
               o [35]全般的なコンパイル手順
               o [36]Binutils-2.22 -
                 1回め
               o [37]GCC-4.7.1 - 1回め
               o [38]Linux-3.5.2 API
                 ヘッダー
               o [39]Glibc-2.16.0
               o [40]Binutils-2.22 -
                 2回め
               o [41]GCC-4.7.1 - 2回め
               o [42]Tcl-8.5.12
               o [43]Expect-5.45
               o [44]DejaGNU-1.5
               o [45]Check-0.9.8
               o [46]Ncurses-5.9
               o [47]Bash-4.2
               o [48]Bzip2-1.0.6
               o [49]Coreutils-8.19
               o [50]Diffutils-3.2
               o [51]File-5.11
               o [52]Findutils-4.4.2
               o [53]Gawk-4.0.1
               o [54]Gettext-0.18.1.1
               o [55]Grep-2.14
               o [56]Gzip-1.5
               o [57]M4-1.4.16
               o [58]Make-3.82
               o [59]Patch-2.6.1
               o [60]Perl-5.16.1
               o [61]Sed-4.2.1
               o [62]Tar-1.26
               o [63]Texinfo-4.13a
               o [64]Xz-5.0.4
               o [65]ストリップ
               o [66]所有者の変更
     * III. LFSシステムの構築
          + 6. 基本的なソフトウェアのインストール
               o [67]はじめに
               o [68]仮想カーネルファイルシステムの準備
               o [69]パッケージ管理
               o [70]Chroot 環境への移行
               o [71]ディレクトリの生成
               o [72]基本的なファイルとリンクの生成
               o [73]Linux-3.5.2 API
                 ヘッダー
               o [74]Man-pages-3.42
               o [75]Glibc-2.16.0
               o [76]ツールチェーンの調整
               o [77]Zlib-1.2.7
               o [78]File-5.11
               o [79]Binutils-2.22
               o [80]GMP-5.0.5
               o [81]MPFR-3.1.1
               o [82]MPC-1.0
               o [83]GCC-4.7.1
               o [84]Sed-4.2.1
               o [85]Bzip2-1.0.6
               o [86]Pkg-config-0.27
               o [87]Ncurses-5.9
               o [88]Util-linux-2.21.2
               o [89]Psmisc-22.19
               o [90]E2fsprogs-1.42.5
               o [91]Shadow-4.1.5.1
               o [92]Coreutils-8.19
               o [93]Iana-Etc-2.30
               o [94]M4-1.4.16
               o [95]Bison-2.6.2
               o [96]Procps-3.2.8
               o [97]Grep-2.14
               o [98]Readline-6.2
               o [99]Bash-4.2
               o [100]Libtool-2.4.2
               o [101]GDBM-1.10
               o [102]Inetutils-1.9.1
               o [103]Perl-5.16.1
               o [104]Autoconf-2.69
               o [105]Automake-1.12.3
               o [106]Diffutils-3.2
               o [107]Gawk-4.0.1
               o [108]Findutils-4.4.2
               o [109]Flex-2.5.37
               o [110]Gettext-0.18.1.1
               o [111]Groff-1.21
               o [112]Xz-5.0.4
               o [113]GRUB-2.00
               o [114]Less-444
               o [115]Gzip-1.5
               o [116]IPRoute2-3.5.1
               o [117]Kbd-1.15.3
               o [118]Kmod-9
               o [119]Libpipeline-1.2.
                 1
               o [120]Make-3.82
               o [121]Man-DB-2.6.2
               o [122]Patch-2.6.1
               o [123]Sysklogd-1.5
               o [124]Sysvinit-2.88dsf
               o [125]Tar-1.26
               o [126]Texinfo-4.13a
               o [127]Udev-188
                 (systemd-188 から抽出)
               o [128]Vim-7.3
               o [129]デバッグシンボルについて
               o [130]再度のストリップ
               o [131]仕切り直し
          + 7. ブートスクリプトの設定
               o [132]はじめに
               o [133]全般的なネットワークの設定
               o [134]/etc/hosts
                 ファイルの設定
               o [135]LFS
                 システムにおけるデバイスとモジュールの扱い
               o [136]デバイスへのシンボリックリンクの
                 生成
               o [137]LFS-ブートスクリプト-201
                 20901
               o [138]ブートスクリプトはどのようにして
                 動くのか
               o [139]システムのホスト名の設定
               o [140]Setclock
                 スクリプトの設定
               o [141]Linux コンソールの設定
               o [142]Sysklogd
                 スクリプトの設定
               o [143]rc.site ファイル
               o [144]Bash
                 シェルの初期起動ファイル
               o [145]/etc/inputrc
                 ファイルの生成
          + 8. LFS システムのブート設定
               o [146]はじめに
               o [147]/etc/fstab
                 ファイルの生成
               o [148]Linux-3.5.2
               o [149]GRUB
                 を用いたブートプロセスの設定
          + 9. 作業終了
               o [150]作業終了
               o [151]ユーザー登録
               o [152]システムの再起動
               o [153]今度は何?
     * IV. 付録
          + [154]A. 略語と用語
          + [155]B. 謝辞
          + [156]C. パッケージの依存関係
          + [157]D. ブートスクリプトと
            sysconfig スクリプト
            version-20120901
               o [158]/etc/rc.d/init.d
                 /rc
               o [159]/lib/lsb/init-fu
                 nctions
               o [160]/etc/rc.d/init.d
                 /functions
               o [161]/etc/rc.d/init.d
                 /mountvirtfs
               o [162]/etc/rc.d/init.d
                 /modules
               o [163]/etc/rc.d/init.d
                 /udev
               o [164]/etc/rc.d/init.d
                 /swap
               o [165]/etc/rc.d/init.d
                 /setclock
               o [166]/etc/rc.d/init.d
                 /checkfs
               o [167]/etc/rc.d/init.d
                 /mountfs
               o [168]/etc/rc.d/init.d
                 /udev_retry
               o [169]/etc/rc.d/init.d
                 /cleanfs
               o [170]/etc/rc.d/init.d
                 /console
               o [171]/etc/rc.d/init.d
                 /localnet
               o [172]/etc/rc.d/init.d
                 /sysctl
               o [173]/etc/rc.d/init.d
                 /sysklogd
               o [174]/etc/rc.d/init.d
                 /network
               o [175]/etc/rc.d/init.d
                 /sendsignals
               o [176]/etc/rc.d/init.d
                 /reboot
               o [177]/etc/rc.d/init.d
                 /halt
               o [178]/etc/rc.d/init.d
                 /template
               o [179]/etc/sysconfig/m
                 odules
               o [180]/etc/sysconfig/c
                 reatefiles
               o [181]/etc/sysconfig/u
                 dev-retry
               o [182]/sbin/ifup
               o [183]/sbin/ifdown
               o [184]/lib/services/ip
                 v4-static
               o [185]/lib/services/ip
                 v4-static-route
          + [186]E. Udev 設定ルール
               o [187]55-lfs.rules
          + [188]F. LFS ライセンス
               o [189]クリエイティブコモンズライセンス
               o [190]MIT ライセンス (The
                 MIT License)
     * [191]項目別もくじ

序文

はしがき

   私が Linux について理解し学び始めたのは 1998
   年頃からです。 Linux
   ディストリビューションのインストールを行ったのはその時が初めてです。
   そして即座に Linux
   全般の考え方や原理について興味を抱くようになりました。

   何かの作業を完成させるには多くの方法があるものです。 同じことは
   Linux ディストリビューションについても言えます。
   この数年の間に数多くのディストリビューションが登場しました。
   あるものは今も存在し、あるものは他のものへと形を変え、そしてあるものは
   記憶の彼方へ追いやられたりもしました。
   それぞれが利用者の求めに応じて、さまざまに異なる形でシステムを実現して
   きたわけです。
   最終ゴールが同じものなのに、それを実現する方法がたくさんあるものです。
   したがって私は一つのディストリビューションにとらわれることが不要だと思
   い始めました。 Linux
   が登場する以前であれば、オペレーティングシステムに何か問題があったとし
   ても、他に選択肢はなくそのオペレーティングシステムで満足する以外にあり
   ませんでした。
   それはそういうものであって、好むと好まざるは関係がなかったのです。
   それが Linux になって "選ぶ"
   という考え方が出てきたわけです。
   何かが気に入らなかったら、いくらでも変えたら良いし、そうすることがむし
   ろ当たり前なのです。

   数多くのディストリビューションを試してみましたが、これという１つに決定
   できるものがありませんでした。
   個々のディストリビューションは優れたもので、それぞれを見てみれば正しい
   ものです。
   ただこれは正しいとか間違っているとかの問題ではなく、個人的な趣味の問題
   へと変化しているのです。
   こうしたさまざまな状況を通じて明らかになってきたのは、私にとって完璧な
   システムは１つもないということです。 そこで私は自分自身の Linux
   を作り出して、自分の好みを満足させるものを目指したのです。

   本当に自分自身のシステムを作り出すため、私はすべてをソースコードからコ
   ンパイルすることを目指し、コンパイル済のバイナリパッケージは使わないこ
   とにしました。 この「完璧な」Linux
   システムは、他のシステムが持つ弱点を克服し、逆にすべての強力さを合わせ
   持つものです。
   当初は気の遠くなる思いがしていましたが、そのアイデアは今も持ち続けてい
   ます。

   パッケージが相互に依存している状況やコンパイル時にエラーが発生するなど
   を順に整理していく中で、私はカスタムメイドの Linux
   を作り出したのです。 この Linux は今日ある他の Linux
   と比べても、十分な機能を有し十分に扱いやすいものとなっています。
   これは私自身が作り出したものです。
   いろいろなものを自分で組み立てていくのは楽しいものです。
   後は個々のソフトウェアまでも自分で作り出せれば、もっと楽しいものになる
   のでしょうが、それは次の目標とします。

   私の求める目標や作業経験を他の Linux
   コミュニティの方々とも共有する中で、私の Linux
   への挑戦は絶えることなく続いていくことを実感しています。
   このようなカスタムメイドの Linux
   システムを作り出せば、独自の仕様や要求を満たすことができるのはもちろん
   ですが、さらにはプログラマーやシステム管理者の Linux
   知識を引き伸ばす絶好の機会となります。 壮大なこの意欲こそが
   Linux From Scratch プロジェクト誕生の理由なのです。

   Linux From Scratch
   ブックは関連プロジェクトの中心に位置するものです。
   皆さんご自身のシステムを構築するために必要となる基礎的な手順を提供しま
   す。
   本書が示すのは正常動作するシステム作りのための雛形となる手順ですので、
   皆さんが望んでいる形を作り出すために手順を変えていくことは自由です。
   それこそ、本プロジェクトの重要な特徴でもあります。
   そうしたとしても手順を踏み外すものではありません。我々は皆さんが挑戦す
   る旅を応援します。

   あなたの LFS システム作りが素晴らしいひとときとなりますように。
   そしてあなた自身のシステムを持つ楽しみとなりますように。

   --
   Gerard Beekmans
   gerard AT linuxfromscratch D0T org

対象読者

   本書を読む理由はさまざまにあると思いますが、よく挙がってくる質問として
   以下があります。 「既にある Linux
   をダウンロードしてインストールすれば良いのに、どうして苦労してまで手作
   業で Linux を構築しようとするのか。」

   本プロジェクトを提供する最大の理由は Linux
   システムがどのようにして動作しているのか、これを学ぶためのお手伝いをす
   ることです。 LFS
   システムを構築してみれば、さまざまなものが連携し依存しながら動作してい
   る様子を知ることができます。 そうした経験をした人であれば Linux
   システムを自分の望む形に作りかえる手法も身につけることができます。

   LFS の重要な利点として、他の Linux
   システムに依存することなく、システムをより適切に制御できる点が挙げられ
   ます。 LFS
   システムではあなたが運転台に立って、システムのあらゆる側面への指示を下
   していきます。

   さらに非常にコンパクトな Linux
   システムを作る方法も身につけられます。 通常の Linux
   ディストリビューションを用いる場合、多くのプログラムをインストールする
   ことになりますが、たいていのプログラムは使わないものですし、その内容も
   よく分からないものです。
   それらのプログラムはハードウェアリソースを無駄に占有することになります
   。 今日のハードドライブや CPU
   のことを考えたら、リソース消費は大したことはないと思うかもしれません。
   しかし問題がなくなったとしても、サイズの制限だけは気にかける必要がある
   ことでしょう。 例えばブータブル CD、USB
   スティック、組み込みシステムなどのことを思い浮かべてください。
   そういったものに対して LFS は有用なものとなるでしょう。

   カスタマイズした Linux
   システムを構築するもう一つの利点として、セキュリティがあります。
   ソースコードからコンパイルしてシステムを構築するということは、あらゆる
   ことを制御する権限を有することになり、セキュリティパッチは望みどおりに
   適用できます。
   他の人がセキュリティホールを修正しバイナリパッケージを提供するのを待つ
   必要がなくなるということです。
   他の人がパッチとバイナリパッケージを提供してくれたとしても、それが本当
   に正しく構築され、問題を解決してくれているかどうかは、調べてみなければ
   分からないわけですから。

   Linux From Scratch
   の最終目標は、実用的で完全で、基盤となるシステムを構築することです。
   Linux
   システムを一から作り出すつもりのない方は、本書から得られるものはないか
   もしれません。

   LFS
   を構築する理由はさまざまですから、すべてを列記することはできません。
   学習こそ、理由を突き詰める最大最良の手段です。 LFS
   構築作業の経験を積むことによって、情報や知識を通じてもたらされる意義が
   十二分に理解できるはずです。

LFS が対象とする CPU アーキテクチャー

   LFS が対象としている CPU アーキテクチャーは 32
   ビットインテル CPU が主となります。 LFS
   システムの構築に初めて取りかかる方は、おそらくこのアーキテクチャーを用
   いることでしょう。 32 ビットアーキテクチャーは Linux
   システムが最も広くサポートしているもので、このアーキテクチャーなら、オ
   ープンソースも製品ソフトウェアも互換性があります。

   本書の作業手順は、多少の変更を加えれば Power PC や 64
   ビットAMD／インテル CPU でも動作することは検証されています。
   その CPU
   を使ったシステムをビルドするには、これ以降の数ページで説明している条件
   以外に必要となることがあります。 LFS システムそのものや
   Ubuntu、Red Hat/Fedora、SuSE
   などのディストリビューションをホストとするわけですが、それは 64
   ビットシステムである必要があるということです。 ホストが 64
   ビットAMD／インテルによるシステムであったとしても 32
   ビットシステムは問題なくインストールできます。

   64 ビットシステムにて明らかなことをここに記しておきます。 32
   ビットシステムに比べると、実行プログラムのサイズは多少大きくなり、実行
   速度は若干速くなります。 例えば Core2Duo CPU
   をベースとするシステム上に、LFS 6.5
   をビルドしてみたところ、以下のような情報が得られました。
Architecture Build Time     Build Size
32-bit       198.5 minutes  648 MB
64-bit       190.6 minutes  709 MB

   ご存知かと思いますが 64 ビットによってビルドを行っても、32
   ビットのときのビルドに比べて 4% 早くなるだけで 9%
   は大きなものになります。 つまり
   64ビットシステムによって得られることは比較的小さいということです。
   もちろん 4GB 以上の RAM を利用していたり、4GB
   を超えるデータを取り扱いたいならば、64
   ビットシステムを用いるメリットが大きいのは間違いありません。

   LFS の手順に従って作り出す 64 ビットシステムは、"純粋な"64
   ビットシステムと言えます。 つまりそのシステムは 64
   ビット実行モジュールのみをサポートするということです。
   "複数のライブラリ"
   によるシステムをビルドするのなら、多くのアプリケーションを二度ビルドし
   なければなりません。 一度は 32 ビット用であり、一度は 64
   ビット用です。
   現時点にて本書はこの点をサポートしませんが、後々のリリースに向けて検討
   中です。 さしあたりそのような応用的なトピックに関しては
   [192]Cross Linux From Scratch
   プロジェクトを参照してください。

   最後に 64 ビットシステムについてもう一つ述べておきます。
   パッケージの中には現時点にて "純粋な" 64
   ビットシステム上でビルドできないものがあり、あるいは特別なビルド手順を
   必要とするものがあります。 一般的に言えば、そのようなパッケージには
   32 ビット固有のアセンブリ言語の命令が含まれるからであり、 だから
   64 ビットシステムでのビルドに失敗するということです。 例としては
   [193]Beyond Linux From Scratch
   (BLFS) にある Xorg ドライバーの一部分などです。
   このような問題はたいていは解消していくことができますが、中には特別なビ
   ルド手順やパッチを要するものとなるかもしれません。

LFS と各種標準

   LFS の構成は出来る限り Linux
   の各種標準に従うようにしています。 主な標準は以下のものです。
     * [194]POSIX.1-2008
     * [195]Filesystem Hierarchy
       Standard (FHS)
     * [196]Linux Standard Base (LSB)
       Core Specification 4.0
       LSB はさらに以下の５つの標準から構成されます。 コア
       (Core)、C++、デスクトップ
       (Desktop)、ランタイム言語 (Runtime
       Languages)、印刷 (Printing) です。
       また一般的な要求事項に加えて、アーキテクチャーに固有の要求事項
       もあります。 LFS
       では前節にて示したように、各アーキテクチャーに適合することを目
       指します。

注記
       LSB の要求に対しては異論のある方も多いでしょう。 LSB
       を定義するのは、私有ソフトウェア (proprietary
       software)
       をインストールした場合に、要求事項を満たしたシステム上にて問題
       なく動作することを目指すためです。 LFS
       はソースコードから構築するシステムですから、どのパッケージを利
       用するかをユーザー自身が完全に制御できます。 また LSB
       にて要求されているパッケージであっても、インストールしない選択
       をとることもできます。

   LFS の構築にあたっては LSB に適合していることを確認するテスト
   (certifications tests)
   をクリアするように構築することも可能です。 ただし LFS
   の範囲外にあるパッケージ類を追加しなければ実現できません。
   そのような追加パッケージ類については、おおむね BLFS
   にて導入手順を説明しています。

LFS 提供のパッケージで LSB 要求に従うもの

   LSB コア:

   Bash, Binutils, Coreutils,
   Diffutils, File, Findutils, Gawk,
   Grep, Gzip, M4, Man-DB, Ncurses,
   Procps, Psmisc, Sed, Shadow, Tar,
   Util-linux, Zlib

   LSB C++:

   Gcc

   LSB デスクトップ:

   なし

   LSB ランタイム言語:

   Perl

   LSB 印刷:

   なし

   LSB マルチメディア:

   なし

BLFS 提供のパッケージで LSB 要求に従うもの

   LSB コア:

   At, Batch (At の一部), Bc, Cpio, Ed,
   Fcrontab, Initd-tools, Lsb_release,
   PAM, Sendmail (または Postfix または
   Exim)

   LSB C++:

   なし

   LSB デスクトップ:

   ATK, Cairo, Desktop-file-utils,
   Freetype, Fontconfig, Glib2, GTK+2,
   Icon-naming-utils, Libjpeg, Libpng,
   Libxml2, MesaLib, Pango, Qt3, Qt4,
   Xorg

   LSB ランタイム言語:

   Python

   LSB 印刷:

   CUPS

   LSB マルチメディア:

   Alsa 関連ライブラリ, NSPR, NSS, OpenSSL,
   Java, Xdg-utils

LFS, BLFS で提供しないパッケージで LSB 要求に従うもの

   LSB コア:

   なし

   LSB C++:

   なし

   LSB デスクトップ:

   なし

   LSB ランタイム言語:

   なし

   LSB 印刷:

   なし

   LSB マルチメディア:

   なし

各パッケージを用いる理由

   既に説明しているように LFS
   が目指すのは、完成した形での実用可能な基盤システムを構築することです。
   LFS
   に含まれるパッケージ群は、パッケージの個々を構築していくために必要とな
   るものばかりです。
   そこからは最小限の基盤となるシステムを作り出します。
   そしてユーザーの望みに応じて、より完璧なシステムへと拡張していくものと
   なります。 LFS は極小システムを意味するわけではありません。
   厳密には必要のないパッケージであっても、重要なものとして含んでいるもの
   もあります。
   以下に示す一覧は、本書内の各パッケージの採用根拠について説明するもので
   す。
     * Autoconf
       このパッケージは、以下に示すようなシェルスクリプトを生成するプ
       ログラムを提供します。
       つまり開発者が意図しているテンプレートに基づいて、ソースコード
       を自動的に設定する (configure する)
       ためのシェルスクリプトです。
       特定のパッケージのビルド方法に変更があった場合は、パッケージ再
       構築を行うことになるため、その場合に本パッケージが必要となりま
       す。
     * Automake
       このパッケージは、テンプレートとなるファイルから
       Makefile を生成するためのプログラムを提供します。
       特定のパッケージのビルド方法に変更があった場合は、パッケージ再
       構築を行うことになるため、その場合に本パッケージが必要となりま
       す。
     * Bash
       このパッケージは、システムとのインターフェースを実現する
       Bourne シェルを提供し、LSB コア要件を満たします。
       他のシェルを選ばずにこれを選ぶのは、一般的に多用されていること
       と、基本的なシェル関数においての拡張性が高いからです。
     * Binutils
       このパッケージは、リンカー、アセンブラーのような、オブジェクト
       ファイルを取り扱うプログラムを提供します。 各プログラムは
       LFS
       における他のパッケージをコンパイルするために必要となり、さらに
       LFS にて示される以外のパッケージでも必要となります。
     * Bison
       このパッケージは yacc (Yet Another
       Compiler Compiler) の GNU
       バージョンを提供します。 LFS
       において利用するプログラムの中に、これを必要とするものがありま
       す。
     * Bzip2
       このパッケージは、ファイルの圧縮、伸張 (解凍)
       を行うプログラムを提供します。 これは LFS
       パッケージの多くを伸張 (解凍) するために必要です。
     * Check
       このパッケージは、他のプログラムに対するテストハーネス
       (test harness) を提供します。
       これは一時的なツールチェーンにおいてのみインストールします。
     * Coreutils
       このパッケージは、ファイルやディレクトリを参照あるいは操作する
       ための基本的なプログラムを数多く提供します。
       各プログラムはコマンドラインからの実行によりファイル制御を行う
       ために必要です。 また LFS
       におけるパッケージのインストールに必要となります。
     * DejaGNU
       このパッケージは、他のプログラムをテストするフレームワークを提
       供します。
       これは一時的なツールチェーンプログラムをインストールする際にだ
       け必要となります。
     * Diffutils
       このパッケージは、ファイルやディレクトリ間の差異を表示するプロ
       グラムを提供します。
       各プログラムはパッチを生成するために利用されます。
       したがってパッケージのビルド時に利用されることが多々あります。
     * Expect
       このパッケージは、スクリプトで作られた対話型プログラムを通じて
       、他のプログラムとのやりとりを行うプログラムを提供します。
       通常は他のパッケージをテストするために利用します。
       本書では一時的なツールチェーンの構築時にしかインストールしませ
       ん。
     * E2fsprogs
       このパッケージは ext2, ext3, ext4
       の各ファイルシステムを取り扱うユーティリティを提供します。
       各ファイルシステムは Linux
       がサポートする一般的なものであり、十分なテストが実施されている
       ものです。
     * File
       このパッケージは、指定されたファイルの種類を判別するユーティリ
       ティプログラムを提供します。
       他のパッケージにおいて、ビルド時にこれを必要とするものもありま
       す。
     * Findutils
       このパッケージは、ファイルシステム上のファイルを検索するプログ
       ラムを提供します。
       これは他のパッケージにて、ビルド時のスクリプトにおいて利用され
       ています。
     * Flex
       このパッケージは、テキスト内の特定パターンの認識プログラムを生
       成するユーティリティを提供します。 これは lex
       (字句解析; lexical analyzer) プログラムの
       GNU 版です。 LFS
       内の他のパッケージの中にこれを必要としているものがあります。
     * Gawk
       このパッケージはテキストファイルを操作するプログラムを提供しま
       す。 プログラムは GNU 版の awk
       (Aho-Weinberg-Kernighan) です。
       これは他のパッケージにて、ビルド時のスクリプトにおいて利用され
       ています。
     * Gcc
       これは GNU コンパイラーコレクションパッケージです。 C
       コンパイラーと C++ コンパイラーを含みます。また LFS
       ではビルドしないコンパイラーも含まれています。
     * GDBM
       このパッケージは GNU
       データベースマネージャーライブラリを提供します。 LFS
       が扱う Man-DB パッケージがこれを利用しています。
     * Gettext
       このパッケージは、各種パッケージが国際化を行うために利用するユ
       ーティリティやライブラリを提供します。
     * Glibc
       このパッケージは C ライブラリです。Linux
       上のプログラムはこれがなければ動作させることができません。
     * GMP
       このパッケージは数値演算ライブラリを提供するもので、任意精度演
       算 (arbitrary precision
       arithmetic) についての有用な関数を含みます。
       これは GCC をビルドするために必要です。
     * Grep
       このパッケージはファイル内を検索するプログラムを提供します。
       これは他のパッケージにて、ビルド時のスクリプトにおいて利用され
       ています。
     * Groff
       このパッケージは、テキストを処理し整形するプログラムをいくつか
       提供します。 重要なものプログラムとして man
       ページを生成するものを含みます。
     * GRUB
       これは Grand Unified Boot Loader
       です。
       ブートローダーとして利用可能なものの中でも、これが最も柔軟性に
       富むものです。
     * Gzip
       このパッケージは、ファイルの圧縮と伸張 (解凍)
       を行うプログラムを提供します。 LFS
       において、パッケージを伸張 (解凍) するために必要です。
     * Iana-etc
       このパッケージは、ネットワークサービスやプロトコルに関するデー
       タを提供します。
       ネットワーク機能を適切に有効なものとするために、これが必要です
       。
     * Inetutils
       このパッケージは、ネットワーク管理を行う基本的なプログラム類を
       提供します。
     * IProute2
       このパッケージは、IPv4、IPv6
       による基本的な、あるいは拡張したネットワーク制御を行うプログラ
       ムを提供します。 IPv6
       への対応があることから、よく使われてきたネットワークツールパッ
       ケージ (net-tools) に変わって採用されました。
     * Kbd
       このパッケージは、米国以外のキーボードに対してのキーテーブルフ
       ァイルやキーボードユーティリティを提供します。
       また端末上のフォントも提供します。
     * Kmod
       このパッケージは Linux
       カーネルモジュールを管理するために必要なプログラムを提供します
       。
     * Less
       このパッケージはテキストファイルを表示する機能を提供するもので
       あり、表示中にスクロールを可能とします。 また Man-DB
       において man ページを表示する際にも利用されます。
     * Libtool
       このパッケージは GNU
       の汎用的なライブラリに対してのサポートスクリプトを提供します。
       これは、複雑な共有ライブラリの取り扱いを単純なものとし、移植性
       に優れた一貫した方法を提供します。 LFS
       パッケージのテストスイートにおいて必要となります。
     * Linux Kernel
       このパッケージは "オペレーティングシステム" であり
       GNU/Linux 環境における Linux です。
     * M4
       このパッケージは汎用的なテキストマクロプロセッサーであり、他の
       プログラムを構築するツールとして利用することができます。
     * Make
       このパッケージは、パッケージ構築を指示するプログラムを提供しま
       す。 LFS
       におけるパッケージでは、ほぼすべてにおいて必要となります。
     * Man-DB
       このパッケージは man
       ページを検索し表示するプログラムを提供します。 man
       パッケージではなく本パッケージを採用しているのは、その方が国際
       化機能が優れているためです。 このパッケージは man
       プログラムを提供しています。
     * Man-pages
       このパッケージは Linux の基本的な man
       ページを提供します。
     * MPC
       このパッケージは複素数演算のための関数を提供します。 GCC
       パッケージがこれを必要としています。
     * MPFR
       このパッケージは倍精度演算 (multiple
       precision) の関数を提供します。 GCC
       パッケージがこれを必要としています。
     * Ncurses
       このパッケージは、端末に依存せず文字キャラクターを取り扱うライ
       ブラリを提供します。
       メニュー表示時のカーソル制御を実現する際に利用されます。
       LFS
       の他のパッケージでは、たいていはこれを必要としています。
     * Patch
       このパッケージは、パッチ
       ファイルの適用により、特定のファイルを修正したり新規生成したり
       するためのプログラムを提供します。 パッチファイルは diff
       プログラムにより生成されます。 LFS
       パッケージの中には、構築時にこれを必要とするものがあります。
     * Perl
       このパッケージは、ランタイムに利用されるインタープリター言語
       PERL を提供します。 LFS
       の他のパッケージでは、インストール時やテストスイートの実行時に
       これを必要とするものがあります。
     * Pkg-config
       このパッケージは、既にインストールされたライブラリやパッケージ
       のメタデータを取得するプログラムを提供します。
     * Popt
       このパッケージは、コマンドライン入力を処理するプログラムがライ
       ブラリを利用しています。
     * Procps
       このパッケージは、プロセスの監視を行うプログラムを提供します。
       システム管理にはこのパッケージが必要となります。 また LFS
       ブートスクリプトではこれを利用しています。
     * Psmisc
       このパッケージは、実行中のプロセスに関する情報を表示するプログ
       ラムを提供します。
       システム管理にはこのパッケージが必要となります。
     * Readline
       このパッケージは、コマンドライン上での入力編集や履歴管理を行う
       ライブラリを提供します。 これは Bash が利用しています。
     * Sed
       このパッケージは、テキストの編集を、テキストエディターを用いる
       ことなく可能とします。 LFS パッケージにおける
       configure
       スクリプトは、たいていこれを必要としています。
     * Shadow
       このパッケージは、セキュアな手法によりパスワード制御を行うプロ
       グラムを提供します。
     * Sysklogd
       このパッケージは、システムメッセージログを扱うプログラムを提供
       します。
       例えばカーネルが出力するログや、デーモンプロセスが異常発生時に
       出力するログなどです。
     * Sysvinit
       このパッケージは init プログラムを提供します。 これは
       Linux システム上のすべてのプロセスの基点となるものです。
     * Tar
       このパッケージは、アーカイブや圧縮機能を提供するもので LFS
       が扱うすべてのパッケージにて利用されています。
     * Tcl
       このパッケージはツールコマンド言語 (Tool Command
       Language) を提供します。 LFS
       が扱うパッケージにてテストスイートの実行に必要となります。
       これは一時的なツールチェーンの構築時にのみインストールします。
     * Texinfo
       このパッケージは Info
       ページに関しての入出力や変換を行うプログラムを提供します。
       LFS
       が扱うパッケージのインストール時には、たいてい利用されます。
     * Udev
       このパッケージはデバイスノードの動的生成を行うプログラムを提供
       します。 /dev
       ディレクトリに、デバイスを静的にいくつも作り出す方法を取らない
       ためのものです。
     * Util-linux
       このパッケージは数多くのユーティリティプログラムを提供します。
       その中には、ファイルシステムやコンソール、パーティション、メッ
       セージなどを取り扱うユーティリティがあります。
     * Vim
       このパッケージはテキストエディターを提供します。
       これを採用しているのは、従来の vi
       エディタとの互換性があり、しかも数々の有用な機能を提供するもの
       だからです。
       テキストエディターは個人により好みはさまざまですから、もし別の
       エディターを利用したいなら、そちらを用いても構いません。
     * XZ Utils
       このパッケージはファイルの圧縮、伸張 (解凍)
       を行うプログラムを提供します。
       一般的に用いられるものの中では高い圧縮率を実現するものであり、
       特に XZ フォーマットや LZMA フォーマットの伸張
       (解凍) に利用されます。
     * Zlib
       このパッケージは、圧縮や解凍の機能を提供するもので、他のプログ
       ラムがこれを利用しています。

必要な知識

   LFS システムの構築作業は決して単純なものではありません。
   ある程度の Unix システム管理の知識が必要です。
   問題を解決したり、説明されているコマンドを正しく実行することが求められ
   ます。
   ファイルやディレクトリのコピー、それらの表示確認、カレントディレクトリ
   の変更、といったことは最低でも知っていなければなりません。 さらに
   Linux
   の各種ソフトウェアを使ったりインストールしたりする知識も必要です。

   LFS ブックでは、最低でも
   そのようなスキルがあることを前提としていますので、数多くの LFS
   サポートフォーラムは、ひょっとすると役に立たないかもしれません。
   フォーラムにおいて基本的な知識を尋ねたとしたら、誰も回答してくれないで
   しょう。 そうするよりも LFS
   に取り掛かる前に以下のような情報をよく読んでください。

   LFS
   システムの構築作業に入る前に、以下の「ハウツー」を読むことをお勧めしま
   す。
     * ソフトウェア構築のハウツー
       (Software-Building-HOWTO)
       [197]http://www.tldp.org/HOWTO/
       Software-Building-HOWTO.html
       これは Linux 上において「一般的な」 Unix
       ソフトウェアを構築してインストールする方法を総合的に説明してい
       ます。
       だいぶ前に書かれたものですが、ソフトウェアのビルドとインストー
       ルを行うために必要となる基本的な方法が程よくまとめられています
       。
     * Linux ユーザーガイド (The Linux
       Users's Guide)
       [198]http://www.linuxhq.com/gui
       des/LUG/guide.html
       このガイドには Linux
       ソフトウェアの利用方法が分類され説明されています。
       若干古いものですが内容に間違いはありません。
     * 基本的な事前ヒント情報 (The Essential
       Pre-Reading Hint)
       [199]http://www.linuxfromscratc
       h.org/hints/downloads/files/ess
       ential_prereading.txt
       これは Linux 初心者に向けて書かれた LFS
       ヒントです。
       ここには非常に多くの有用なトピックへのリンクがあります。
       LFS
       を構築しようとするなら、これらのヒントに示されている内容は、出
       来るだけ多く理解しておくことが必要でしょう。

ホストシステム要件

   ホストシステムには以下に示すソフトウェアが必要であり、それぞれに示され
   ているバージョン以降である必要があります。 最近の Linux
   ディストリビューションを利用するなら、あまり問題にはならないはずです。
   ディストリビューションによっては、ソフトウェアのヘッダーファイル群を別
   パッケージとして提供しているものが多々あります。
   例えば「<パッケージ名>-devel」であったり「<パッケージ名>-d
   ev」といった具合です。
   お使いのディストリビューションがそのような提供の仕方をしている場合は、
   それらもインストールしてください。

   各パッケージにて、示しているバージョンより古いものでも動作するかもしれ
   ませんが、テストは行っていません。
     * Bash-3.2 (/bin/sh が bash
       に対するシンボリックリンクまたはハードリンクである必要がありま
       す。)
     * Binutils-2.17 (2.22
       以上のバージョンは、テストしていないためお勧めしません。)
     * Bison-2.3 (/usr/bin/yacc が
       bison へのリンクか、bison
       を実行するためのスクリプトである必要があります。)
     * Bzip2-1.0.4
     * Coreutils-6.9
     * Diffutils-2.8.1
     * Findutils-4.2.31
     * Gawk-3.1.5 (/usr/bin/awk が gawk
       へのリンクである必要があります。)
     * Gcc-4.1.2 (4.7.1
       以上のバージョンは、テストしていないためお勧めしません。)
     * Glibc-2.5.1 (2.16.0
       以上のバージョンは、テストしていないためお勧めしません。)
     * Grep-2.5.1a
     * Gzip-1.3.12
     * Linux Kernel-2.6.25 (GCC-4.1.2
       以上でコンパイルされたもの)
       カーネルのバージョンを指定しているのは、第6章にて glibc
       をビルドする際にバージョンを指定するからであり、開発者の勧めに
       従うためです。 これは udev においても必要になります。
       ホストシステムのカーネルバージョンが 2.6.25
       より古い場合、あるいはカーネルをビルドした際の GCC
       のバージョンが 4.1.2
       よりも古い場合は、ここに示した条件に合致するカーネルに置き換え
       ることが必要です。 これを実施するには２つの方法があります。
       お使いの Linux システムのベンダーが 2.6.25
       以上のバージョンのカーネルを提供しているかを調べることです。
       提供していれば、それをインストールします。
       もしそれがない場合や、あったとしてもそれをインストールしたくな
       い場合、カーネルをご自身でコンパイルする必要があります。
       カーネルのコンパイルと (ホストシステムが GRUB
       を利用しているとして) ブートローダーの設定方法については
       [200]第8章 を参照してください。
     * M4-1.4.10
     * Make-3.81
     * Patch-2.5.4
     * Perl-5.8.8
     * Sed-4.1.5
     * Tar-1.18
     * Texinfo-4.9
     * Xz-5.0.0

   上で示しているシンボリックリンクは、本書の説明を通じて LFS
   を構築するために必要となるものです。
   シンボリックリンクが別のソフトウェア (例えば dash や
   mawk) を指し示している場合でもうまく動作するかもしれません。
   しかしそれらに対して LFS
   開発チームはテストを行っていませんしサポート対象としていません。
   そのような状況に対しては作業手順の変更が必要となり、特定のパッケージに
   対しては追加のパッチを要するかもしれません。

   ホストシステムに、上のソフトウェアの適切なバージョンがインストールされ
   ているかどうか、またコンパイルが適切に行えるかどうかは、以下のスクリプ
   トを実行して確認することができます。
cat > version-check.sh << "EOF"
#!/bin/bash
# Simple script to list version numbers of c
ritical development tools

export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n
1 | cut -d" " -f3-
bison --version | head -n1
if [ -e /usr/bin/yacc ];
  then echo "/usr/bin/yacc -> `readlink -f /
usr/bin/yacc`";
  else echo "yacc not found"; fi

bzip2 --version 2>&1 < /dev/null | head -n1
| cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | hea
d -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1
if [ -e /usr/bin/awk ];
  then echo "/usr/bin/awk -> `readlink -f /u
sr/bin/awk`";
  else echo "awk not found"; fi

gcc --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  #
 glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
echo "Texinfo: `makeinfo --version | head -n
1`"
xz --version | head -n1

echo 'main(){}' > dummy.c && gcc -o dummy du
mmy.c
if [ -x dummy ]
  then echo "gcc compilation OK";
  else echo "gcc compilation failed"; fi
rm -f dummy.c dummy
EOF

bash version-check.sh

本書の表記

   本書では、特定の表記を用いて分かりやすく説明を行っていきます。
   ここでは Linux From Scratch
   ブックを通じて利用する表記例を示します。
./configure --prefix=/usr

   この表記は特に説明がない限りは、そのまま入力するテキストを示しています
   。 またコマンドの説明を行うために用いる場合もあります。

   場合によっては、1行で表現される内容を複数行に分けているものがあります
   。 その場合は各行の終わりにバックスラッシュ (あるいは円記号)
   を表記しています。
CC="gcc -B/usr/bin/" ../binutils-2.18/config
ure \
  --prefix=/tools --disable-nls --disable-we
rror

   バックスラッシュ (または円記号) のすぐ後ろには改行文字がきます。
   そこに余計な空白文字やタブ文字があると、おかしな結果となるかもしれない
   ため注意してください。
install-info: unknown option '--dir-file=/mn
t/lfs/usr/info/dir'

   上の表記は固定幅フォントで示されており、たいていはコマンド入力の結果と
   して出力される端末メッセージを示しています。 あるいは
   /etc/ld.so.conf
   といったファイル名を示すのに利用する場合もあります。

   Emphasis

   上の表記はさまざまな意図で用いています。
   特に重要な説明内容やポイントを表します。

   [201]http://www.linuxfromscratch.or
   g/

   この表記は LFS
   コミュニティ内や外部サイトへのハイパーリンクを示します。
   そこには「ハウツー」やダウンロードサイトなどが含まれます。
cat > $LFS/etc/group << "EOF"
root:x:0:
bin:x:1:
......
EOF

   上の表記は設定ファイル類を生成する際に示します。 １行目のコマンドは
   $LFS/etc/group
   というファイルを生成することを指示しています。
   そのファイルへは2行目以降 EOF
   が記述されるまでのテキストが出力されます。
   したがってこの表記は通常そのままタイプ入力します。

   <REPLACED TEXT>

   上の表記は入力するテキストを仮に表現したものです。
   これをそのまま入力するものではないため、コピー、ペースト操作で貼り付け
   ないでください。

   [OPTIONAL TEXT]

   上の表記は入力しなくてもよいオプションを示しています。

   passwd(5)

   上の表記はマニュアルページ (man ページ) を参照するものです。
   カッコ内の数字は man
   の内部で定められている特定のセクションを表しています。 例えば
   passwd コマンドには2つのマニュアルページがあります。 LFS
   のインストールに従った場合、2つのマニュアルページは
   /usr/share/man/man1/passwd.1 と
   /usr/share/man/man5/passwd.5
   に配置されます。 passwd(5) という表記は
   /usr/share/man/man5/passwd.5
   を参照することを意味します。 man passwd
   という入力に対しては「passwd」という語に合致する最初のマニュアル
   ページが表示されるものであり
   /usr/share/man/man1/passwd.1
   が表示されることになります。 特定のマニュアルページを見たい場合は
   man 5 passwd といった入力を行う必要があります。
   マニュアルページが複数あるケースはまれですので、普通は man
   <プログラム名> と入力するだけで十分です。

本書の構成

   本書は以下の部から構成されます。

第 I 部 - はじめに

   第I部では LFS 構築作業を進めるための重要事項について説明します。
   また本書のさまざまな情報についても説明します。

第 II 部 - ビルド作業のための準備

   第II部では、パーティションの生成、パッケージのダウンロード、一時的な
   ツールのコンパイルといった、システム構築の準備作業について説明します。

第 III 部 - LFSシステムの構築

   第III部では LFS システムの構築作業を順に説明していきます。
   そこでは全パッケージのコンパイルとインストール、ブートスクリプトの設定
   、カーネルのインストールを行います。 出来上がる Linux
   システムをベースとして、他のソフトウェアを必要に応じて導入し、このシス
   テムを拡張していくことができます。
   本書の終わりには、インストール対象のプログラム、ライブラリ、あるいは重
   要なファイル類についてのさくいんも示します。

正誤情報

   LFS
   システムを構築するためのソフトウェアは日々拡張され更新されています。
   LFS
   ブックがリリースされた後に、セキュリティフィックスやバグフィックスが公
   開されているかもしれません。
   本版にて説明するパッケージや作業手順に対して、セキュリティフィックスや
   バグフィックス等が必要かどうか、ビルド作業を行う前に
   [202]http://www.linuxfromscratch.or
   g/lfs/errata/7.2/を確認してください。 そして LFS
   ビルド作業を進めながら、対応する節においての変更を確認し適用してくださ
   い。

日本語訳について

日本語訳情報

   本節はオリジナルの LFS ブックにはないものです。
   日本語訳に関する情報を示すために設けました。

はじめに

   本書は LFS ブック 7.2 の日本語版-20120902 です。
   オリジナルの LFS ブックと同様に DocBook
   を用いて構築しています。

日本語版の提供について

   日本語版 LFS ブックは SourceForge.jp
   内に開発の場を設け
   [203]http://lfsbookja.sourceforge.j
   p/ にて「LFSブック日本語版」のプロジェクト名で提供するものです。

   HTML
   ファイル類や日本語化のために構築しているソース類について、あるいはそれ
   らの取り扱い (ライセンス) については上記サイトを参照してください。

日本語版の生成について

   日本語版 LFS ブックの生成は、以下のようにして行っています。
     * そもそも LFS ブックのソースは、LFS のサイト
       [204]http://www.linuxfromscratc
       h.org/ において、Static
       版として公開されていると同時に Subversion
       により、日々開発更新されているソース (XMLソース)
       が公開されています。 日本語版はその XML
       ソースに基づいて作成しています。
     * XML ソースは [205]DocBook XML DTD
       の書式に従ったファイル形式です。
       日本語版では、ソースに記述された原文を日本語訳文に変えて、同様
       の処理により生成しています。 ソース内に含まれる
       INSTALL
       ファイルには、処理に必要となるツール類の詳細が示されています。
       それらのツール類はすべて BLFS
       にてインストールする対象となっていますので、興味のある方は参照
       してください。
     * 日本語訳にあたっては、原文にて「地の文」として表現されている文
       章を日本語化しています。 逆に各手順におけるコマンド説明
       (四角の枠囲いで示されている箇所)
       は、日本語化の対象とはしていません。
       コマンド類や設定記述が英単語で行われるわけですから、これは当た
       り前のことです。
       ただ厳密に言えば、その四角の枠囲いの中でシェルのコメント書きが
       含まれる場合があり、これは日本語化せずそのまま表記しています。

日本語版における注意点

   日本語版 LFS ブックを参照頂く際には、以下の点に注意してください。
     * 本ページの冒頭にあるように、原文にはない記述は「日本語訳情報」
       として枠囲い文章で示すことにします。
     * 訳者は Linux
       に関する知識を隅から隅まで熟知しているわけではありません。
       したがってパッケージのことや Linux
       の仕組みに関して説明されている原文の、真の意味が捉えられず、原
       文だけを頼りに訳出している箇所もあります。
       もし誤訳、不十分な訳出、意味不明な箇所に気づかれた場合は、是非
       ご指摘、ご教示をお願いしたいと思います。
     * 日本語訳にて表記しているカタカナ用語について触れておきます。
       特に語末に長音符号がつく (あるいはつかない) 用語です。
       このことに関しては訳者なりに捉えているところがあるのですが、詳
       述は省略します。 例えば「ユーザー
       (user)」という用語は語末に長音符号をつけるべきと考えます
       。 一方「コンピュータ
       (computer)」という用語は、情報関連その他の分野では長
       音符号をつけない慣用があるものの、昨今これをつけるような流れも
       あり情勢が変わりつつあります。
       このように用語表記については、大いに "ゆれ"
       があるため、訳者なりに取り決めて表記することにしています。
       なじみの表記とは若干異なるものが現れるかもしれませんが、ご了承
       いただきたいと思います。

   Last updated on : 2011-03-31
   16:51:52 +090

第I部 はじめに

第1章 はじめに

1.1. LFS をどうやって作るか

   LFS システムは、既にインストールされている Linux
   ディストリビューション (Debian、Mandriva、Red
   Hat、SUSE など) を利用して構築していきます。 この既存の
   Linux システム（ホスト）は、LFS
   構築のためにさまざまなプログラム類を利用する基盤となります。
   プログラム類とはコンパイラー、リンカー、シェルなどです。
   したがってそのディストリビューションのインストール時には「開発
   (development)」オプションを選択し、それらのプログラム類が
   利用できるようにしておく必要があります。

   コンピューター内にインストールされているディストリビューションを利用す
   るのではなく、他に提供されている LiveCD
   を利用することもできます。

   [206]第2章では、新しく構築する Linux
   のためのパーティションとファイルシステムの生成方法について説明します。
   そのパーティション上にて LFS
   システムをコンパイルしインストールします。 [207]第3章では
   LFS 構築に必要となるパッケージとパッチについて説明します。
   これらをダウンロードして新たなファイルシステム内に保存します。
   [208]第4章は作業環境の準備について述べています。
   この章では重要な説明を行っていますので、[209]第5章以降に進む前に
   是非注意して読んでください。

   [210]第5章では数多くのパッケージをインストールします。
   これらは基本的な開発ツール (ツールチェーン)
   を構成するものであり、[211]第6章において最終的なシステムを構築す
   るために利用します。
   パッケージの中には自分自身を循環的に必要とするような依存関係を持つもの
   があります。
   例えばコンパイラーをコンパイルするためにはコンパイラーが必要となります
   。

   [212]第5章ではツールチェーンの第1回めの構築方法を示します。
   そこではまず Binutils と GCC を構築します。
   (第1回めと表現しているということは、つまりこれら2つのパッケージは後
   に再構築します。) 次に C ライブラリである Glibc
   を構築します。 Glibc
   は第1回めのツールチェーンを用いてコンパイルされます。
   そして第2回めのツールチェーン構築を行います。
   この時のツールチェーンは新たに構築した Glibc をリンクします。
   それ以降の[213]第5章に示すパッケージは第2回めのツールチェーンプ
   ログラムを用いて構築します。 上の作業をすべて終えたら LFS
   のインストール作業はもはやホストディストリビューションに依存しません。
   ただし作動させるカーネルだけは使い続けます。

   ホストシステムのツール類から新しいシステムを切り離していくこの手順は、
   やり過ぎのように見えるかもしれません。
   [214]5.2.「ツールチェーンの技術的情報」にて詳細に説明している
   ので参照してください。

   [215]第6章にて LFS システムが出来上がります。 chroot
   (ルートをチェンジする) プログラムを使って仮想的な環境に入り LFS
   パーティション内のディレクトリをルートディレクトリとしてシェルを起動し
   ます。 これは LFS
   パーティションをルートパーティションとするシステム再起動と同じことです
   。 ただ実際にはシステムを再起動はしません。
   再起動できるシステムとするためにはもう少し作業を必要としますし、この時
   点ではまだそれが必要ではないので chroot を行う方法を取ります。
   chroot を使うメリットは、LFS
   構築作業にあたって引き続きホストシステムを利用できることです。
   パッケージをコンパイルしている最中には、通常どおり別の作業を行うことが
   できます。

   インストールの仕上げとして[216]第7章にて LFS
   ブートスクリプトを設定し、[217]第8章にてカーネルとブートローダー
   を設定します。 [218]第9章では LFS
   システム構築経験を踏まえて、その先に進むための情報を示します。
   本書に示す作業をすべて実施すれば、新たな LFS
   システムを起動することが出来ます。

   上はごく簡単な説明にすぎません。
   各作業の詳細はこれ以降の章やパッケージの説明を参照してください。
   内容が難しいと思っていても、それは徐々に理解していけるはずです。
   読者の皆さんには、是非 LFS
   アドベンチャーに挑んで頂きたいと思います。

1.2. 前版からの変更点

   以下に示すのは前版から変更されているパッケージです。

   アップグレード:
     * Autoconf 2.69
     * Automake 1.12.3
     * Bison 2.6.2
     * Coreutils 8.19
     * E2fsprogs 1.42.5
     * File 5.11
     * Flex 2.5.37
     * Gawk 4.0.1
     * GCC 4.7.1
     * Glibc 2.16.0
     * GMP 5.0.5
     * Grep 2.14
     * Gzip 1.5
     * IPRoute2 3.5.1
     * Kbd 1.15.3
     * Kmod 9
     * Libpipeline 1.2.1
     * Linux 3.5.2
     * Man-DB 2.6.2
     * Man-pages 3.42
     * MPC 1.0
     * MPFR 3.1.1
     * Perl 5.16.1
     * Psmisc 22.19
     * Shadow 4.1.5.1
     * TCL 8.5.12
     * Udev 188 (systemd-188 からの抽出)
     * Util-Linux 2.21.2

   追加:
     * bash-4.2-fixes-8.patch
     * binutils-2.22-build_fix-1.patch
     * coreutils-8.19-i18n-1.patch
     * flex-2.5.37-bison-2.6.1-1.patch
     * glibc-2.16.0-res_query_fix-1.pa
       tch
     * kbd-1.15.3-upstream_fixes-1.pat
       ch
     * make-3.82-upstream_fixes-2.patc
       h
     * perl-5.16.1-libc-2.patch
     * pkg-config-0.27
     * sed-4.2.1-testsuite_fixes-1.pat
       ch
     * tzdata 2012e

   削除:
     * bash-4.2-fixes-4.patch
     * coreutils-8.15-i18n-1.patch
     * coreutils-8.15-uname-1.patch
     * flex-2.5.35-gcc44-1.patch
     * gcc-4.6.2-cross_compile-1.patch
     * gcc-4.6.2-startfiles_fix-1.patc
       h
     * glibc-2.14.1-fixes-1.patch
     * glibc-2.14.1-gcc_fix-1.patch
     * glibc-2.14.1-cpuid-1.patch
     * glibc-2.14.1-sort-1.patch
     * mpfr-3.1.0-fixes-1.patch
     * perl-5.14.2-libc-1.patch
     * perl-5.14.2-security-1.patch
     * shadow-4.1.5-nscd-1.patch

1.3. 変更履歴

   本書は Linux From Scratch ブック、バージョン
   7.2 です。 本書が
   6ヶ月以上更新されていなければ、より新しい版が公開されているはずです。
   以下のミラーサイトを確認してください。
   [219]http://www.linuxfromscratch.or
   g/mirrors.html

   以下は前版からの変更点を示したものです。

   変更履歴：
     * 2012-09-01
          + [bdubbs] - LFS-7.2 リリース。
     * 2012-08-31
          + [bdubbs] -
            ブートスクリプトにおけるスペルミスを修正。
     * 2012-08-29
          + [bdubbs] - スペルミスの修正。Gilles
            Espinasse に感謝。
          + [bdubbs] -
            タイムゾーンデータ、udev、ネットワーク設定にて、
            それぞれ説明を追加。
     * 2012-08-27
          + [bdubbs] - ネームサーバーにおいて
            glibc
            がクラッシュする問題を修正するパッチを追加。
            [220]#3172 を Fix に。
          + [bdubbs] - 第5章にて、ホストシステムに
            rpc
            ヘッダーがなかった場合に、これをインストールする手順
            を追加。
     * 2012-08-26
          + [bdubbs] - tzdata における
            .tab ファイルをインストール。
          + [bdubbs] - make
            のアップストリームによるパッチを適用。
     * 2012-08-24
          + [ken] - automake にて不要な sed
            コマンドを削除。
     * 2012-08-22
          + [bdubbs] - glibc
            の説明にて、noatime
            マウントオプションに関して削除、およびテストスイート
            での問題に関して修正。
          + [bdubbs] - udev-lfs
            tarball の生成方法を修正。
     * 2012-08-21
          + [bdubbs] - BLFS との互換のため
            udev-lfs tarball を更新。
          + [ken] -
            ロケールでのテストをカバーするために4つのロケールを
            追加。
          + [ken] - sed での utf8 縮退テスト
            (regression test)
            が失敗するのを修正するために、パッチを追加。
          + [bdubbs] -
            各種パッケージの計測情報を更新。
     * 2012-08-20
          + [bdubbs] - coreutils-8.19
            へのアップグレード。 [221]#3163 を
            Fix に。
          + [bdubbs] - grep-2.14
            へのアップグレード。 [222]#3164 を
            Fix に。
          + [ken] -
            タイムゾーンデータのインストール方法を修正。
          + [bdubbs] - Flex
            の縮退テストの失敗を修正するパッチを追加。
     * 2012-08-15
          + [bdubbs] - linux-3.5.1
            へのアップグレード。 [223]#3154 を
            Fix に。
          + [bdubbs] - man-pages-3.42
            へのアップグレード。 [224]#3159 を
            Fix に。
          + [bdubbs] - automake-1.12.3
            へのアップグレード。 [225]#3161 を
            Fix に。
          + [bdubbs] - su
            コマンドが利用できるように shadow を
            coreutils の前に移動。
     * 2012-08-15
          + [bdubbs] - coreutils-8.18
            へのアップグレード。 [226]#3157 を
            Fix に。
     * 2012-08-14
          + [bdubbs] - perl-5.16.1
            へのアップグレード。 [227]#3155 を
            Fix に。
          + [bdubbs] - 第6章の Perl にて不要な
            sed 処理を削除。 [228]#3160 を
            Fix に。
     * 2012-08-13
          + [bdubbs] - flex-2.5.37
            へのアップグレード。 [229]#3139 を
            Fix に。
          + [matthew] - IPRoute2-3.5.1
            へのアップグレード。 [230]#3158 を
            Fix に。
     * 2012-08-12
          + [bdubbs] - tzcode2012e
            へのアップデート。 [231]#3156.
          + [bdubbs] - udev
            (systemd)-188 へのアップデート。
            [232]#3152.
     * 2012-08-06
          + [matthew] - tzselect
            が正常動作するように、再度 tzdata
            tarball
            からさらにいくつかのファイルをインストールすることに
            。
     * 2012-08-05
          + [matthew] - IPRoute2-3.5.0
            へのアップグレード。 [233]#3148 を
            Fix に。
          + [matthew] - Tcl-8.5.12
            へのアップグレード。 [234]#3147 を
            Fix に。
          + [matthew] -
            E2fsprogs-1.42.5
            へのアップグレード。 [235]#3146 を
            Fix に。
          + [matthew] - MPC-1.0
            へのアップグレード。 [236]#3142 を
            Fix に。
          + [matthew] - Bison-2.6.2
            へのアップグレード。 [237]#3140 を
            Fix に。
          + [matthew] - Linux-3.5
            へのアップグレード。 [238]#3138 を
            Fix に。
          + [matthew] - Glibc-2.16.0
            へのアップグレード。 [239]#3131 を
            Fix に。
     * 2012-07-25
          + [bdubbs] - udev-lfs
            tarball を若干修正。
     * 2012-07-22
          + [bdubbs] - udev
            (systemd)-187 へのアップデート。
            [240]#3143 を Fix に。
          + [bdubbs] - 最新の udev
            の機能に応じて udev-retry
            ブートスクリプトを変更。 'udev info
            --run-dir' は削除。
          + [bdubbs] - pkg-config-0.27
            へのアップデート。 popt パッケージは削除。
            [241]#3141 を Fix に。
     * 2012-07-19
          + [bdubbs] - 全パッケージの節にて Time
            Zone data パッケージの追加。
          + [bdubbs] - 各パッケージを用いる理由の節に
            Check パッケージを追加。
     * 2012-07-17
          + [matthew] - Linux-3.4.5
            へのアップグレード。 [242]#3137 を
            Fix に。
     * 2012-07-16
          + [bdubbs] - udev 186
            へのアップデート。
            このアップデートは、systemd と udev
            がマージされたことに伴う大幅な変更。
            [243]#3098 を Fix に。
     * 2012-07-14
          + [matthew] - Automake
            のテストスイートに対しての修正箇所の再調整。
            報告をあげてくれた Fernando de
            Oliveira に感謝。
     * 2012-07-13
          + [matthew] - Bash
            にてアップストリームによる最新パッチを適用。
            [244]#3135 を Fix に。
          + [matthew] -
            Automake-1.12.2 へのアップグレード。
            [245]#3134 を Fix に。
          + [matthew] - MPFR-3.1.1
            へのアップグレード。 [246]#3133 を
            Fix に。
          + [matthew] - Grep-2.13
            へのアップグレード。 [247]#3132 を
            Fix に。
          + [matthew] - Kmod にて x86
            ホスト上でのテストスイートの調整。
            [248]#3129 を Fix に。
          + [matthew] - Psmisc-22.19
            へのアップグレード。 [249]#3127 を
            Fix に。
          + [matthew] - Linux-3.4.4
            へのアップグレード。 [250]#3126 を
            Fix に。
     * 2012-07-11
          + [bdubbs] - GRUB-2.00
            へのアップデート。 [251]#3130 を Fix
            に。
     * 2012-07-10
          + [bdubbs] - libpipeline にて
            PKG_CONFIG_PATH を指定。
            [252]#3120 を Fix に。
     * 2012-06-23
          + [matthew] - XZ-5.0.4
            へのアップグレード。 [253]#3125 を
            Fix に。
          + [matthew] - Kmod-9
            へのアップグレード。 [254]#3124 を
            Fix に。
          + [matthew] - Psmisc-22.18
            へのアップグレード。 [255]#3123 を
            Fix に。
          + [matthew] - Man-DB-2.6.2
            へのアップグレード。 [256]#3122 を
            Fix に。
          + [matthew] - Gzip-1.5
            へのアップグレード。 [257]#3121 を
            Fix に。
          + [matthew] - GCC-4.7.1
            へのアップグレード。 [258]#3117 を
            Fix に。
          + [matthew] -
            E2fsprogs-1.42.4
            へのアップグレード。 [259]#3116 を
            Fix に。
          + [matthew] - Linux-3.4.3
            へのアップグレード。 [260]#3114 を
            Fix に。
     * 2012-06-17
          + [bdubbs] - iproute2
            におけるインストールエラーを修正。
            [261]#3119 を Fix に。
          + [bdubbs] - LVM や initramfs
            の利用時に bootscripts
            にてまれに発生する問題を修正。
          + [bdubbs] - automake
            にてテストの実行時間に関する説明を追加。
            [262]#3118 を Fix に。
     * 2012-06-10
          + [ken] - kbd-1.15.3 :
            configure を古いものに変更。
            aclocal.m4 を touch 処理する。
            問題点を説明してくれた Bryan に感謝。
     * 2012-06-07
          + [matthew] - 第5章の Grep
            の手順にて
            --disable-perl-regexp
            スイッチを削除。
            これは今や不要。なぜなら第5章のツールチェーンに対し
            て、ホストのライブラリを利用する手立てがないため。
            報告をあげてくれた Jeremy Huntwork
            に感謝。
     * 2012-06-06
          + [matthew] - Bison-2.5.1
            へのアップグレード。 [263]#3112 を
            Fix に。
     * 2012-06-05
          + [matthew] - Binutils の手順にて
            sed コマンドをいくつか削除。
            アップストリームによってテストスイートのバグがフィッ
            クスされたため。 報告をあげてくれた Waleed
            Hamra に感謝。
          + [matthew] - Linux-3.4.1
            へのアップグレード。 [264]#3110 を
            Fix に。
          + [ken] - kbd から不要なプログラム
            resizecons を削除。 configure
            でなく configure.ac
            を修正することで対処。 xinglp に感謝。
     * 2012-06-04
          + [bdubbs] - 2012/06/03 以降の
            Perl のパッチを集約。
          + [matthew] - Psmisc-22.17
            へのアップグレード。 [265]#3109 を
            Fix に。
          + [matthew] -
            Automake-1.12.1 へのアップグレード。
            [266]#3106 を Fix に。
          + [matthew] - Bash
            にてアップストリームによる最新のパッチを採用。
            [267]#3103 を Fix に。
     * 2012-06-03
          + [bdubbs] -
            pkg-config-0.26-internal-g
            lib を追加。 [268]#3105 を Fix
            に。
          + [bdubbs] - popt-1.16 追加。
          + [bdubbs] - 第5章における Perl
            の手順を LFS 環境向けに更新。
            [269]#3104 を Fix に。
     * 2012-05-30
          + [bdubbs] -
            /lib/udev/devices
            内にあるすべてのエントリを mountvirtfs
            内の /dev にコピー。 [270]#3102 を
            Fix に。
          + [matthew] -
            いくつかのパッケージにて、man
            ページのインストール先を適切に修正。
            [271]#3097 を Fix に。
          + [matthew] -
            Util-Linux-2.21.2
            へのアップグレード。 [272]#3100 を
            Fix に。
          + [matthew] - Perl-5.16.0
            へのアップグレード。 [273]#3094 を
            Fix に。
          + [matthew] - IPRoute2-3.4.0
            へのアップグレード。 [274]#3096 を
            Fix に。
          + [matthew] - Linux-3.4
            へのアップグレード。 [275]#3092 を
            Fix に。
          + [matthew] -
            E2fsprogs-1.42.3
            へのアップグレード。 [276]#3091 を
            Fix に。
     * 2012-05-24
          + [bdubbs] - ブートスクリプト
            mountkernfs を微調整。 また
            [277]#3093 を Fix に。
     * 2012-05-20
          + [bdubbs] - mountkernfs
            ブートスクリプトにて bash 的な記述を削除。
          + [bdubbs] - udev に対する
            setclock にて $time の初期化を移動。
            [278]#3085 を Fix に。
          + [bdubbs] - 6.2節にて
            $LFS/dev/shm
            がシンボリックリンクである場合は、いったん削除し再生
            成することに。 [279]#3085 を Fix
            に。
     * 2012-05-18
          + [ken] - kbd において無用なプログラム
            resizecons とその man ページを削除。
            (このプログラムは i?86
            においてのみインストールされるが、man
            ページは常にインストールされる。)
     * 2012-05-14
          + [matthew] - Linux-3.3.6
            へのアップグレード。 [280]#3089 を
            Fix に。
     * 2012-05-13
          + [matthew] - Coreutils-8.17
            へのアップグレード。 [281]#3083 を
            Fix に。
     * 2012-05-11
          + [matthew] - Man-Pages-3.41
            へのアップグレード。 [282]#3084 を
            Fix に。
          + [matthew] - Linux-3.3.5
            へのアップグレード。 [283]#3080 を
            Fix に。
          + [matthew] - GMP-5.0.5
            へのアップグレード。 [284]#3079 を
            Fix に。
          + [matthew] - 第6章の GCC
            2回めにおいて sed コマンドを除く。 これは
            fixincludes
            スクリプトを実行させないようにするものであったが、デ
            フォルトで実行されないようになったため。
            Jeremy Huntwork の報告による。
     * 2012-05-10
          + [bdubbs] - 第9章にて
            /etc/lsb-release ファイルの追加。
     * 2012-05-09
          + [bdubbs] - BLFS における LSB
            パッケージの追加。
     * 2012-05-06
          + [matthew] - Zlib-1.2.7
            へのアップグレード。 [285]#3078 を
            Fix に。
          + [matthew] - Bash
            のアップストリームによる最新パッチを適用。
            [286]#3077 を Fix に。
          + [matthew] - Glibc
            にパッチを再度適用。 BLFS
            における種々のパッケージ、例えば aplay
            などにおいて、セグメンテーションフォールトを発生させ
            ないようにする。
     * 2012-05-05
          + [bdubbs] -
            本ブックおよびブートスクリプトにおいて、種々の記述変
            更。
     * 2012-05-01
          + [ken] - Kbd-1.15.3
            へのアップグレード。 [287]#2990 を
            Fix に。
     * 2012-04-29
          + [matthew] - Linux-3.3.4
            へのアップグレード。 [288]#3074 を
            Fix に。
          + [matthew] - Man-Pages-3.40
            へのアップグレード。 [289]#3072 を
            Fix に。
          + [matthew] - Autoconf-2.69
            へのアップグレード。 [290]#3071 を
            Fix に。
          + [matthew] - Automake-1.12
            へのアップグレード。 [291]#3070 を
            Fix に。
          + [matthew] - Grep-2.12
            へのアップグレード。 [292]#3068 を
            Fix に。
     * 2012-04-26
          + [ken] - jh
            ブランチからのマージにより若干変更。
     * 2012-04-25
          + [bdubbs] - jh
            ブランチにて開発されテストされた内容を適用。
          + [jhuntwork] -
            ビルド方法の変更に合わせて、第5章のツールチェーンの
            説明を更新。
          + [jhuntwork] - 第5章の gcc にて
            --with-native-system-heade
            r-dir スイッチを利用。
            これはかつて利用していた sed
            処理に置き換わるもの。
            CROSS_SYSTEM_HEADER_DIR と
            NATIVE_SYSTEM_HEADER_DIR
            の値を変更して、ツールチェーンが探し出すヘッダーを
            /usr/include ではなく
            /tools/include とする。 Pierre
            Labastie に感謝。 [293]#3066 を
            Fix に。
          + [jhuntwork] - 第5章の gcc にて
            --without-cloog と
            --without-ppl を削除。
            これが不要であった理由は、1回めの gcc
            はホストのライブラリにリンクされるので問題がなく、2
            回めの gcc
            のビルドでは、ホストのヘッダーとライブラリを見つけ出
            すことができないため。
          + [jhuntwork] - ビルド方法として
            sysroot を利用することに。
     * 2012-04-24
          + [matthew] - Linux-3.3.3
            へのアップグレード。 [294]#3067 を
            Fix に。
          + [matthew] - Man-Pages-3.39
            へのアップグレード。 [295]#3065 を
            Fix に。
          + [matthew] - Kmod-8
            へのアップグレード。 [296]#3064 を
            Fix に。
     * 2012-04-19
          + [bdubbs] -
            古いプログラムにも対応するために二つのグループ ID
            を変更。 [297]#3061 を Fix に。
     * 2012-04-15
          + [matthew] - Linux-3.3.2
            へのアップグレード。 [298]#3063 を
            Fix に。
          + [matthew] -
            Automake-1.11.5 へのアップグレード。
            [299]#3062 を Fix に。
          + [matthew] - Bash
            の手順において、第5章での Coreutils の
            su ではなく、第6章のものを利用することに。
            第5章でインストールする su は、su-tools
            ではなく su とする。 [300]#3057 を
            Fix に。
     * 2012-04-09
          + [bdubbs] -
            ネットワークブートスクリプトを更新。
            詳細はブートスクリプトの変更履歴を参照のこと。
            [301]#3053 を Fix に。
     * 2012-04-05
          + [bdubbs] - gcc によって生成される
            python gdb
            モジュールを適切なディレクトリに変更。 再度
            [302]#3048 を Fix に。
     * 2012-04-03
          + [matthew] - Linux-3.3.1
            へのアップグレード。 [303]#3059 を
            Fix に。
          + [matthew] -
            Automake-1.11.4 へのアップグレード。
            [304]#3058 を Fix に。
          + [matthew] - Gawk-4.0.1
            へのアップグレード。 [305]#3056 を
            Fix に。
          + [matthew] -
            Util-Linux-2.21.1
            へのアップグレード。 [306]#3055 を
            Fix に。
          + [matthew] -
            E2fsprogs-1.42.2
            へのアップグレード。 [307]#3051 を
            Fix に。
          + [matthew] - Coreutils-8.16
            へのアップグレード。 および uname
            に関するパッチを削除。 [308]#3048 を
            Fix に。
     * 2012-03-28
          + [bdubbs] - gcc によって生成される
            gdb の python
            モジュールを適正なディレクトリに移動。
            [309]#3048 を Fix に。
          + [bdubbs] - ホスト要件として
            xz-utils の最低バージョンを修正。
          + [bdubbs] -
            基本的なファイルとリンクの生成の節にて、ログファイル
            の説明を修正。
     * 2012-03-27
          + [matthew] - -O3
            コンパイラーフラグの指定時での Binutils
            のビルドを行えるようパッチを追加。
            報告をあげてくれた Pierre Labastie
            に感謝。
          + [matthew] - Glibc 手順にて 32
            ビットホストにおいてのビルド不備を修正するために
            GCC に関するパッチを追加。 報告をあげてくれた
            Pierre Labastie に感謝。
     * 2012-03-26
          + [matthew] - Man-Pages-3.38
            へのアップグレード。 [310]#3047 を
            Fix に。
          + [matthew] -
            E2fsprogs-1.42.1
            へのアップグレード。 [311]#3046 を
            Fix に。
          + [matthew] - Glibc-2.15
            へのアップグレード。 [312]#3045 を
            Fix に。 パッチ提供の Andy Benton
            に感謝。
          + [matthew] - GCC-4.7.0
            へのアップグレード。 [313]#3044 を
            Fix に。 パッチ提供の Andy Benton
            に感謝。
          + [matthew] - IPRoute2-3.3.0
            へのアップグレード。 [314]#3043 を
            Fix に。
     * 2012-03-22
          + [bdubbs] - ipv4-static
            スクリプトにて、まれにしか起きないケースを修正。
     * 2012-03-20
          + [matthew] - Linux-3.3
            へのアップグレード。 [315]#3042 を
            Fix に。
          + [matthew] - Kmod-7
            へのアップグレード。 [316]#3041 を
            Fix に。
          + [matthew] - Udev-182
            へのアップグレード。 [317]#3040 を
            Fix に。
     * 2012-03-19
          + [bdubbs] - udev ブートスクリプトにて
            LVM 初期化を行う処理を最後に移動。 これにより
            LVM パーティションを swap
            としても利用可能に。
     * 2012-03-14
          + [matthew] - GCC
            のパッチが不要となったため削除。
          + [matthew] - Bash
            にてアップストリームによる新しいパッチを追加。
            [318]#3037 を Fix に。
          + [matthew] - Linux-3.2.11
            へのアップグレード。 [319]#3036 を
            Fix に。
          + [matthew] - Man-Pages-3.37
            へのアップグレード。 [320]#3034 を
            Fix に。
     * 2012-03-11
          + [matthew] - Gettext の
            configure スクリプトへの対処を行う。
            特定のホストにて Emacs Lisp
            ファイルのありかを探す際にハングすることがあるため。
            DJ Lucas の報告および修正による。
     * 2012-03-06
          + [matthew] -
            Libpipeline-1.2.1
            へのアップグレード。 [321]#3031 を
            Fix に。
          + [matthew] - Kmod-6
            へのアップグレード。 [322]#3030 を
            Fix に。
          + [matthew] - Grep-2.11
            へのアップグレード。 [323]#3029 を
            Fix に。
          + [matthew] - GCC-4.6.3
            へのアップグレード。 [324]#3028 を
            Fix に。
          + [matthew] - Psmisc-22.16
            へのアップグレード。 [325]#3026 を
            Fix に。
          + [matthew] - File-5.11
            へのアップグレード。 [326]#3024 を
            Fix に。
          + [matthew] - Linux-3.2.9
            へのアップグレード。 [327]#3023 を
            Fix に。
          + [matthew] -
            Util-Linux-2.21 へのアップグレード。
            [328]#3002 を Fix に。
     * 2012-03-02
          + [bdubbs] - LFS-7.1 リリース。

1.4. 変更履歴 (日本語版)

   ここに示すのは LFS ブック 7.2 日本語版 (バージョン
   20120902) の変更履歴です。

日本語訳情報

   本節はオリジナルの LFS ブックにはないものです。 LFS
   ブック日本語版の変更履歴を示すために設けています。

   「SVN-20100101」という表記は、オリジナル LFS ブック
   SVN 版のバージョン番号を意味します。 また「Changeset
   1234」という表記は、オリジナル XML ソースファイルの
   Subversion 管理下でのリビジョン (その参照ページ)
   を意味します。

   変更履歴：
     * 2012-09-02
          + [matsuand] - LFS 7.2
            リリース対応。
     * 2012-09-01
          + [matsuand] - SVN-20120831,
            Changeset [329]9969 ～
            [330]9973 対応。
     * 2012-08-30
          + [matsuand] - SVN-20120829,
            Changeset [331]9966 ～
            [332]9968 対応。
     * 2012-08-28
          + [matsuand] - SVN-20120827,
            Changeset [333]9963 ～
            [334]9965 対応。
     * 2012-08-27
          + [matsuand] - SVN-20120826,
            Changeset [335]9961,
            [336]9962 対応。
     * 2012-08-24
          + [matsuand] - SVN-20120824,
            Changeset [337]9957 ～
            [338]9960 対応。
     * 2012-08-23
          + [matsuand] - SVN-20120822,
            Changeset [339]9955,
            [340]9956 対応。
     * 2012-08-22
          + [matsuand] - SVN-20120821,
            Changeset [341]9947 ～
            [342]9954 対応。
     * 2012-08-21
          + [matsuand] - SVN-20120820,
            Changeset [343]9944 ～
            [344]9946 対応。
          + [matsuand] - SVN-20120816,
            Changeset [345]9943 対応。
     * 2012-08-18
          + [matsuand] - SVN-20120816,
            訳出漏れの修正。
     * 2012-08-17
          + [matsuand] - SVN-20120816,
            Changeset [346]9933 ～
            [347]9942 対応。
     * 2012-08-11
          + [matsuand] - SVN-20120806,
            Changeset [348]9921 ～
            [349]9931 対応。
     * 2012-07-28
          + [matsuand] - SVN-20120725,
            Changeset [350]9920
            対応。(日本語訳変更なし)
     * 2012-07-24
          + [matsuand] - SVN-20120722,
            Changeset [351]9917,
            [352]9918 対応。
     * 2012-07-23
          + [matsuand] - SVN-20120722,
            Changeset [353]9916 対応。
     * 2012-07-20
          + [matsuand] - SVN-20120719,
            Changeset [354]9908 ～
            [355]9915 対応。
     * 2012-07-15
          + [matsuand] - SVN-20120714,
            Changeset [356]9907 対応。
     * 2012-07-14
          + [matsuand] - SVN-20120713,
            Changeset [357]9899 ～
            [358]9906 対応。
     * 2012-07-13
          + [matsuand] - SVN-20120711,
            Changeset [359]9897,
            [360]9898 対応。
     * 2012-06-24
          + [matsuand] - SVN-20120623,
            Changeset [361]9886 ～
            [362]9896 対応。
     * 2012-06-18
          + [matsuand] - SVN-20120617,
            Changeset [363]9883,
            [364]9884, [365]9885 対応。
     * 2012-06-15
          + [matsuand] - SVN-20120610,
            Changeset [366]9882 対応。
     * 2012-06-09
          + [matsuand] - SVN-20120607,
            Changeset [367]9871 ～
            [368]9881 対応。
     * 2012-06-03
          + [matsuand] - Changeset
            [369]9869, [370]9870
            対応。(日本語訳変更なし)
     * 2012-05-31
          + [matsuand] - SVN-20120530,
            Changeset [371]9862 ～
            [372]9868 対応。
     * 2012-05-25
          + [matsuand] - SVN-20120524,
            Changeset [373]9861 対応。
     * 2012-05-21
          + [matsuand] - SVN-20120520,
            Changeset [374]9860 対応。
     * 2012-05-19
          + [matsuand] - SVN-20120518,
            Changeset [375]9858,
            [376]9859 対応。
     * 2012-05-14
          + [matsuand] - SVN-20120513,
            Changeset [377]9855,
            [378]9856, [379]9857 対応。
     * 2012-05-12
          + [matsuand] - SVN-20120511,
            Changeset [380]9843 ～
            [381]9854 対応。
     * 2012-05-06
          + [matsuand] - SVN-20120505,
            Changeset [382]9842 対応。
     * 2012-05-02
          + [matsuand] - SVN-20120501,
            Changeset [383]9840,
            [384]9841 対応。
     * 2012-04-29
          + [matsuand] - SVN-20120429,
            Changeset [385]9835 ～
            [386]9839 対応。
     * 2012-04-28
          + [matsuand] - SVN-20120426,
            Changeset [387]9823 ～
            [388]9834 対応。
     * 2012-04-22
          + [matsuand] - ソース整形。
     * 2012-04-20
          + [matsuand] - SVN-20120419,
            Changeset [389]9816
            対応。(日本語訳変更なし。)
     * 2012-04-17
          + [matsuand] - ソース整形。
     * 2012-04-16
          + [matsuand] - 用語の統一; 様々
            →さまざま
          + [matsuand] - SVN-20120415,
            Changeset [390]9810,
            [391]9811, [392]9812 対応。
     * 2012-04-11
          + [matsuand] - SVN-20120409,
            Changeset [393]9807,
            [394]9808 対応。
     * 2012-04-08
          + [matsuand] - ソース整形。
     * 2012-04-05
          + [matsuand] - SVN-20120405,
            Changeset [395]9805,
            [396]9806 対応。
     * 2012-04-04
          + [matsuand] - SVN-20120403,
            Changeset [397]9799,
            [398]9800, [399]9801,
            [400]9802, [401]9803,
            [402]9804 対応。
     * 2012-03-31
          + [matsuand] - ソース全般整形。
          + [matsuand] - 訳出漏れの訂正。
     * 2012-03-30
          + [matsuand] - SVN-20120328,
            Changeset [403]9797,
            [404]9798 対応。
     * 2012-03-29
          + [matsuand] - SVN-20120328,
            Changeset [405]9793,
            [406]9794, [407]9795,
            [408]9796 対応。
     * 2012-03-28
          + [matsuand] - SVN-20120327,
            Changeset [409]9790,
            [410]9791, [411]9792 対応。
     * 2012-03-27
          + [matsuand] - SVN-20120326,
            Changeset [412]9785,
            [413]9786, [414]9787,
            [415]9788, [416]9789 対応。
     * 2012-03-23
          + [matsuand] - タイトル表記にて翻訳者名を
            collab タグから author タグに変更。
            これにより PDF 版にも翻訳者名を表記。
          + [matsuand] - SVN-20120322,
            Changeset [417]9783,
            [418]9784 対応。
     * 2012-03-21
          + [matsuand] - SVN-20120320,
            Changeset [419]9780,
            [420]9781, [421]9782 対応。
     * 2012-03-15
          + [matsuand] - SVN-20120314,
            Changeset [422]9775,
            [423]9776, [424]9777,
            [425]9778 対応。
          + [matsuand] -
            src/chapter03/packages.ch
            整形。
          + [matsuand] - wget-list
            変更方法の再調整。
     * 2012-03-12
          + [matsuand] - SVN-20120311,
            Changeset [426]9773,
            [427]9774 対応。
     * 2012-03-10
          + [matsuand] - Changeset
            [428]9771 対応。
     * 2012-03-07
          + [matsuand] - SVN-20120306,
            Changeset [429]9763,
            [430]9764, [431]9765,
            [432]9766, [433]9767,
            [434]9768, [435]9769,
            [436]9770 対応。
     * 2012-03-03
          + [matsuand] - SVN-20120302,
            Changeset [437]9760
            対応。(LFS-7.1)

1.5. 情報源

1.5.1. FAQ

   LFS
   システムの構築作業中にエラー発生したり、疑問を抱いたり、あるいは本書の
   誤記を発見した場合、まず手始めに
   [438]http://www.linuxfromscratch.or
   g/faq/
   に示されている「よく尋ねられる質問」(Frequently Asked
   Questions; FAQ) を参照してください。

1.5.2. メーリングリスト

   linuxfromscratch.org サーバーでは、LFS
   開発プロジェクトのために多くのメーリングリストを立ち上げています。
   このメーリングリストは主となる開発用とは別に、サポート用のものもありま
   す。 FAQ
   だけでは問題解決に至らなかった場合に、次の手としてメーリングリストを検
   索する以下のサイトを参照してください。
   [439]http://www.linuxfromscratch.or
   g/search.html

   これ以外に、投稿の方法、アーカイブの配置場所などに関しては
   [440]http://www.linuxfromscratch.or
   g/mail.html を参照してください。

1.5.3. IRC

   LFS コミュニティのメンバーの中には、インターネットリレーチャット
   (Internet Relay Chat; IRC)
   によるサポートを行っている者もいます。
   ここに対して質問を挙げる場合は、FAQ
   やメーリングリストに同様の質問や答えがないかどうかを必ず確認してくださ
   い。 IRC は irc.linuxfromscratch.org
   において、チャネル名 #LFS-support により提供しています。

1.5.4. ミラーサイト

   LFS プロジェクトは世界中にミラーサイトがあります。
   これらを使えばウェブサイト参照やパッケージのダウンロードがより便利に利
   用できます。 以下のサイトによりミラーサイトの情報を確認してください。
   [441]http://www.linuxfromscratch.or
   g/mirrors.html

1.5.5. 連絡先

   質問やコメントは (上に示した) メーリングリストを活用してください。

1.6. ヘルプ

   本書に基づく作業の中で問題が発生したり疑問が生まれた場合は
   [442]http://www.linuxfromscratch.or
   g/faq/#generalfaq にある FAQ
   のページを確認してください。
   質問への回答が示されているかもしれません。
   そこに回答が示されていなかったなら、問題の本質部分を見極めてください。
   トラブルシューティングとして以下のヒントが有用かもしれません。
   [443]http://www.linuxfromscratch.or
   g/hints/downloads/files/errors.txt

   FAQ では問題解決ができない場合、メーリングリスト
   [444]http://www.linuxfromscratch.or
   g/search.html を検索してください。

   我々のサイトにはメーリングリストやチャットを通じての情報提供を行う
   LFS コミュニティがあります。 (詳細は
   [445]1.5.「情報源」を参照してください。)
   我々は日々数多くのご質問を頂くのですが、たいていの質問は FAQ
   やメーリングリストを調べてみれば容易に答えが分かるものばかりです。
   したがって我々が最大限の支援を提供できるよう、ある程度の問題はご自身で
   解決するようにしてください。
   そうして頂くことで、我々はもっと特殊な状況に対するサポートを手厚く行っ
   ていくことができるからです。
   いくら調べても解決に至らず、お問い合わせ頂く場合は、以下に示すように十
   分な情報を提示してください。

1.6.1. 特記事項

   問題が発生し問い合わせをする場合には、以下に示す基本的な情報を含めてく
   ださい。
     * お使いの LFS ブックのバージョン。 (本書の場合 7.2)
     * LFS 構築に用いたホスト Linux
       のディストリビューションとそのバージョン。
     * [446]version-check の出力結果。
     * 問題が発生したパッケージまたは本書内の該当の章または節。
     * 問題となったエラーメッセージや状況に対する詳細な情報。
     * 本書どおりに作業しているか、逸脱していないかの情報。

注記

   本書の作業手順を逸脱していたとしても、
   我々がお手伝いしないわけではありません 。 つまるところ LFS
   は個人的な趣味によって構築されるものです。
   本書の手順とは異なるやり方を正確に説明してください。
   そうすれば内容の評価、原因究明が容易になります。

1.6.2. Configure スクリプトの問題

   configure スクリプトの実行時に何か問題が発生した時は
   config.log ファイルを確認してみてください。
   configure
   スクリプトの実行中に、端末画面に表示されないエラーが、このファイルに出
   力されているかもしれません。 問合せを行う際には 該当する
   行を示してください。

1.6.3. コンパイル時の問題

   コンパイル時に問題が発生した場合は、端末画面への出力とともに、数々のフ
   ァイルの内容も問題解決の糸口となります。 configure
   スクリプトと make
   コマンドの実行によって端末画面に出力される情報は重要です。
   問い合わせの際には、出力されるすべての情報を示す必要はありませんが、関
   連する情報は十分に含めてください。 以下に示すのは make
   コマンドの実行時に出力される情報を切り出してみた例です。
gcc -DALIASPATH=\"/mnt/lfs/usr/share/locale:
.\"
-DLOCALEDIR=\"/mnt/lfs/usr/share/locale\"
-DLIBDIR=\"/mnt/lfs/usr/lib\"
-DINCLUDEDIR=\"/mnt/lfs/usr/include\" -DHAVE
_CONFIG_H -I. -I.
-g -O2 -c getopt1.c
gcc -g -O2 -static -o make ar.o arscan.o com
mands.o dir.o
expand.o file.o function.o getopt.o implicit
.o job.o main.o
misc.o read.o remake.o rule.o signame.o vari
able.o vpath.o
default.o remote-stub.o version.o opt1.o
-lutil job.o: In function `load_too_high':
/lfs/tmp/make-3.79.1/job.c:1565: undefined r
eference
to `getloadavg'
collect2: ld returned 1 exit status
make[2]: *** [make] Error 1
make[2]: Leaving directory `/lfs/tmp/make-3.
79.1'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/lfs/tmp/make-3.
79.1'
make: *** [all-recursive-am] Error 2

   たいていの方は、上のような場合に終わりの数行しか示してくれません。
make [2]: *** [make] Error 1

   問題を解決するにはあまりに不十分な情報です。
   そんな情報だけでは「何かがオカしい結果となった」ことは分かっても「なぜ
   オカしい結果となった」のかが分からないからです。
   上に示したのは、十分な情報を提供して頂くべきであることを例示したもので
   あり、実行されたコマンドや関連するエラーメッセージが十分に含んだ例とな
   っています。

   インターネット上に、問い合わせを行う方法を示した優れた文章があります。
   [447]http://catb.org/~esr/faqs/smar
   t-questions.html
   この文章に示される内容やヒントを参考にして、より確実に回答が得られるよ
   う心がけてください。

第II部 ビルド作業のための準備

第2章 新しいパーティションの準備

2.1. はじめに

   この章では LFS
   システムをインストールするパーティションを準備します。
   パーティションを生成しファイルシステムを構築した上で、これをマウントし
   ます。

2.2. 新しいパーティションの生成

   どのようなオペレーティングシステムでも同じことが言えますが、本システム
   でもインストール先は専用のパーティションを用いることにします。 LFS
   システムを構築していくには、利用可能な空のパーティションか、あるいはパ
   ーティション化していないものをパーティションとして生成して利用すること
   にします。

   最小限のシステムであれば 2.8 GB
   程度のディスク容量があれば十分です。
   これだけあればパッケージやソースの収容に十分で、そこでコンパイル作業を
   行っていくことができます。 しかし主要なシステムとして LFS
   を構築するなら、さらにソフトウェアをインストールすることになるはずなの
   で、さらなる容量が必要となります。 10 GB
   ほどのパーティションがあれば、増量していくことを考えても十分な容量でし
   ょう。 LFS
   システムそのものがそれだけの容量を要するわけではありません。
   これだけの容量は十分なテンポラリ領域のために必要となるものです。
   パッケージをインストールした後はテンポラリ領域は開放されますが、コンパ
   イルの間は多くの領域を利用します。

   コンパイル処理において十分なランダムアクセスメモリ (Random
   Access Memory; RAM)
   を確保できるとは限りませんので、スワップ (swap)
   領域をパーティションとして設けるのが普通です。
   この領域へは利用頻度が低いデータを移すことで、アクティブな処理プロセス
   がより多くのメモリを確保できるようにカーネルが制御します。 swap
   パーティションは、LFS
   システムのものとホストシステムのものを共有することもできます。
   その場合は新しいパーティションを作る必要はありません。

   ディスクのパーティション生成は cfdisk コマンドや fdisk
   コマンドを使って行います。
   コマンドラインオプションにはパーティションを生成するハードディスク名を
   指定します。 例えば IDE (Integrated Drive
   Electronics) ディスクであれば /dev/hda
   といったものになります。 そして Linux
   ネイティブパーティションと、必要なら swap
   パーティションを生成します。 プログラムの利用方法について不明であれば
   cfdisk(8) や fdisk(8) を参照してください。

注記

   上級者の方であれば別のパーティション設定も可能です。 最新の LFS
   システムは、ソフトウェア [448]RAID
   アレーや、[449]LVM 論理ボリュームを利用することができます。
   ただしこれらを実現するには [450]initramfs
   が必要であり、高度なトピックです。
   こういったパーティション設定は、LFS 初心者にはお勧めしません。

   新しく生成したパーティションの名前を覚えておいてください。 (例えば
   hda5 など。) 本書ではこのパーティションを LFS
   パーティションとして説明していきます。 また swap
   パーティションの名前も忘れないでください。
   これらの名前は、後に生成する /etc/fstab
   ファイルに記述するために必要となります。

2.2.1. パーティションに関するその他の問題

   LFS
   メーリングリストにてパーティションに関する有用情報を望む声をよく聞きま
   す。 これは個人の趣味にもよる極めて主観的なものです。
   既存ディストリビューションが採用しているデフォルトのパーティションサイ
   ズと言えば、たいていはスワップパーティションを小容量で配置した上で、そ
   のドライブ内の残容量すべてのサイズを割り当てています。
   このようなサイズ設定は LFS
   では最適ではありません。その理由はいくつかあります。
   そのようにしてしまうと、複数のディストリビューションの導入時や LFS
   構築時に、柔軟さを欠き、構築がしにくくなります。
   バックアップを取る際にも無用な時間を要し、ファイルシステム上にて不適当
   なファイル配置を生み出すため、余計なディスク消費を発生させます。

2.2.1.1. ルートパーティション

   ルートパーティション (これを /root
   ディレクトリと混同しないでください) は 10 GB
   もあれば、どんなシステムであっても妥当なところでしょう。
   それだけあれば LFS 構築も、また BLFS
   においてもおそらく十分なはずです。
   実験的に複数パーティションを設けるとしても、これだけのサイズは必要です
   。

2.2.1.2. スワップパーティション

   既存のディストリビューションは、たいていはスワップパーティションを自動
   的に生成します。 一般にスワップパーティションのサイズは、物理 RAM
   サイズの二倍の容量とすることが推奨されています。
   しかしそれだけの容量はほとんど必要ありません。
   ディスク容量が限られているなら、スワップパーティションの容量を 2GB
   程度に抑えておいて、ディスクスワップがどれだけ発生するかを確認してみて
   ください。

   スワップは好ましいことではありません。
   一般にスワップが発生しているかどうかは、ディスクアクセスの様子やコマン
   ド実行時にシステムがどのように反応するかを見てみれば分かります。
   例えば 5GB
   くらいのファイルを編集するといった極端なコマンド実行を行ってみて、スワ
   ップが起きるかどうかを確認することが重要です。
   スワップがごく普通に発生するようであれば、RAMを増設するのが適切です
   。

2.2.1.3. 有用なパーティション

   この他にも、必要のないパーティションというものがいくつかあります。
   しかしディスクレイアウトを取り決めるには考えておく必要があります。
   以下に示すのは十分な説明ではありませんが、一つの目安として示すものです
   。
     * /boot – 作成することが強く推奨されます。
       カーネルやブート情報を収納するために利用するパーティションです
       。
       容量の大きなディスクの場合、ブート時に問題が発生することがある
       ので、これを回避するには、一つ目のディスクドライブの物理的に一
       番最初のパーティションを選びます。 パーティションサイズを
       100MB とすればそれで十分です。
     * /home – 作成することが強く推奨されます。
       複数のディストリビューションや LFS
       の間で、ホームディレクトリおよびユーザー固有の設定を共有するこ
       とができます。
       パーティションサイズは、ある程度大きく取ることになりますが、利
       用可能なディスク残容量に依存します。
     * /usr – /usr
       ディレクトリを別パーティションとして設けるのは、一般にはシンク
       ライアント (thin client)
       向けサーバーやディスクレスワークステーションにおいて行われます
       。 普通 LFS では必要ありません。 5 GB
       くらいの容量があれば、たいていのアプリケーションをインストール
       するのに十分なものでしょう。
     * /opt – このディレクトリは BLFS
       などにおいて、Gnome や KDE
       といった巨大なパッケージをいくつもインストールする際に活用され
       ます。 /usr ディレクトリ以外にインストールする場合です。
       これを別パーティションとするなら、一般的には 5 ～ 10
       GB 程度が適当でしょう。
     * /tmp – /tmp
       ディレクトリを別パーティションとするのは普通は行いません。
       ただしシンクライアント (thin client)
       では有効です。
       別パーティションとする場合であっても、数GB程度あれば十分です
       。
     * /usr/src – このパーティションは LFS
       のパッケージソースを収容し LFS
       ビルド工程にて共用するものとして有効に利用することができます。
       さらに BLFS
       パッケージソースを収容しビルドする場所としても利用可能です。
       30～50GBくらいの容量があれば、十分なものです。

   ブート時に自動的にパーティションをマウントしたい場合は
   /etc/fstab ファイルにて設定します。
   パーティションの設定方法については
   [451]8.2.「/etc/fstab
   ファイルの生成」で説明しています。

2.3. ファイルシステムの生成

   空のパーティションが準備できたのでファイルシステムを作ります。
   Linux において広く用いられるファイルシステムは ext2
   (second extended file system) です。
   より新しく大容量のハードディスクに対しては、ジャーナリングファイルシス
   テムが一般的となりつつあります。 ext3 (third
   extended file system) は ext2
   の拡張として広く利用されるようになっています。 ext3
   ではジャーナリング機能が追加され E2fsprogs
   ユーティリティとの互換性を持ちます。 本書では ext3
   ファイルシステムを生成することにします。
   他のファイルシステムの生成方法については
   [452]http://www.linuxfromscratch.or
   g/blfs/view/svn/postlfs/filesystems
   .html を参照してください。

   LFS 用のパーティションに対して ext3
   ファイルシステムを生成するために以下のコマンドを実行します。
mke2fs -jv /dev/<xxx>

   <xxx> の部分は LFS
   パーティション名に合わせて置き換えてください。 (本書の例では
   hda5 としています。)

注記

   ホストとして利用する Linux
   ディストリビューションの中には、ファイルシステムを生成するツール
   (E2fsprogs) に特別な機能を実装しているものがあります。
   第9章にて LFS
   システムをブートする際に、それらの機能が原因で問題が発生する場合があり
   ます。 そのような機能は LFS においてインストールする
   E2fsprogs ではサポートしていません。
   おそらくは「unsupported filesystem
   features, upgrade your
   e2fsprogs」(サポートされていないファイルシステムです。
   e2fsprogs をアップグレードしてください)
   といったエラーメッセージが表示されるはずです。
   ホストシステムが機能拡張しているかどうかを確認するには以下のコマンドを
   実行します。
debugfs -R feature /dev/<xxx>

   コマンドの出力結果の中に has_journal、 ext_attr、
   resize_inode、 dir_index、 filetype、
   sparse_super、 large_file、
   needs_recovery
   といったものとは異なるものが表示されていたら、あなたのホストシステムは
   機能拡張がなされていることを意味します。
   後に問題となりますので、純粋な E2fsprogs
   パッケージをコンパイルし、これを用いて LFS
   パーティションのファイルシステムを再生成してください。
cd /tmp
tar -xzvf /path/to/sources/e2fsprogs-1.42.5.
tar.gz
cd e2fsprogs-1.42.5
mkdir -v build
cd build
../configure
make #note that we intentionally don't 'make
 install' here!
./misc/mke2fs -jv /dev/<xxx>
cd /tmp
rm -rfv e2fsprogs-1.42.5

   既に存在している swap
   パーティションを用いることにした場合は、初期化操作を行う必要はありませ
   ん。 新しい swap
   パーティションを作成した場合は、以下のコマンドを実行して初期化を行う必
   要があります。
mkswap /dev/<yyy>

   <yyy> の部分は swap
   パーティションの名に合わせて置き換えてください。

2.4. 新しいパーティションのマウント

   ファイルシステムが生成できたら、パーティションをアクセスできるようにし
   ます。 これを行うためにはマウントポイントを定める必要があります。
   本書ではファイルシステムを /mnt/lfs
   にマウントすることにします。
   このディレクトリは各自で取り決めて変えることもできます。

   マウントポイントを定めたら、そのディレクトリを指し示すような環境変数
   LFS を以下のようにして設定します。
export LFS=/mnt/lfs

   次にマウントポイントを生成し、LFS
   ファイルシステムをマウントします。
mkdir -pv $LFS
mount -v -t ext3 /dev/<xxx> $LFS

   <xxx> の部分は LFS
   パーティション名に合わせて置き換えてください。

   LFS に対して複数のパーティションを用いる場合 (例えば / と
   /usr が別パーティションである場合)
   は、以下を実行してそれぞれをマウントします。
mkdir -pv $LFS
mount -v -t ext3 /dev/<xxx> $LFS
mkdir -v $LFS/usr
mount -v -t ext3 /dev/<yyy> $LFS/usr

   <xxx> や <yyy>
   の部分は、それぞれ適切なパーティション名に置き換えてください。

   この新しいパーティションは特別な制限オプション
   (nosuid、nodev など) は設定せずにマウントします。
   mount コマンドの実行時に引数を与えずに実行すれば、LFS
   パーティションがどのようなオプション設定によりマウントされているかが分
   かります。 もし nosuid、nodev、noatime
   といったオプションが設定されていたら、マウントし直してください。

   swap パーティションを用いる場合は、swapon
   コマンドを使って利用可能にしてください。
/sbin/swapon -v /dev/<zzz>

   <zzz> の部分は swap パーティション名に置き換えてください。

   こうして動作環境が整いました。次はパッケージのダウンロードです。

第3章 パッケージとパッチ

3.1. はじめに

   この章では基本的な Linux
   システム構築のためにダウンロードするべきパッケージの一覧を示します。
   各パッケージのバージョンは動作が確認されているものを示しており、本書で
   はこれに基づいて説明します。
   ここに示すバージョンよりも新しいものは使わないようお勧めします。
   あるバージョンでビルドしたコマンドが、新しいバージョンでも動作する保証
   はないからです。
   最新のパッケージの場合、何かの対処を要するかもしれません。
   そのような対処方法は本書の開発版において開発され安定化が図られるかもし
   れません。

   ダウンロードサイトは常にアクセス可能であるとは限りません。
   本書が提供された後にダウンロードする場所が変更になっていたら
   Google
   ([453]http://www.google.com/)
   を使って検索してみてください。
   たいていのパッケージを見つけ出すことが出来るはずです。
   それでも見つけられなかったら
   [454]http://www.linuxfromscratch.or
   g/lfs/packages.html#packages
   に示されている方法に従って入手してください。

   ダウンロードしたパッケージやパッチは、ビルド作業を通じて常に利用可能な
   場所を選んで保存しておく必要があります。
   またソース類を伸張してビルドを行うための作業ディレクトリも必要です。
   そこで本書では $LFS/sources
   ディレクトリを用意し、ソースやパッチの保存場所とし、そこでビルドを行う
   作業ディレクトリとします。 このディレクトリにしておけば LFS
   パーティションに位置することから LFS
   ビルドを行う全工程において常に利用することが出来ます。

   ダウンロードを行う前にまずはそのようなディレクトリを生成します。
   root ユーザーとなって以下のコマンドを実行します。
mkdir -v $LFS/sources

   このディレクトリには書き込み権限とスティッキーを与えます。
   「スティッキー (Sticky)
   」は複数ユーザーに対して書き込み権限が与えられても、削除については所有
   者しか実行出来ないようにします。
   以下のコマンドによって書き込み権限とスティッキーを定めます。
chmod -v a+wt $LFS/sources

   パッケージとパッチのダウンロードを簡単に行う方法として
   [455]wget-list を利用する方法があります。
   これは以下のように wget の入力引数に指定し利用します。
wget -i wget-list -P $LFS/sources

日本語訳情報

   オリジナルの LFS ブックでは、[456]wget-list
   内に含まれる、各種パッケージの入手 URL
   が主に米国サイトとなっています。
   一方、日本国内にて作業する方であれば、例えば GNU
   のパッケージ類は国内に数多くのミラーサイトが存在するため、そちらから取
   得するのが適切でしょう。
   これはネットワークリソースを利用する際のマナーとも言えるものです。
   堅苦しい話をするつもりはありません。
   国内サイトから入手することにすればダウンロード速度が断然早くなります。
   メリットは大きいと思いますのでお勧めします。

   国内から入手可能なものは国内から入手することを目指し、訳者は以下の手順
   により [457]wget-list を書き換えて利用しています。
   一例として国内には理化学研究所のサイト (ftp.riken.jp)
   があります。 そこでは GNU パッケージ類がミラー提供されています。
   そこで [458]wget-list にて ftp.gnu.org
   を指し示している URL を ftp.riken.jp
   に置き換えます。 また同じ方法で Linux
   カーネル、Perl、Vim の入手先も変更します。
mv wget-list{,.orig}
cat > wget-list-ja.sed << "EOF"
s|ftp\.gnu\.org/gnu/|ftp.riken.jp/GNU/ftp/gn
u/|g
s|www\.kernel\.org/pub/linux/|ftp.riken.jp/L
inux/kernel.org/linux/|g
s|www\.cpan\.org|ftp.riken.jp/lang/CPAN|g
s|ftp\.vim\.org|ftp.jp.vim.org|g
EOF
sed -f wget-list-ja.sed wget-list.orig > wge
t-list
rm wget-list-ja.sed

   上記はあくまで一例です。しかもすべてのパッケージについて、国内サイトか
   らの入手となるわけではありません。
   ただし上記を行うだけでも、大半のパッケージは国内サイトを向くことになり
   ます。 上記にて国内のミラーサイトは、ネットワーク的に "より近い"
   ものを選んでください。 サイトを変えた場合は、パッケージの URL
   が異なることが多々あるため、適宜 sed
   置換内容を書き換えてください。

   注意する点として各パッケージが更新されたばかりの日付では、国内ミラーサ
   イトへの同期、反映が間に合わず、ソース類が存在しないことが考えられます
   。 その場合にはパッケージ取得に失敗してしまいます。 そこで
   wget-list と wget-list.orig
   を順に利用し、かつ wget コマンドにて -N オプションを使って
   (取得済のものはスキップするようにして)
   以下のコマンドを実行すれば、確実にすべてのパッケージを入手することがで
   きます。
wget -N -i wget-list -P $LFS/sources
wget -N -i wget-list.orig -P $LFS/sources

   さらに LFS-7.0 からは [459]md5sums
   というファイルを用意しています。
   このファイルは、入手した各種パッケージのファイルが正しいことを確認する
   ために用いることができます。 このファイルを $LFS/sources
   に配置して以下を実行してください。
pushd  $LFS/sources
md5sum -c md5sums
popd

3.2. 全パッケージ

   以下に示すパッケージをダウンロードするなどしてすべて入手してください。

   Autoconf (2.69) - 1,186 KB:
          ホームページ:
          [460]http://www.gnu.org/soft
          ware/autoconf/

          ダウンロード:
          [461]http://ftp.gnu.org/gnu/
          autoconf/autoconf-2.69.tar.x
          z

          MD5 sum:
          50f97f4159805e374639a73e2636
          f22e

   Automake (1.12.3) - 1,352 KB:
          ホームページ:
          [462]http://www.gnu.org/soft
          ware/automake/

          ダウンロード:
          [463]http://ftp.gnu.org/gnu/
          automake/automake-1.12.3.tar
          .xz

          MD5 sum:
          0df082825f8f41087eb70c5088f4
          515e

   Bash (4.2) - 6,845 KB:
          ホームページ:
          [464]http://www.gnu.org/soft
          ware/bash/

          ダウンロード:
          [465]http://ftp.gnu.org/gnu/
          bash/bash-4.2.tar.gz

          MD5 sum:
          3fb927c7c33022f1c327f14a81c0
          d4b0

   Binutils (2.22) - 19,505 KB:
          ホームページ:
          [466]http://www.gnu.org/soft
          ware/binutils/

          ダウンロード:
          [467]http://ftp.gnu.org/gnu/
          binutils/binutils-2.22.tar.b
          z2

          MD5 sum:
          ee0f10756c84979622b992a4a61e
          a3f5

   Bison (2.6.2) - 1,612 KB:
          ホームページ:
          [468]http://www.gnu.org/soft
          ware/bison/

          ダウンロード:
          [469]http://ftp.gnu.org/gnu/
          bison/bison-2.6.2.tar.xz

          MD5 sum:
          dea291996f98c34c3fd8e389a9cf
          6ea1

   Bzip2 (1.0.6) - 764 KB:
          ホームページ:
          [470]http://www.bzip.org/

          ダウンロード:
          [471]http://www.bzip.org/1.0
          .6/bzip2-1.0.6.tar.gz

          MD5 sum:
          00b516f4704d4a7cb50a1d97e6e8
          e15b

   Check (0.9.8) - 546 KB:
          ホームページ:
          [472]http://check.sourceforg
          e.net/

          ダウンロード:
          [473]http://sourceforge.net/
          projects/check/files/check/0
          .9.8/check-0.9.8.tar.gz

          MD5 sum:
          5d75e9a6027cde79d2c339ef261e
          7470

   Coreutils (8.19) - 4,992 KB:
          ホームページ:
          [474]http://www.gnu.org/soft
          ware/coreutils/

          ダウンロード:
          [475]http://ftp.gnu.org/gnu/
          coreutils/coreutils-8.19.tar
          .xz

          MD5 sum:
          1a01231a2f3ed37c0efc073ccdda
          9375

   DejaGNU (1.5) - 563 KB:
          ホームページ:
          [476]http://www.gnu.org/soft
          ware/dejagnu/

          ダウンロード:
          [477]http://ftp.gnu.org/gnu/
          dejagnu/dejagnu-1.5.tar.gz

          MD5 sum:
          3df1cbca885e751e22d3ebd1ac64
          dc3c

   Diffutils (3.2) - 1,976 KB:
          ホームページ:
          [478]http://www.gnu.org/soft
          ware/diffutils/

          ダウンロード:
          [479]http://ftp.gnu.org/gnu/
          diffutils/diffutils-3.2.tar.
          gz

          MD5 sum:
          22e4deef5d8949a727b159d6bc65
          c1cc

   E2fsprogs (1.42.5) - 5,780 KB:
          ホームページ:
          [480]http://e2fsprogs.source
          forge.net/

          ダウンロード:
          [481]http://prdownloads.sour
          ceforge.net/e2fsprogs/e2fspr
          ogs-1.42.5.tar.gz

          MD5 sum:
          aca828bb4bcca20991a442deb950
          b670

   Expect (5.45) - 614 KB:
          ホームページ:
          [482]http://expect.sourcefor
          ge.net/

          ダウンロード:
          [483]http://prdownloads.sour
          ceforge.net/expect/expect5.4
          5.tar.gz

          MD5 sum:
          44e1a4f4c877e9ddc5a542dfa7ec
          c92b

   File (5.11) - 596 KB:
          ホームページ:
          [484]http://www.darwinsys.co
          m/file/

          ダウンロード:
          [485]ftp://ftp.astron.com/pu
          b/file/file-5.11.tar.gz

          MD5 sum:
          16a407bd66d6c7a832f3a5c0d609
          c27b

注記

          File パッケージ (5.11)
          は上記の場所から入手できなくなっているかもしれません。
          これはサイト管理者が、新バージョンのリリースと同時に古い
          バージョンを削除することがあるためです。
          適切なバージョンをダウンロードするためには、以下に示す別
          のサイトを参照してください。
          [486]http://www.linuxfromscr
          atch.org/lfs/download.html#f
          tp

   Findutils (4.4.2) - 2,100 KB:
          ホームページ:
          [487]http://www.gnu.org/soft
          ware/findutils/

          ダウンロード:
          [488]http://ftp.gnu.org/gnu/
          findutils/findutils-4.4.2.ta
          r.gz

          MD5 sum:
          351cc4adb07d54877fa15f75fb77
          d39f

   Flex (2.5.37) - 1,280 KB:
          ホームページ:
          [489]http://flex.sourceforge
          .net

          ダウンロード:
          [490]http://prdownloads.sour
          ceforge.net/flex/flex-2.5.37
          .tar.bz2

          MD5 sum:
          c75940e1fc25108f2a7b3ef42abd
          ae06

   Gawk (4.0.1) - 1,575 KB:
          ホームページ:
          [491]http://www.gnu.org/soft
          ware/gawk/

          ダウンロード:
          [492]http://ftp.gnu.org/gnu/
          gawk/gawk-4.0.1.tar.xz

          MD5 sum:
          a601b032c39cd982f34272664f8a
          fa49

   GCC (4.7.1) - 80,703 KB:
          ホームページ:
          [493]http://gcc.gnu.org/

          ダウンロード:
          [494]http://ftp.gnu.org/gnu/
          gcc/gcc-4.7.1/gcc-4.7.1.tar.
          bz2

          MD5 sum:
          933e6f15f51c031060af64a9e141
          49ff

   GDBM (1.10) - 640 KB:
          ホームページ:
          [495]http://www.gnu.org/soft
          ware/gdbm/

          ダウンロード:
          [496]http://ftp.gnu.org/gnu/
          gdbm/gdbm-1.10.tar.gz

          MD5 sum:
          88770493c2559dc80b561293e39d
          3570

   Gettext (0.18.1.1) - 14,785 KB:
          ホームページ:
          [497]http://www.gnu.org/soft
          ware/gettext/

          ダウンロード:
          [498]http://ftp.gnu.org/gnu/
          gettext/gettext-0.18.1.1.tar
          .gz

          MD5 sum:
          3dd55b952826d2b32f51308f2f91
          aa89

   Glibc (2.16.0) - 9,756 KB:
          ホームページ:
          [499]http://www.gnu.org/soft
          ware/libc/

          ダウンロード:
          [500]http://ftp.gnu.org/gnu/
          glibc/glibc-2.16.0.tar.xz

          MD5 sum:
          80b181b02ab249524ec92822c017
          4cf7

   GMP (5.0.5) - 1,632 KB:
          ホームページ:
          [501]http://www.gnu.org/soft
          ware/gmp/

          ダウンロード:
          [502]http://ftp.gnu.org/gnu/
          gmp/gmp-5.0.5.tar.xz

          MD5 sum:
          8aef50959acec2a1ad41d144ffe0
          f3b5

   Grep (2.14) - 1,172 KB:
          ホームページ:
          [503]http://www.gnu.org/soft
          ware/grep/

          ダウンロード:
          [504]http://ftp.gnu.org/gnu/
          grep/grep-2.14.tar.xz

          MD5 sum:
          d4a3f03849d1e17ce56ab76aa5a2
          4cab

   Groff (1.21) - 3,774 KB:
          ホームページ:
          [505]http://www.gnu.org/soft
          ware/groff/

          ダウンロード:
          [506]http://ftp.gnu.org/gnu/
          groff/groff-1.21.tar.gz

          MD5 sum:
          8b8cd29385b97616a0f0d96d0951
          c5bf

   GRUB (2.00) - 5,016 KB:
          ホームページ:
          [507]http://www.gnu.org/soft
          ware/grub/

          ダウンロード:
          [508]http://ftp.gnu.org/gnu/
          grub/grub-2.00.tar.xz

          MD5 sum:
          a1043102fbc7bcedbf53e7ee3d17
          ab91

   Gzip (1.5) - 704 KB:
          ホームページ:
          [509]http://www.gnu.org/soft
          ware/gzip/

          ダウンロード:
          [510]http://ftp.gnu.org/gnu/
          gzip/gzip-1.5.tar.xz

          MD5 sum:
          2a431e169b6f62f7332ef6d47cc5
          3bae

   Iana-Etc (2.30) - 201 KB:
          ホームページ:
          [511]http://freshmeat.net/pr
          ojects/iana-etc/

          ダウンロード:
          [512]http://anduin.linuxfrom
          scratch.org/sources/LFS/lfs-
          packages/conglomeration//ian
          a-etc/iana-etc-2.30.tar.bz2

          MD5 sum:
          3ba3afb1d1b261383d247f46cb13
          5ee8

   Inetutils (1.9.1) - 1,941 KB:
          ホームページ:
          [513]http://www.gnu.org/soft
          ware/inetutils/

          ダウンロード:
          [514]http://ftp.gnu.org/gnu/
          inetutils/inetutils-1.9.1.ta
          r.gz

          MD5 sum:
          944f7196a2b3dba2d400e9088576
          000c

   IPRoute2 (3.5.1) - 379 KB:
          ホームページ:
          [515]http://www.kernel.org/p
          ub/linux/utils/net/iproute2/

          ダウンロード:
          [516]http://www.kernel.org/p
          ub/linux/utils/net/iproute2/
          iproute2-3.5.1.tar.xz

          MD5 sum:
          d4425b44edd5eacd6099e672e4ba
          acbf

   Kbd (1.15.3) - 1,621 KB:
          ホームページ:
          [517]http://ftp.altlinux.org
          /pub/people/legion/kbd

          ダウンロード:
          [518]http://ftp.altlinux.org
          /pub/people/legion/kbd/kbd-1
          .15.3.tar.gz

          MD5 sum:
          8143e179a0f3c25646ce5085e877
          7200

   Kmod (9) - 1,096 KB:
          ダウンロード:
          [519]http://www.kernel.org/p
          ub/linux/utils/kernel/kmod/k
          mod-9.tar.xz

          MD5 sum:
          c8ae2d2694fbca2b28e238b30543
          a0cd

   Less (444) - 301 KB:
          ホームページ:
          [520]http://www.greenwoodsof
          tware.com/less/

          ダウンロード:
          [521]http://www.greenwoodsof
          tware.com/less/less-444.tar.
          gz

          MD5 sum:
          56f9f76ffe13f70155f47f6b3c87
          d421

   LFS-Bootscripts (20120901) - 33 KB:
          ダウンロード:
          [522]http://www.linuxfromscr
          atch.org/lfs/downloads/7.2/l
          fs-bootscripts-20120901.tar.
          bz2

          MD5 sum:
          393e4ed76819ce412f8a406c44be
          abd0

   Libpipeline (1.2.1) - 723 KB:
          ホームページ:
          [523]http://libpipeline.nong
          nu.org/

          ダウンロード:
          [524]http://download.savanna
          h.gnu.org/releases/libpipeli
          ne/libpipeline-1.2.1.tar.gz

          MD5 sum:
          20896c919eca4acb3d2f13012fb7
          ba02

   Libtool (2.4.2) - 2,571 KB:
          ホームページ:
          [525]http://www.gnu.org/soft
          ware/libtool/

          ダウンロード:
          [526]http://ftp.gnu.org/gnu/
          libtool/libtool-2.4.2.tar.gz

          MD5 sum:
          d2f3b7d4627e69e13514a40e72a2
          4d50

   Linux (3.5.2) - 66,060 KB:
          ホームページ:
          [527]http://www.kernel.org/

          ダウンロード:
          [528]http://www.kernel.org/p
          ub/linux/kernel/v3.x/linux-3
          .5.2.tar.xz

          MD5 sum:
          b3cfccfb6961ea407acf0b070184
          b0b1

注記

          Linux カーネルはわりと頻繁に更新されます。
          多くの場合はセキュリティ脆弱性の発見によるものです。
          特に正誤情報 (errata)
          のページにて説明がない限りは、入手可能な最新の
          3.5.x カーネルを用いてください。

          低速度のネットワークや高負荷の帯域幅を利用するユーザーが
          Linux
          カーネルをアップデートしようとする場合は、同一バージョン
          のカーネルパッケージとそのパッチを個別にダウンロードする
          方法もあります。
          その場合、時間の節約を図ることができ、あるいはマイナーバ
          ージョンが同一であれば複数パッチを当ててアップグレードす
          る作業時間の短縮が図れます。

   M4 (1.4.16) - 1,229 KB:
          ホームページ:
          [529]http://www.gnu.org/soft
          ware/m4/

          ダウンロード:
          [530]http://ftp.gnu.org/gnu/
          m4/m4-1.4.16.tar.bz2

          MD5 sum:
          8a7cef47fecab6272eb86a6be636
          3b2f

   Make (3.82) - 1,213 KB:
          ホームページ:
          [531]http://www.gnu.org/soft
          ware/make/

          ダウンロード:
          [532]http://ftp.gnu.org/gnu/
          make/make-3.82.tar.bz2

          MD5 sum:
          1a11100f3c63fcf5753818e59d63
          088f

   Man-DB (2.6.2) - 1,353 KB:
          ホームページ:
          [533]http://www.nongnu.org/m
          an-db/

          ダウンロード:
          [534]http://download.savanna
          h.gnu.org/releases/man-db/ma
          n-db-2.6.2.tar.xz

          MD5 sum:
          647c48d46c464419185d031d0448
          1ee5

   Man-pages (3.42) - 1,076 KB:
          ホームページ:
          [535]http://www.kernel.org/d
          oc/man-pages/

          ダウンロード:
          [536]http://www.kernel.org/p
          ub/linux/docs/man-pages/man-
          pages-3.42.tar.xz

          MD5 sum:
          2392bb23db94f344f493c4beca41
          398f

   MPC (1.0) - 614 KB:
          ホームページ:
          [537]http://www.multiprecisi
          on.org/

          ダウンロード:
          [538]http://www.multiprecisi
          on.org/mpc/download/mpc-1.0.
          tar.gz

          MD5 sum:
          13370ceb2e266c5eeb2f7e78c24b
          7858

   MPFR (3.1.1) - 1,047 KB:
          ホームページ:
          [539]http://www.mpfr.org/

          ダウンロード:
          [540]http://www.mpfr.org/mpf
          r-3.1.1/mpfr-3.1.1.tar.xz

          MD5 sum:
          91d51c41fcf2799e4ee7a7126fc9
          5c17

   Ncurses (5.9) - 2,760 KB:
          ホームページ:
          [541]http://www.gnu.org/soft
          ware/ncurses/

          ダウンロード:
          [542]ftp://ftp.gnu.org/gnu/n
          curses/ncurses-5.9.tar.gz

          MD5 sum:
          8cb9c412e5f2d96bc6f459aa8c62
          82a1

   Patch (2.6.1) - 248 KB:
          ホームページ:
          [543]http://savannah.gnu.org
          /projects/patch/

          ダウンロード:
          [544]http://ftp.gnu.org/gnu/
          patch/patch-2.6.1.tar.bz2

          MD5 sum:
          0818d1763ae0c4281bcdc63cdac0
          b2c0

   Perl (5.16.1) - 13,256 KB:
          ホームページ:
          [545]http://www.perl.org/

          ダウンロード:
          [546]http://www.cpan.org/src
          /5.0/perl-5.16.1.tar.bz2

          MD5 sum:
          b87358e2c461a898cfd7c334e7dd
          8993

   Pkg-config (0.27) - 1872 KB:
          ホームページ:
          [547]http://www.freedesktop.
          org/wiki/Software/pkg-config

          ダウンロード:
          [548]http://pkgconfig.freede
          sktop.org/releases/pkg-confi
          g-0.27.tar.gz

          MD5 sum:
          3a4c9feab14b6719afd8904945d9
          b4e4

   Procps (3.2.8) - 279 KB:
          ホームページ:
          [549]http://procps.sourcefor
          ge.net/

          ダウンロード:
          [550]http://procps.sourcefor
          ge.net/procps-3.2.8.tar.gz

          MD5 sum:
          9532714b6846013ca9898984ba4c
          d7e0

   Psmisc (22.19) - 481 KB:
          ホームページ:
          [551]http://psmisc.sourcefor
          ge.net/

          ダウンロード:
          [552]http://prdownloads.sour
          ceforge.net/psmisc/psmisc-22
          .19.tar.gz

          MD5 sum:
          38563b4760ffce54b0eadf99cb5b
          16e8

   Readline (6.2) - 2,225 KB:
          ホームページ:
          [553]http://cnswww.cns.cwru.
          edu/php/chet/readline/rltop.
          html

          ダウンロード:
          [554]http://ftp.gnu.org/gnu/
          readline/readline-6.2.tar.gz

          MD5 sum:
          67948acb2ca081f23359d0256e9a
          271c

   Sed (4.2.1) - 878 KB:
          ホームページ:
          [555]http://www.gnu.org/soft
          ware/sed/

          ダウンロード:
          [556]http://ftp.gnu.org/gnu/
          sed/sed-4.2.1.tar.bz2

          MD5 sum:
          7d310fbd76e01a01115075c1fd3f
          455a

   Shadow (4.1.5.1) - 2,142 KB:
          ホームページ:
          [557]http://pkg-shadow.aliot
          h.debian.org/

          ダウンロード:
          [558]http://pkg-shadow.aliot
          h.debian.org/releases/shadow
          -4.1.5.1.tar.bz2

          MD5 sum:
          a00449aa439c69287b6d472191dc
          2247

   Sysklogd (1.5) - 85 KB:
          ホームページ:
          [559]http://www.infodrom.org
          /projects/sysklogd/

          ダウンロード:
          [560]http://www.infodrom.org
          /projects/sysklogd/download/
          sysklogd-1.5.tar.gz

          MD5 sum:
          e053094e8103165f98ddafe828f6
          ae4b

   Sysvinit (2.88dsf) - 108 KB:
          ホームページ:
          [561]http://savannah.nongnu.
          org/projects/sysvinit

          ダウンロード:
          [562]http://download.savanna
          h.gnu.org/releases/sysvinit/
          sysvinit-2.88dsf.tar.bz2

          MD5 sum:
          6eda8a97b86e0a6f59dabbf25202
          aa6f

   Tar (1.26) - 2,285 KB:
          ホームページ:
          [563]http://www.gnu.org/soft
          ware/tar/

          ダウンロード:
          [564]http://ftp.gnu.org/gnu/
          tar/tar-1.26.tar.bz2

          MD5 sum:
          2cee42a2ff4f1cd4f9298eeeb226
          4519

   Tcl (8.5.12) - 4,396 KB:
          ホームページ:
          [565]http://tcl.sourceforge.
          net/

          ダウンロード:
          [566]http://prdownloads.sour
          ceforge.net/tcl/tcl8.5.12-sr
          c.tar.gz

          MD5 sum:
          174b2b4c619ba8f96875d8a05191
          7703

   Time Zone Data (2012e) - 208 KB:
          ホームページ:
          [567]http://www.iana.org/tim
          e-zones

          ダウンロード:
          [568]http://www.iana.org//ti
          me-zones/repository/releases
          /tzdata2012e.tar.gz

          MD5 sum:
          cb74e1f7bcc9a968a891a471e72e
          47b8

   Texinfo (4.13a) - 2,687 KB:
          ホームページ:
          [569]http://www.gnu.org/soft
          ware/texinfo/

          ダウンロード:
          [570]http://ftp.gnu.org/gnu/
          texinfo/texinfo-4.13a.tar.gz

          MD5 sum:
          71ba711519209b5fb583fed2b3d8
          6fcb

   Systemd (188) - 1,324 KB:
          ホームページ:
          [571]http://www.freedesktop.
          org/wiki/Software/systemd/

          ダウンロード:
          [572]http://www.freedesktop.
          org/software/systemd/systemd
          -188.tar.xz

          MD5 sum:
          d89b42699695554949d072ef46c0
          dfc9

   Udev-lfs Tarball (188) - 20 KB:
          ダウンロード:
          [573]http://anduin.linuxfrom
          scratch.org/sources/other/ud
          ev-lfs-188-3.tar.bz2

          MD5 sum:
          ef6cd9f078c39c61ba744d08276a
          1210

   Util-linux (2.21.2) - 2,916 KB:
          ホームページ:
          [574]http://userweb.kernel.o
          rg/~kzak/util-linux/

          ダウンロード:
          [575]http://www.kernel.org/p
          ub/linux/utils/util-linux/v2
          .21/util-linux-2.21.2.tar.xz

          MD5 sum:
          54ba880f1d66782c2287ee2c8985
          20e9

   Vim (7.3) - 8,675 KB:
          ホームページ:
          [576]http://www.vim.org

          ダウンロード:
          [577]ftp://ftp.vim.org/pub/v
          im/unix/vim-7.3.tar.bz2

          MD5 sum:
          5b9510a17074e2b37d8bb38ae09e
          dbf2

   Xz Utils (5.0.4) - 894 KB:
          ホームページ:
          [578]http://tukaani.org/xz

          ダウンロード:
          [579]http://tukaani.org/xz/x
          z-5.0.4.tar.xz

          MD5 sum:
          161015c4a65b1f293d31810e1df9
          3090

   Zlib (1.2.7) - 493 KB:
          ホームページ:
          [580]http://www.zlib.net/

          ダウンロード:
          [581]http://www.zlib.net/zli
          b-1.2.7.tar.bz2

          MD5 sum:
          2ab442d169156f34c379c968f3f4
          82dd

   全パッケージのサイズ合計: 約 292 MB

3.3. 必要なパッチ

   パッケージに加えて、いくつかのパッチも必要となります。
   それらのパッチはパッケージの不備をただすもので、本来なら開発者が修正す
   べきものです。
   パッチは不備修正だけでなく、ちょっとした修正を施して扱いやすいものにす
   る目的のものもあります。 以下に示すものが LFS
   システム構築に必要となるパッチすべてです。

日本語訳情報

   各パッチには簡略な名称がつけられていますが、これを日本語に訳してしまう
   と、パッチの特定ができなくなることが考えられるため、訳出せずそのまま表
   記することにします。

   Bash Upstream Fixes Patch - 51 KB:
          ダウンロード:
          [582]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/bas
          h-4.2-fixes-8.patch

          MD5 sum:
          e82d2200e82aa28640299bbcad14
          0361

   Binutils Build Fix Patch - 1.4 KB:
          ダウンロード:
          [583]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/bin
          utils-2.22-build_fix-1.patch

          MD5 sum:
          ddc5a9a170ed6ba23b8eb7d808e6
          09ee

   Bzip2 Documentation Patch - 1.6 KB:
          ダウンロード:
          [584]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/bzi
          p2-1.0.6-install_docs-1.patc
          h

          MD5 sum:
          6a5ac7e89b791aae556de0f74591
          6f7f

   Coreutils Internationalization
          Fixes Patch - 272 KB:
          ダウンロード:
          [585]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/cor
          eutils-8.19-i18n-1.patch

          MD5 sum:
          befbf82628d019ef08d522c95cba
          331d

   Flex Regression Tests Patch - 2.8
          KB:
          ダウンロード:
          [586]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/fle
          x-2.5.37-bison-2.6.1-1.patch

          MD5 sum:
          d5b001ef9bdbbe32e2f27576d97d
          8ff0

   Glibc DNS Resolve Patch - 2.0 KB:
          ダウンロード:
          [587]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/gli
          bc-2.16.0-res_query_fix-1.pa
          tch

          MD5 sum:
          d37659c643b1a2150624120238e5
          b295

   Kbd Loadkeys Fix Patch - 1.6 KB:
          ダウンロード:
          [588]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/kbd
          -1.15.3-upstream_fixes-1.pat
          ch

          MD5 sum:
          58ae9bd7d546426cfaccf3eba16a
          d1a2

   Kbd Backspace/Delete Fix Patch - 12
          KB:
          ダウンロード:
          [589]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/kbd
          -1.15.3-backspace-1.patch

          MD5 sum:
          f75cca16a38da6caa7d52151f713
          6895

   Kmod Testsuite Patch - 2.2 KB:
          ダウンロード:
          [590]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/kmo
          d-9-testsuite-1.patch

          MD5 sum:
          11ab14f5b63ae3c163804517cf11
          0fbb

   Make Upstream Fixes Patch - 9.7 KB:
          ダウンロード:
          [591]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/mak
          e-3.82-upstream_fixes-2.patc
          h

          MD5 sum:
          02c0f3989185a7345233872b1ae5
          f46d

   Patch Testsuite Fix Patch - 1 KB:
          ダウンロード:
          [592]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/pat
          ch-2.6.1-test_fix-1.patch

          MD5 sum:
          c51e1a95bfc5310635d05081472c
          3534

   Perl Libc Patch - 1.6 KB:
          ダウンロード:
          [593]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/per
          l-5.16.1-libc-2.patch

          MD5 sum:
          daf5c64fd7311e92496684268053
          5f8f

   Procps HZ Errors Patch - 2.3 KB:
          ダウンロード:
          [594]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/pro
          cps-3.2.8-fix_HZ_errors-1.pa
          tch

          MD5 sum:
          2ea4c8e9a2c2a5a291ec63c92d7c
          6e3b

   Procps Watch Patch - 3.5 KB:
          ダウンロード:
          [595]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/pro
          cps-3.2.8-watch_unicode-1.pa
          tch

          MD5 sum:
          cd1a757e532d93662a7ed71da80e
          6b58

   Readline Upstream Fixes Patch - 1.3
          KB:
          ダウンロード:
          [596]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/rea
          dline-6.2-fixes-1.patch

          MD5 sum:
          3c185f7b76001d3d0af614f6f2cd
          5dfa

   Sed Regression Tests Patch - 1.9
          KB:
          ダウンロード:
          [597]http://www.linuxfromscr
          atch.org/patches/lfs/7.2/sed
          -4.2.1-testsuite_fixes-1.pat
          ch

          MD5 sum:
          2c10a5804eedf5359bcf427bc0d0
          5579

   全パッチの合計サイズ: 約 367.9 KB

   上に挙げた必須のパッチに加えて LFS
   コミュニティが提供する任意のパッチが数多くあります。
   それらは微小な不備改修や、デフォルトでは利用できない機能を有効にするな
   どを行います。
   [598]http://www.linuxfromscratch.or
   g/patches/downloads/
   にて提供しているパッチ類を確認してください。
   そして自分のシステムにとって必要なものは自由に適用してください。

第4章 準備作業の仕上げ

4.1. $LFSについて

   本書の中では環境変数 LFS を利用していきます。
   この変数は常に定義しておくことが必要です。 これは LFS
   パーティションとして選んだマウントポイントを定義します。 変数 LFS
   が適切に定義できているかどうかは、以下を実行すれば確認できます。
echo $LFS

   上の出力結果が LFS
   パーティションのマウントポイントであることを確認してください。
   本書に示す例に従っている場合は /mnt/lfs
   が表示されるはずです。
   出力が正しくない場合は、以下のようにして変数をセットします。
export LFS=/mnt/lfs

   上のように変数を定義しておくと、例えば mkdir
   $LFS/tools
   といったコマンドを、この通りに入力することで実行できるので便利です。
   これが実行されると、シェルが「$LFS」を「/mnt/lfs」に
   (あるいは変数にセットされている別のディレクトリに)
   置換して処理してくれます。

   $LFS が常にセットされていることを忘れずに確認してください。
   特に、別ユーザーでログインし直した場合 (su コマンドによって
   root ユーザーや別のユーザーでログインした場合)
   には、忘れずに確認してください。

4.2. $LFS/tools ディレクトリの生成

   [599]第5章にてビルドしていくプログラムは、すべて
   $LFS/tools ディレクトリ配下にインストールされます。
   これらは[600]第6章にてコンパイル生成されるプログラムとは区別され
   ます。 ここでコンパイルするプログラムは一時的なものであり、最終的な
   LFS システムを構成するものではありません。
   これらのプログラムを分離したディレクトリに置いておけば、後に必要がなく
   なった時には簡単に削除できます。
   またホストシステムの実行環境に入り混じってしまうことを避ける意味もあり
   ます。
   ([601]第5章の作業でついうっかり、といった失敗がなくなります。)

   $LFS/tools ディレクトリは root
   ユーザーになって以下のコマンドを実行して生成します。
mkdir -v $LFS/tools

   次にホストシステム上に /tools
   のシンボリックリンクを作成します。 これは LFS
   パーティションに生成されたディレクトリを指し示すものです。 root
   ユーザーのままで以下を実行します。
ln -sv $LFS/tools /

注記

   上のコマンドに間違いはありません。 ln
   コマンドにはいくつか文法の異なるバージョンがあります。
   間違いがあると思った場合には info coreutils ln や
   ln(1) をよく確認してください。

   シンボリックリンクを作成することで、ツールチェーンをコンパイルする準備
   が整いました。 これにより常に /tools
   ディレクトリを参照したツールチェーンが生成できます。
   コンパイラー、アセンブラー、リンカーは本章において動作し
   (いくつかのツール類は依然ホストシステムのものを利用しますが)、次章に
   おいても同様に動作します。 (次章では「chroot」によって LFS
   パーティションに移動して利用します。)

4.3. LFS ユーザーの追加

   root
   ユーザーでログインしていると、ちょっとした誤操作がもとで、システムを破
   壊する重大な事態につながることがあります。
   そこでパッケージのビルドにあたっては通常のユーザー権限にて作業すること
   にします。
   あなた自身のユーザーを利用するのでも構いませんが、全く新しいユーザー環
   境として lfs というユーザーを作成するのが分かりやすいでしょう。
   所属するグループも lfs という名で作成します。
   ビルド作業においてはこのユーザーを利用していきます。 そこで root
   ユーザーになって、新たなユーザーを追加する以下のコマンドを実行します。
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null
lfs

   コマンドラインオプションの意味:

   -s /bin/bash
          lfs ユーザーが利用するデフォルトのシェルを bash
          にします。

   -g lfs
          lfs ユーザーのグループを lfs とします。

   -m
          lfs ユーザーのホームディレクトリを生成します。

   -k /dev/null
          このパラメーターは、ディレクトリ名をヌルデバイス
          (null device) に指定しています。
          こうすることでスケルトンディレクトリ (デフォルトは
          /etc/skel)
          からのファイル群のコピーを無効とします。

   lfs
          生成するグループおよびユーザーの名称を与えます。

   lfs ユーザーとしてログインするために lfs
   に対するパスワードを設定します。 (root
   ユーザーでログインしている時に lfs
   へのユーザー切り替えを行なう場合には lfs
   ユーザーのパスワードは設定しておく必要はありません。)
passwd lfs

   $LFS/tools ディレクトリの所有者を lfs
   ユーザーとすることで、このディレクトリへのフルアクセス権を設定します。
chown -v lfs $LFS/tools

   前述したような作業ディレクトリを作成している場合は、そのディレクトリに
   対しても lfs ユーザーを所有者とします。
chown -v lfs $LFS/sources

   lfs でログインします。
   これはディスプレイマネージャーを通じて仮想端末を用いることができます。
   また以下のコマンドを実行するのでも構いません。
su - lfs

   パラメーター「-」は su コマンドの実行において、非ログイン
   (non-login)
   シェルではなく、ログインシェルを起動することを指示します。
   ログインシェルとそうでないシェルの違いについては bash(1) や
   info bash を参照してください。

4.4. 環境設定

   作業しやすい動作環境とするために bash
   シェルに対するスタートアップファイルを二つ作成します。 lfs
   ユーザーでログインして、以下のコマンドによって
   .bash_profile ファイルを生成します。
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w
\$ ' /bin/bash
EOF

   lfs
   ユーザーとしてログインした時、起動されるシェルは普通はログインシェルと
   なります。 この時、ホストシステムの /etc/profile
   ファイル (おそらく環境変数がいくつか定義されている) と
   .bash_profile が読み込まれます。
   .bash_profile ファイル内の exec env
   -i.../bin/bash
   というコマンドが、起動しているシェルを全くの空の環境として起動し直し
   HOME、 TERM、PS1 という環境変数だけを設定します。
   これはホストシステム内の不要な設定や危険をはらんだ設定を、ビルド環境に
   持ち込まないようにするためです。
   このようにすることできれいな環境作りを実現できます。

   新しく起動するシェルはログインシェルではなくなります。
   したがってこのシェルは /etc/profile ファイルや
   .bash_profile ファイルは読み込まず、代わりに
   .bashrc ファイルを読み込みます。 そこで以下のようにして
   .bashrc ファイルを生成します。
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

   set +h コマンドは bash のハッシュ機能を無効にします。
   通常このハッシュ機能は有用なものです。
   実行ファイルのフルパスをハッシュテーブルに記憶しておき、再度そのパスを
   探し出す際に PATH 変数の探査を省略します。
   しかしこれより作り出すツール類はインストール直後にすぐ利用していきます
   。
   ハッシュ機能を無効にすることで、プログラム実行が行われる際に、シェルは
   必ず PATH を探しにいきます。 つまり $LFS/tools
   ディレクトリ以下に新たに構築したツール類は必ず実行されるようになるわけ
   です。
   そのツールの古いバージョンがどこか別のディレクトリにあったとしても、そ
   の場所を覚えていて実行されるということがなくなります。

   ユーザーのファイル生成マスク (file-creation mask;
   umask) を 022
   にセットするのは、新たなファイルやディレクトリの生成はその所有者にのみ
   許可し、他者は読み取りと実行を可能とするためです。 (システムコール
   open(2)
   にてデフォルトモードが適用される場合、新規生成ファイルのパーミッション
   モードは 644、同じくディレクトリは 755 となります。)

   環境変数 LFS
   は常に指定したマウントポイントを指し示すように設定します。

   LC_ALL 変数は特定のプログラムが扱う国情報を制御します。
   そのプログラムが出力するメッセージを、指定された国情報に基づいて構成し
   ます。 ホストシステムの Glibc が 2.2.4
   よりも古いものであって、この LC_ALL を
   (本章の作業中に)「POSIX」でもなく「C」でもない値にセットしてい
   た場合、chroot 環境からの exit
   と再度の環境移行を行う際に問題が発生します。 LC_ALL
   変数は「POSIX」か「C」にセットしてください。
   (両者は同じです。) そのようにセットしておけば、chroot
   環境下での作業が問題なく進められます。

   LFS_TGT 変数は標準にないマシン名称を設定します。
   しかしこれはこの先、クロスコンパイラーやクロスリンカーの構築、これを用
   いたツールチェーンの構築の際に、うまく動作させるための設定です。
   詳しくは
   [602]5.2.「ツールチェーンの技術的情報」にて説明しているので参
   照してください。

   /tools/bin ディレクトリを PATH
   変数の先頭に設定します。
   [603]第5章にてインストールするプログラムは、インストールした直後
   からシェルによって実行指示が下されます。
   この設定は、ハッシュ機能をオフとしたことと連携して、古いプログラムが実
   行されないようにします。
   たとえホストシステムとの間で同一の実行プログラムがあったとしても、第5
   章の作業環境下では適切なプログラム実行が実現されます。

   一時的なツールを構築する準備の最後として、今作り出したユーザープロファ
   イルを source によって取り込みます。
source ~/.bash_profile

4.5. SBU 値について

   各パッケージをコンパイルしインストールするのにどれほどの時間を要するか
   、誰しも知りたくなるところです。 しかし Linux From
   Scratch
   は数多くのシステム上にて構築可能であるため、正確な処理時間を見積ること
   は困難です。 最も大きなパッケージ (Glibc)
   の場合、処理性能の高いシステムでも２０分はかかります。
   それが性能の低いシステムとなると３日はかかるかもしれません!
   本書では処理時間を正確に示すのでなく、標準ビルド単位
   (Standard Build Unit; SBU)
   を用いることにします。

   SBU の測定は以下のようにします。 本書で最初にコンパイルするのは
   [604]第5章における Binutils です。
   このパッケージのコンパイルに要する時間を標準ビルド時間とし、他のコンパ
   イル時間はその時間からの相対時間として表現します。

   例えばあるパッケージのコンパイル時間が 4.5 SBU
   であったとします。 そして Binutils の1回目のコンパイルが
   10分であったとすると、そのパッケージは およそ
   45分かかることを意味しています。 幸いにも、たいていのパッケージは
   Binutils よりもコンパイル時間は短いものです。

   一般にコンパイル時間は、例えばホストシステムの GCC
   のバージョンの違いなど、多くの要因に左右されるため SBU
   値は正確なものになりません。 SBU
   値は、インストールに要する時間の目安を示すものに過ぎず、場合によっては
   十数分の誤差が出ることもあります。

   特定マシンにおける実際の処理時間については、以下の
   LinuxFromScratch SBU
   ホームページに示していますので参照してください。
   [605]http://www.linuxfromscratch.or
   g/~sbu/

注記

   最新のシステムは複数プロセッサー (デュアルコアとも言います)
   であることが多く、パッケージのビルドにあたっては「同時並行のビルド」に
   よりビルド時間を削減できます。
   その場合プロセッサー数がいくつなのかを環境変数に指定するか、あるいは
   make プログラムの実行時に指定する方法があります。
   例えばコア2デュオであれば、以下のようにして同時並行の二つのプロセスを
   実行することができます。
export MAKEFLAGS='-j 2'

   あるいはビルド時の指定として以下のようにすることもできます。
make -j2

   上のようにして複数プロセッサーが利用されると、本書に示している SBU
   単位は、通常の場合に比べて大きく変化します。
   したがってビルド結果を検証するにしても話が複雑になります。
   複数のプロセスラインがインターリーブにより多重化されるためです。
   ビルド時に何らかの問題が発生したら、単一プロセッサー処理を行ってエラー
   メッセージを分析してください。

4.6. テストスイートについて

   各パッケージにはたいていテストスイートがあります。
   新たに構築したパッケージに対しては、テストスイートを実行しておくのがよ
   いでしょう。 テストスイートは「健全性検査 (sanity
   check)」を行い、パッケージのコンパイルが正しく行われたことを確認
   します。
   テストスイートの実行によりいくつかのチェックが行われ、開発者の意図した
   とおりにパッケージが正しく動作することを確認していきます。
   ただこれは、パッケージにバグがないことを保証するものではありません。

   テストスイートの中には他のものにも増して重要なものがあります。
   例えば、ツールチェーンの要である GCC、Binutils、Glibc
   に対してのテストスイートです。
   これらのパッケージはシステム機能を確実なものとする重要な役割を担うもの
   であるためです。 GCC と Glibc
   におけるテストスイートはかなりの時間を要します。
   それが低い性能のマシンであればなおさらです。
   でもそれらを実行しておくことを強く推奨します。

注記

   作業を進めてみれば分かることですが、
   [606]第5章の作業においてテストスイートを実行することはあまり意味
   がありません。
   というのも、この章において実施するテストに対しては、ホストシステムによ
   るある程度の影響があるためです。
   時には不可解なエラーが発生することもあります。
   [607]第5章にて生成するツール類は一時的なものであり、その後には利
   用しなくなります。 したがって普通のユーザーであれば
   [608]第5章においてはテストスイートを実行しないことをお勧めします
   。
   テストスイートを実行する手順を説明してはいますが、それはテスターの方、
   開発者の方のために説明しているものであって、それらは全くのオプションで
   す。

   Binutils と GCC
   におけるテストスイートの実行では、擬似端末 (pseudo
   terminals; PTY) を使い尽くす問題が発生します。
   これにより相当数のテストが失敗します。
   これが発生する理由はいくつかありますが、もっともありがちな理由としては
   ホストシステムの devpts
   ファイルシステムが正しく構成されていないことがあげられます。
   この点については
   [609]http://www.linuxfromscratch.or
   g//lfs/faq.html#no-ptys
   においてかなり詳しく説明しています。

   パッケージの中にはテストスイートに失敗するものがあります。
   しかしこれらは開発元が認識しているもので致命的なものではありません。
   以下の
   [610]http://www.linuxfromscratch.or
   g/lfs/build-logs/7.2/
   に示すログを参照して、失敗したテストが実は予期されているものであるかど
   うかを確認してください。
   このサイトは、本書におけるすべてのテストスイートの正常な処理結果を示す
   ものです。

第5章 一時的環境の構築

5.1. はじめに

   この章では最小限の Linux システムを構築していく方法を示します。
   このシステムは、最終的に[611]第6章にて LFS
   システムを構築するためのもので、そのために必要なツール類をすべて含んで
   います。 最小限とは言いつつも、取り扱いやすい実行環境を提供します。

   最小限のシステムを構築するために、以下の二段階の手順を踏みます。
   初めにホストシステムに依存しない新しいツールチェーン
   (コンパイラー、アセンブラー、リンカー、ライブラリ、その他の有用なユー
   ティリティ) を構築します。
   次にこのツールチェーンを使って、他の重要なツール類を構築していきます。

   この章にて生成されるファイル群は $LFS/tools
   ディレクトリ配下にインストールされます。
   これらのファイルは、次章にてインストールされるファイル群や、ホスト環境
   にあるファイル群とは区分けされます。
   ここで構築されるパッケージ類は、あくまで一時的なものであるため、この後
   に構築する LFS システムを汚したくないためにこのようにします。

5.2. ツールチェーンの技術的情報

   本節ではシステムをビルドする原理や技術的な詳細について説明します。
   この節のすべてをすぐに理解する必要はありません。
   この先、実際の作業を行っていけば、いろいろな情報が明らかになってくるは
   ずです。
   各作業を進めながら、いつでもこの節に戻って読み直してみてください。

   [612]第5章の最終目標は一時的なシステム環境を構築することです。
   この一時的なシステムには、システム構築のための十分なツール類を有し、ホ
   ストシステムとは切り離されたものです。 この環境へは chroot
   によって移行します。この環境は[613]第6章において、クリーンでトラ
   ブルのない LFS システムの構築を行う土台となるものです。
   構築手順の説明においては、初心者の方であっても失敗を最小限にとどめ、同
   時に最大限の学習材料となるように心がけています。

注記

   これより先に進む前に、作業するプラットフォームの「三つの組
   (target triplet)」で表される名称を確認してください。
   「三つの組」は config.guess
   スクリプトを実行することで簡単に確認できます。
   そのスクリプトは多くのパッケージのソースに含まれています。
   Binutils パッケージのソースを伸張 (解凍) し
   ./config.guess
   スクリプトを実行してその出力を確認してみてください。 例えば最近の
   32 ビット Intel プロセッサーでは
   i686-pc-linux-gnu のような出力が得られます。

   利用しているプラットフォームに応じたダイナミックリンカー
   (dynamic linker) の名前についても確認してください。
   ダイナミックローダー (dynamic loader)
   とも表現されるものです。(Binutils が提供する標準的なリンカー
   ld とは異なりますので注意してください。) Glibc
   が提供するこのダイナミックリンカーは、プログラムが必要としている共有ラ
   イブラリを見つけ出してロードし、実行のための準備を行った上で実際に実行
   します。 32 ビットマシンのダイナミックリンカーの名前は
   ld-linux.so.2 といったものになります。
   確実にその名前を調べるなら、ホストシステム内のどれでも良いので実行モジ
   ュールを選んで readelf -l <実行モジュール名> |
   grep interpreter と入力します。
   出力される結果を確認してください。
   あらゆるプラットフォームの情報を知りたいなら Glibc
   のソースディレクトリのルートにある shlib-versions
   ファイルに記されています。

   [614]第5章におけるビルド手順がどのように機能するのか、その技術的
   な情報を以下に示します。
     * 動作させているプラットフォームの名前を微妙に変えます。
       三つの組の "ベンダー "
       フィールドを変更するもので、LFS_TGT
       変数に定め利用します。 こうしておいて Binutils と
       GCC
       の初回の構築を行なえば、互換性のあるクロスコンパイラー、クロス
       リンカーを確実に構築できるようになります。
       もう一つ別のアーキテクチャーに対する実行モジュールを作らなくて
       も、そのクロスコンパイラーとクロスリンカーを使えば、生成される
       実行モジュールは現在のハードウェアに適合したものとなります。
     * 一時的に構築するライブラリはクロスコンパイルにより生成します。
       クロスコンパイラーというものは元来、ホストシステムへ依存するも
       のではないためです。
       こうすることで、ホストシステムのヘッダーやライブラリが、一時的
       なツール類を壊してしまうような危険を減らすことができ、同時に
       64 ビットマシンにて 32 ビットあるいは 64
       ビットの双方のライブラリを構築することができるようになります。
     * gcc
       のソースを適切に調整することで、どのダイナミックリンカーを用い
       るのかをコンパイラーに指示します。

   Binutils をまず初めにインストールします。 この後の GCC
   や Glibc の configure
   スクリプトの実行ではアセンブラーやリンカーに対するさまざまな機能テスト
   が行われるためで、そこではどの機能が利用可能または利用不能であるかが確
   認されます。 ただ重要なのは Binutils
   を一番初めにビルドするという点だけではありません。 Gcc や
   Glibc の configure
   が正しく処理されなかったとすると、ツールチェーンがわずかながらも不完全
   な状態で生成されてしまいます。
   この状態は、すべてのビルド作業を終えた最後になって、大きな不具合となっ
   て現れてくることになります。
   テストスイートを実行することが欠かせません。
   これを実行しておけば、この先に行う多くの作業に入る前に不備があることが
   分かるからです。

   Binutils
   はアセンブラーとリンカーを二箇所にインストールします。
   /tools/bin と /tools/$LFS_TGT/bin
   です。 これらは一方が他方のハードリンクとなっています。
   リンカーの重要なところはライブラリを検索する順番です。 ld
   コマンドに --verbose
   オプションをつけて実行すれば詳しい情報が得られます。 例えば ld
   --verbose | grep SEARCH
   を実行すると、検索するライブラリのパスとその検索順を示してくれます。
   ダミープログラムをコンパイルして ld に --verbose
   オプションをつけてリンクを行うと、どのファイルがリンクされたが分かりま
   す。 例えば gcc dummy.c -Wl,--verbose
   2>&1 | grep succeeded
   と実行すれば、リンカーの処理中にオープンに成功したファイルがすべて表示
   されます。

   次にインストールするのは GCC です。 configure
   の実行時には以下のような出力が行われます。
checking what assembler to use... /tools/i68
6-lfs-linux-gnu/bin/as
checking what linker to use... /tools/i686-l
fs-linux-gnu/bin/ld

   これを示すのには重要な意味があります。 GCC の configure
   スクリプトは、利用するツール類を探し出す際に PATH
   ディレクトリを参照していないということです。 しかし gcc
   の実際の処理にあたっては、その検索パスが必ず使われるわけでもありません
   。 gcc が利用する標準的なリンカーを確認するには gcc
   -print-prog-name=ld を実行します。

   さらに詳細な情報を知りたいときは、ダミープログラムをコンパイルする際に
   -v オプションをつけて実行します。 例えば gcc -v
   dummy.c
   と入力すると、プリプロセッサー、コンパイル、アセンブルの各処理工程が示
   されますが、さらに gcc
   がインクルードした検索パスとその読み込み順も示されます。

   次に健全化された (sanitized) Linux API
   ヘッダーをインストールします。 これにより、標準 C ライブラリ
   (Glibc) が Linux
   カーネルが提供する機能とのインターフェースを可能とします。

   次のパッケージは Glibc です。 Glibc
   構築の際に気にかけるべき重要なものは、コンパイラー、バイナリツール、カ
   ーネルヘッダーです。
   コンパイラーについては、一般にはあまり問題にはなりません。 Glibc
   は常に configure スクリプトにて指定される --host
   パラメーターに関連づけしたコンパイラーを用いるからです。
   我々の作業では i686-lfs-linux-gnu-gcc
   になります。 バイナリツールとカーネルヘッダーは多少複雑です。
   従って無理なことはせずに有効な configure
   オプションを選択することが必要です。 configure 実行の後は
   glibc-build ディレクトリにある config.make
   ファイルに重要な情報が示されているので確認してみてください。 なお
   CC="i686-lfs-gnu-gcc"
   とすれば、どこにある実行モジュールを利用するかを制御でき
   -nostdinc と -isystem
   を指定すれば、コンパイラーに対してインクルードファイルの検索パスを制御
   できます。 これらの指定は Glibc
   パッケージの重要な面を示しています。 Glibc
   がビルドされるメカニズムは自己完結したビルドが行われるものであり、ツー
   ルチェーンのデフォルト設定には基本的に依存しないことを示しています。

   Binutils の2回めのビルドにおいては ld
   コマンドのライブラリ検索パスを設定するために configure の
   --with-lib-path スイッチを指定します。

   GCC
   の第2回目のビルドにおいても、ソースを修正して新しいダイナミックリンカ
   ーが用いられるようにします。
   これをもし誤ってしまうと、ホストシステムの /lib
   ディレクトリが埋め込まれたダイナミックリンカーを用いるものとして
   GCC が生成されてしまいます。
   こうしてしまうと、ホストシステムに依存しない形を目指すという目的が達成
   できません。 これ以降、コアとなるツールチェーンは、自己完結し
   (self-contained)、自分だけで処理できる
   (self-hosted) ものとなります。
   [615]第5章の残りのパッケージは /tools にある新たな
   Glibc を用いてビルドされます。

   [616]第6章での chroot
   による環境下では、実質的なパッケージとして Glibc
   を初めにビルドします。
   これは上に述べているように自己完結した性質を目指すためです。 /usr
   に Glibc
   をインストールしたら、ツールチェーンのデフォルトディレクトリの変更を行
   い LFS システムを構築する残りのパッケージをビルドしていきます。

5.3. 全般的なコンパイル手順

   パッケージをビルドしていく際には、以下に示す内容を前提とします:
     * パッケージの中には、コンパイルする前にパッチを当てるものがあり
       ます。
       パッチを当てるのは、そのパッケージが抱える問題を回避するためで
       す。
       本章と次章の双方でパッチを当てるものがあり、あるいは本章と次章
       のいずれか一方でパッチを当てるものもあります。
       したがってパッチをダウンロードする説明が書かれていないなら、何
       も気にせず先に進んでください。 パッチを当てた際に
       offset や fuzz
       といった警告メッセージが出る場合がありますが、これらは気にしな
       いでください。
       このような時でもパッチは問題なく適用されています。
     * コンパイルの最中に、警告メッセージが画面上に出力されることがよ
       くあります。 これは問題はないため無視して構いません。
       警告メッセージは、メッセージ内に説明されているように、C や
       C++
       の文法が誤りではないものの推奨されていないものであることを示し
       ています。 C
       言語の標準はよく変更されますが、パッケージの中には古い基準に従
       っているものもあります。
       問題はないのですが、警告として画面表示されることになるわけです
       。
     * もう一度、環境変数 LFS
       が正しく設定されているかを確認します。
echo $LFS

       上の出力結果が LFS
       パーティションのマウントポイントのディレクトリであることを確認
       してください。 本書では /mnt/lfs
       ディレクトリとして説明しています。
     * 最後に以下の二つの点にも注意してください。

重要項目
       ビルド作業においては bash シェルの利用を想定しています。

重要項目
       ビルド作業では以下の点が重要です。
         1. ソースやパッチファイルを配置するディレクトリは
            /mnt/lfs/sources/ などのように
            chroot
            環境でもアクセスが出来るディレクトリとしてください。
            /mnt/lfs/tools/
            ディレクトリにソースを置くことは やめて ください。
         2. ソースディレクトリに入ります。
         3. 各パッケージについて：
              1. tar コマンドを使ってパッケージの
                 tarball を伸張 (解凍) します。
                 第5章では、パッケージを伸張 (解凍)
                 するのは lfs ユーザーとします。
              2. パッケージの伸張 (解凍)
                 後に生成されたディレクトリに入ります。
              3. 本書の手順に従ってビルド作業を行っていきま
                 す。
              4. ソースディレクトリに戻ります。
              5. ビルド作業を通じて生成されたパッケージディ
                 レクトリを削除します。 さらに
                 <package>-build
                 なるディレクトリを生成していた場合は、特に
                 指定がない限りはそれも削除します。

5.4. Binutils-2.22 - 1回め

   Binutils
   パッケージは、リンカーやアセンブラーなどのようにオブジェクトファイルを
   取り扱うツール類を提供します。
   概算ビルド時間: 1 SBU
   必要ディスク容量: 391 MB

5.4.1. クロスコンパイル版 Binutils のインストール

注記

   前の節に戻って再度説明をよく読み、重要事項として説明している内容をよく
   理解しておいてください。
   そうすればこの後の無用なトラブルを減らすことができるはずです。

   Binutils は一番最初にビルドするパッケージです。
   ここでビルドされるリンカーやアセンブラーを使って、Glibc や
   GCC のさまざまな機能が利用できるかどうかを判別することになります。

   コンパイラーの最適化を行った場合にビルドに失敗するため、これを修正する
   パッチを適用します。
patch -Np1 -i ../binutils-2.22-build_fix-1.p
atch

   Binutils のドキュメントでは Binutils
   をビルドする際に、ソースディレクトリではなく、ビルド専用のディレクトリ
   を使ってビルドすることを推奨しています。
mkdir -v ../binutils-build
cd ../binutils-build

注記

   本節以降で SBU値を示していきます。
   これを活用していくなら、本パッケージの configure
   から初めのインストールまでの処理時間を計測しましょう。
   具体的には処理コマンドを time で囲んで time {
   ./configure ... && make && make
   install; } と入力すれば実現できます。

注記

   概算ビルド時間と必要ディスク容量は、この第5章ではテストスイートに関わ
   る時間や容量は含めないことにします。

   Binutils をコンパイルするための準備をします。:
../binutils-2.22/configure     \
    --prefix=/tools            \
    --with-sysroot=$LFS        \
    --with-lib-path=/tools/lib \
    --target=$LFS_TGT          \
    --disable-nls              \
    --disable-werror

   configure オプションの意味

   --prefix=/tools
          configure スクリプトに対して Binutils
          プログラムを /tools
          ディレクトリ以下にインストールすることを指示します。

   --with-sysroot=$LFS
          クロスコンパイル時に、ターゲットとして必要となるシステム
          ライブラリを $LFS より探し出すことを指示します。

   --with-lib-path=/tools/lib
          リンカーが用いるべきライブラリパスを指定します。

   --target=$LFS_TGT
          変数 LFS_TGT に設定しているマシン名は
          config.guess
          スクリプトが返すものとは微妙に異なります。
          そこでこのオプションは、Binutils
          のビルドにあたってクロスリンカーをビルドするように
          configure スクリプトに指示するものです。

   --disable-nls
          一時的なツール構築にあたっては i18n
          国際化は行わないことを指示します。

   --disable-werror
          ホストのコンパイラーが警告を発した場合に、ビルドが中断す
          ることがないようにします。

   パッケージをコンパイルします。
make

   コンパイルが終了しました。通常ならここでテストスイートを実行します。
   しかしシステム構築初期のこの段階ではテストスイートのフレームワーク
   (Tcl, Expect, DejaGNU) が準備できていません。
   さらにこの時点で生成されるプログラムは、すぐに次の生成作業によって置き
   換えられますから、この時点でテストを実行することはあまり意味がありませ
   ん。

   x86_64
   にて作業をしている場合は、ツールチェーンの切り分けを適切に行うためにシ
   ンボリックリンクを作成します。
case $(uname -m) in
  x86_64) mkdir -v /tools/lib && ln -sv lib
/tools/lib64 ;;
esac

   パッケージをインストールします。
make install

   本パッケージの詳細は [617]6.13.2.「Binutils
   の構成」を参照してください。

5.5. GCC-4.7.1 - 1回め

   GCC パッケージは C コンパイラーや C++ コンパイラーなどの
   GNU コンパイラーコレクションを提供します。
   概算ビルド時間: 5.5 SBU
   必要ディスク容量: 1.4 GB

5.5.1. クロスコンパイル版 GCC のインストール

   最近の GCC は GMP、MPFR、MPC
   の各パッケージを必要とします。
   これらのパッケージはホストシステムに含まれていないかもしれないため、以
   下を実行してビルドの準備をします。 個々のパッケージを GCC
   ソースディレクトリの中に伸張 (解凍)
   し、ディレクトリ名を変更します。 これは GCC
   のビルド処理においてそれらを自動的に利用できるようにするためです。

注記

   本節においては誤解が多く発生しています。
   ここでの手順は他のものと同様であり、手順の概要
   ([618]パッケージビルド手順) は説明済です。 まず初めに gcc
   の tarball を伸張 (解凍)
   し、生成されたソースディレクトリに移動します。
   それに加えて本節では、以下の手順を行うものとなります。
tar -Jxf ../mpfr-3.1.1.tar.xz
mv -v mpfr-3.1.1 mpfr
tar -Jxf ../gmp-5.0.5.tar.xz
mv -v gmp-5.0.5 gmp
tar -zxf ../mpc-1.0.tar.gz
mv -v mpc-1.0 mpc

   以下のコマンドは GCC
   のデフォルトのダイナミックリンカーの配置ディレクトリを、既にインストー
   ルされている /tools とします。 また GCC
   のインクルードパスから /usr/include を除きます。
for file in \
 $(find gcc/config -name linux64.h -o -name
linux.h -o -name sysv4.h)
do
  cp -uv $file{,.orig}
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@
g' \
      -e 's@/usr@/tools@g' $file.orig > $fil
e
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/
lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $
file
  touch $file.orig
done

   上のコマンドがよく分からない場合は一つ一つ読み下していってください。
   まず gcc/config ディレクトリには linux.h,
   linux64.h, sysv4.h
   といったファイルのいずれかがあります。
   それらが存在したら、ファイル名称の末尾に「.orig」をつけたファイル
   としてコピーします。 そして一つめの sed
   コマンドでは、そのファイル内にある「/lib/ld」,
   「/lib64/ld」,
   「/lib32/ld」という記述部分の頭に「/tools」を付与します
   。 また二つめの sed
   コマンドによってハードコーディングされている「/usr」という部分を書
   き換えます。
   そしてここで加えるべき定義文をファイルの末尾に追加し、検索パスと
   startfile プリフィックスを変更します。
   この際に「/tools/lib/」の終わりには「/」が必要となります。
   最後に touch
   によってコピーしたファイルのタイムスタンプを更新します。 cp -u
   を用いるのは、誤ってコマンドを二度起動したとしてもオリジナルファイルを
   壊さないようにするためです。

   GCC はスタックプロテクション (stack protection)
   を正しく検出しません。 このことは Glibc-2.16.0
   においてビルドする際には問題となります。
   そこで以下のコマンドを実行することで解消します。
sed -i '/k prot/agcc_cv_libc_provides_ssp=ye
s' gcc/configure

   GCC
   のドキュメントでは、ソースディレクトリ以外の専用のビルドディレクトリを
   作成することが推奨されています。
mkdir -v ../gcc-build
cd ../gcc-build

   GCC をコンパイルするための準備をします。
../gcc-4.7.1/configure         \
    --target=$LFS_TGT          \
    --prefix=/tools            \
    --with-sysroot=$LFS        \
    --with-newlib              \
    --without-headers          \
    --with-local-prefix=/tools \
    --with-native-system-header-dir=/tools/i
nclude \
    --disable-nls              \
    --disable-shared           \
    --disable-multilib         \
    --disable-decimal-float    \
    --disable-threads          \
    --disable-libmudflap       \
    --disable-libssp           \
    --disable-libgomp          \
    --disable-libquadmath      \
    --enable-languages=c       \
    --with-mpfr-include=$(pwd)/../gcc-4.7.1/
mpfr/src \
    --with-mpfr-lib=$(pwd)/mpfr/src/.libs

   configure オプションの意味:

   --with-newlib
          この時点では利用可能な C
          ライブラリがまだ存在しません。 したがって libgcc
          のビルド時に inhibit_libc
          定数を定義します。 これを行うことで、libc
          サポートを必要とするコード部分をコンパイルしないようにし
          ます。

   --without-headers
          完璧なクロスコンパイラーを構築するなら、GCC
          はターゲットシステムに互換性を持つ標準ヘッダーを必要とし
          ます。 本手順においては標準ヘッダーは必要ありません。
          このスイッチは GCC
          がそういったヘッダーを探しにいかないようにします。

   --with-local-prefix=/tools
          ローカルプリフックス (local prefix)
          は、GCC
          がローカルにインストールされているインクルードファイルを
          探しにいくディレクトリを意味します。 そのデフォルトは
          /usr/local です。 この設定を /tools
          とすることで、GCC が探し出すパスから
          /usr/local を除外します。

   --with-native-system-header-dir=/to
          ols/include
          GCC がシステムヘッダーを探し出すデフォルトのパスは
          /usr/include です。 後に root
          を変更する際には、このディレクトリは
          $LFS/usr/include となります。
          しかしこの直後の2つの作業を通じて、ヘッダーをインストー
          ルする先は $LFS/tools/include
          としています。 つまり本スイッチは GCC
          がヘッダーを正しく見つけ出せるようにするものです。
          GCC
          の2回めのビルドでは、同じスイッチを用いて、ホストシステ
          ムのヘッダーは一切見つけ出さないようにします。

   --disable-shared
          このオプションは内部ライブラリをスタティックライブラリと
          してリンクすることを指示します。
          ホストシステムに関係しそうな問題を回避するためです。

   --disable-decimal-float,
          --disable-threads,
          --disable-libmudflap,
          --disable-libssp,
          --disable-libgomp,
          --disable-libquadmath
          これらのオプションは順に、十進浮動小数点制御、スレッド処
          理、libmudflap、libssp、libgomp,
          libquadmath, libiberty, zlib
          のサポートをいずれも無効にすることを指示します。
          これらの機能を含めていると、クロスコンパイラーをビルドす
          る際にはコンパイルに失敗します。
          またクロスコンパイルによって一時的な libc
          ライブラリを構築する際には不要なものです。

   --disable-multilib
          x86_64 に対して LFS は まだ
          multilib のサポートをしていません。
          このオプション指定は x86 には無関係です。

   --enable-languages=c
          このオプションは C
          コンパイラーのみビルドすることを指示します。
          この時点で必要なのはこの言語だけだからです。

   GCC をコンパイルします。
make

   コンパイルが終了しました。
   この時点でもテストスイートを実行することはできます。
   ただ前にも述べているように、テストスイートのフレームワークがまだ準備で
   きていません。
   さらにこの時点で生成されるプログラムは、すぐに次の生成作業によって置き
   換えられますから、この時点でテストを実行することはあまり意味がありませ
   ん。

   パッケージをインストールします。
make install

   --disable-shared オプションを指定すると
   libgcc_eh.a を生成せずインストールしません。 Glibc
   パッケージはこのライブラリに依存しており、ビルドの際に
   -lgcc_eh を指定することで利用されます。 依存している点は
   libgcc.a
   へのシンボリックリンクを生成しておけば問題はありません。
   libgcc_eh.a に含まれるオブジェクトが、最終的には
   libgcc.a の中にも含まれることになるからです。
ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-
file-name | sed 's/libgcc/&_eh/'`

   本パッケージの詳細は [619]6.17.2.「GCC
   の構成」を参照してください。

5.6. Linux-3.5.2 API ヘッダー

   Linux API ヘッダー (linux-3.5.2.tar.gz
   内) は Glibc が利用するカーネル API を提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 511 MB

5.6.1. Linux API ヘッダー のインストール

   Linux カーネルはアプリケーションプログラミングインターフェース
   (Application Programming Interface)
   を、システムの C ライブラリ (LFS の場合 Glibc)
   に対して提供する必要があります。 これを行うには Linux
   カーネルのソースに含まれる、さまざまな C ヘッダーファイルを「健全化
   (sanitizing)」して利用します。

   これより前に一度処理を行っていたとしても、不適切なファイルや誤った依存
   関係を残さないように、以下を処理します。
make mrproper

   そしてユーザーが利用するカーネルヘッダーファイルをテストし、ソースから
   抽出します。
   それらはいったん中間的なローカルディレクトリに置かれ、必要な場所にコピ
   ーされます。
   ターゲットディレクトリに既にあるファイルは削除されてからソースからの抽
   出処理が行われます。
make headers_check
make INSTALL_HDR_PATH=dest headers_install
cp -rv dest/include/* /tools/include

   本パッケージの詳細は [620]6.7.2.「Linux API
   ヘッダー の構成」を参照してください。

5.7. Glibc-2.16.0

   Glibc パッケージは主要な C ライブラリを提供します。
   このライブラリは基本的な処理ルーチンを含むもので、メモリ割り当て、ディ
   レクトリ走査、ファイルのオープン、クローズや入出力、文字列操作、パター
   ンマッチング、算術処理、等々があります。
   概算ビルド時間: 5.4 SBU
   必要ディスク容量: 554 MB

5.7.1. Glibc のインストール

   例えば LFS 7.1 などにおいて、rpc
   ヘッダーが適切にインストールされていない場合があります。
   ホストシステムにそれらがインストールされているかを確認し、なければそれ
   らをインストールするようにします。
if [ ! -r /usr/include/rpc/types.h ]; then
  su -c 'mkdir -p /usr/include/rpc'
  su -c 'cp -v sunrpc/rpc/*.h /usr/include/r
pc'
fi

   Glibc-2.16.0 を GCC-4.7.1
   にてビルドする際の問題を以下により解消します。
sed -i 's/ -lgcc_s//' Makeconfig

   Glibc
   のドキュメントでは、ソースディレクトリ以外の専用のビルドディレクトリを
   作成することが推奨されています。
mkdir -v ../glibc-build
cd ../glibc-build

   次に Glibc をコンパイルするための準備をします。
../glibc-2.16.0/configure
          \
      --prefix=/tools
          \
      --host=$LFS_TGT
          \
      --build=$(../glibc-2.16.0/scripts/conf
ig.guess) \
      --disable-profile
          \
      --enable-add-ons
          \
      --enable-kernel=2.6.25
          \
      --with-headers=/tools/include
          \
      libc_cv_forced_unwind=yes
          \
      libc_cv_ctors_header=yes
          \
      libc_cv_c_cleanup=yes

   configure オプションの意味:

   --host=$LFS_TGT,
          --build=$(../glibc-2.16.0/sc
          ripts/config.guess)
          このようなオプションを組み合わせることで /tools
          ディレクトリにあるクロスコンパイラー、クロスリンカーを使
          って Glibc
          がクロスコンパイルされるようになります。

   --disable-profile
          プロファイル情報を含めずにライブラリをビルドすることを指
          示します。
          一時的なツールにてプロファイル情報が必要な場合は、このオ
          プションを取り除いてください。

   --enable-add-ons
          スレッド処理のライブラリとして NPTL
          アドオンを利用することを指示します。

   --enable-kernel=2.6.25
          Linux カーネル 2.6.25
          以上のサポートを行うよう指示します。
          これ以前のカーネルは利用することができません。

   --with-headers=/tools/include
          これまでに tools
          ディレクトリにインストールしたヘッダーファイルを用いて
          Glibc をビルドすることを指示します。
          こうすればカーネルにどのような機能があるか、どのようにし
          て処理効率化を図れるかなどの情報を Glibc
          が得られることになります。

   libc_cv_forced_unwind=yes
          [621]5.4.「Binutils-2.22 -
          1回め」においてインストールしたリンカーは、クロスコンパ
          イルにより生成したものです。 これは Glibc
          をインストールするまでは使えません。 これはつまり
          force-unwind
          サポートに対するテストは失敗することを意味します。
          正しく動作するリンカーに依存するためです。
          libc_cv_forced_unwind=yes
          の変数設定は、configure
          スクリプトに対してテストを実行しなくても
          force-unwind
          サポート機能を利用可能とすることを指示します。

   libc_cv_c_cleanup=yes
          上と同様に configure スクリプトに対して
          libc_cv_c_cleanup=yes
          を指示します。 これによりテストが省略され、C
          のクリーンアップハンドリング (cleanup
          handling) のサポートを指定します。

   libc_cv_ctors_header=yes
          さらに configure スクリプトに対して
          libc_cv_ctors_header=yes
          も指示します。 これによりテストがスキップされ gcc
          コンストラクターが設定されます。

   ビルド中には以下のようなメッセージが出力されるかもしれません。

configure: WARNING:
*** These auxiliary programs are missing or
*** incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required vers
ions.

   msgfmt プログラムがない場合 (missing)
   や互換性がない場合 (incompatible)
   でも特に問題はありません。 msgfmt プログラムは Gettext
   パッケージが提供するもので、ホストシステムに含まれているかもしれません
   。

   パッケージをコンパイルします。
make

   このパッケージにテストスイートは存在しますが、ここで実行することはでき
   ません。 この時点ではまだ C++
   コンパイラーを構築していないためです。

注記

   テストスイートを正しく実行するためには、さらにロケールデータも必要にな
   ります。
   ロケールデータは、システム内の各種ユーティリティが、日付、時刻、通貨な
   どの情報を利用したり出力したりするために用いられるものです。
   テストスイートの実行は不要と説明していることから、これに従って実行しな
   い場合はロケールデータをここでインストールする必要はありません。
   適切なロケールデータは次章にてインストールします。
   それでもここでインストールするなら
   [622]6.9.「Glibc-2.16.0」に示される手順に従ってく
   ださい。

   パッケージをインストールします。
make install

注意

   この時点で以下を必ず実施します。 新しいツールチェーンの基本的な機能
   (コンパイルやリンク) が正常に処理されるかどうかを確認することです。
   健全性のチェック (sanity check)
   を行うものであり、以下のコマンドを実行します。
echo 'main(){}' > dummy.c
$LFS_TGT-gcc dummy.c
readelf -l a.out | grep ': /tools'

   すべてが正常に処理され、エラーが発生しなければ、最終のコマンドの実行結
   果として以下が出力されるはずです。
[Requesting program interpreter: /tools/lib/
ld-linux.so.2]

   ダイナミックリンカーのプリフィックスは /tools/lib、あるいは
   64 ビットマシンであれば /tools/lib64 となります。

   出力結果が上とは異なったり、あるいは何も出力されなかったりした場合は、
   どこかに不備があります。
   どこに問題があるのか調査、再試行を行って解消してください。
   解決せずにこの先に進まないでください。

   すべてが完了したら、テストファイルを削除します。
rm -v dummy.c a.out

注記

   次節にてビルドする Binutils
   では、ツールチェーンが正しく構築できたかどうかを再度チェックすることに
   なります。 Binutils
   のビルドに失敗したとしたら、それ以前にインストールしてきた
   Binutils, GCC, Glibc
   のいずれかにてビルドがうまくできていないことを意味します。

   本パッケージの詳細は [623]6.9.4.「Glibc
   の構成」を参照してください。

5.8. Binutils-2.22 - 2回め

   Binutils
   パッケージは、リンカーやアセンブラーなどのようにオブジェクトファイルを
   取り扱うツール類を提供します。
   概算ビルド時間: 1.1 SBU
   必要ディスク容量: 407 MB

5.8.1. Binutils のインストール

   コンパイラーの最適化を行った場合にビルドに失敗するため、これを修正する
   パッチを適用します。
patch -Np1 -i ../binutils-2.22-build_fix-1.p
atch

   ビルドのためのディレクトリを再び生成します。
mkdir -v ../binutils-build
cd ../binutils-build

   Binutils をコンパイルするための準備をします。
CC=$LFS_TGT-gcc            \
AR=$LFS_TGT-ar             \
RANLIB=$LFS_TGT-ranlib     \
../binutils-2.22/configure \
    --prefix=/tools        \
    --disable-nls          \
    --with-lib-path=/tools/lib

   configure オプションの意味:

   CC=$LFS_TGT-gcc AR=$LFS_TGT-ar
          RANLIB=$LFS_TGT-ranlib
          Binutils
          をネイティブにビルドすることが目的なので、ホストシステム
          に存在しているクロスコンパイラーや関連ツールは使わず、ビ
          ルドしているシステム内のものを用いるように指定します。

   --with-lib-path=/tools/lib
          configure スクリプトに対して Binutils
          のコンパイル中でのライブラリパスを指定します。
          リンカーに対して /tools/lib
          ディレクトリを指定するものです。
          こうすることでリンカーがホスト上のライブラリを検索しない
          ようにします。

   パッケージをコンパイルします。
make

   パッケージをインストールします。
make install

   次章で行う「再調整」の作業に向けてリンカーを準備します。
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin

   make パラメーターの意味:

   -C ld clean
          サブディレクトリ ld
          にコンパイル生成されたプログラムをすべて削除します。

   -C ld LIB_PATH=/usr/lib:/lib
          サブディレクトリ ld
          の中に生成されるべきプログラムを再生成します。
          Makefile ファイル内の変数 LIB_PATH
          をコマンドラインから与えることで、一時的なツール類の設定
          を上書き指定し、適切なパスを指示します。
          この変数の設定はリンカーに対するデフォルトの検索パスを指
          定するものであり、次章に向けた準備となります。

   本パッケージの詳細は [624]6.13.2.「Binutils
   の構成」を参照してください。

5.9. GCC-4.7.1 - 2回め

   GCC パッケージは C コンパイラーや C++ コンパイラーなどの
   GNU コンパイラーコレクションを提供します。
   概算ビルド時間: 7.1 SBU
   必要ディスク容量: 1.8 GB

5.9.1. GCC のインストール

   第1回めの GCC
   のビルドでは、内部的なシステムヘッダーをインストールしています。
   その1つ limits.h は、これに対応づくシステムヘッダー
   limits.h を読み込みます。 そのファイルは実際には
   /tools/include/limits.h となります。
   しかし1回めの GCC のビルド時には
   /tools/include/limits.h は存在しません。
   したがって GCC
   がインストールする内部ヘッダーは、部分的で自己完結した
   (self-contained)
   もののみとなり、システムヘッダーが持つ拡張機能は含まれません。
   一時的な libc
   を構築するならこれは正しかったのですが、この段階での GCC
   のビルドでは、内部ヘッダーが完全な形のものでなければなりません。
   完全な内部ヘッダーを生成するために、GCC
   ビルドシステムが通常行っている方法と同じようにするための、以下のコマン
   ドを実行します。
cat gcc/limitx.h gcc/glimits.h gcc/limity.h
> \
  `dirname $($LFS_TGT-gcc -print-libgcc-file
-name)`/include-fixed/limits.h

   x86
   マシンにおいてブートストラップビルドを行うと、コンパイラーフラグ
   -fomit-frame-pointer が設定されます。
   しかしブートストラップではないビルドの場合はデフォルトではこのフラグが
   無効化されてしまいます。
   ここで実現したいのは、ブートストラップビルドを行った場合とまったく同じ
   コンパイラーをビルドすることです。 そこで以下の sed
   コマンドにより、強制的に上のフラグを利用するようにします。
cp -v gcc/Makefile.in{,.tmp}
sed 's/^T_CFLAGS =$/& -fomit-frame-pointer/'
 gcc/Makefile.in.tmp \
  > gcc/Makefile.in

   もう一度、GCC
   のデフォルトのダイナミックリンカーの配置ディレクトリを、既にインストー
   ルされている /tools とします。
for file in \
 $(find gcc/config -name linux64.h -o -name
linux.h -o -name sysv4.h)
do
  cp -uv $file{,.orig}
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@
g' \
  -e 's@/usr@/tools@g' $file.orig > $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/
lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $
file
  touch $file.orig
done

   GCC を初めてビルドする際には GMP、MPFR、MPC
   の各パッケージを必要とします。 tarball
   を解凍して、所定のディレクトリ名に移動させます。
tar -Jxf ../mpfr-3.1.1.tar.xz
mv -v mpfr-3.1.1 mpfr
tar -Jxf ../gmp-5.0.5.tar.xz
mv -v gmp-5.0.5 gmp
tar -zxf ../mpc-1.0.tar.gz
mv -v mpc-1.0 mpc

   専用のディレクトリを再度生成します。
mkdir -v ../gcc-build
cd ../gcc-build

   GCC
   のビルドに入る前に、デフォルトの最適化フラグを上書きするような環境変数
   の設定がないことを確認してください。

   GCC をコンパイルするための準備をします。
CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar                  \
RANLIB=$LFS_TGT-ranlib          \
../gcc-4.7.1/configure          \
    --prefix=/tools             \
    --with-local-prefix=/tools  \
    --with-native-system-header-dir=/tools/i
nclude \
    --enable-clocale=gnu        \
    --enable-shared             \
    --enable-threads=posix      \
    --enable-__cxa_atexit       \
    --enable-languages=c,c++    \
    --disable-libstdcxx-pch     \
    --disable-multilib          \
    --disable-bootstrap         \
    --disable-libgomp           \
    --with-mpfr-include=$(pwd)/../gcc-4.7.1/
mpfr/src \
    --with-mpfr-lib=$(pwd)/mpfr/src/.libs

   configure オプションの意味:

   --enable-clocale=gnu
          このオプションはあらゆる状況において C++
          ライブラリに対するロケールモデルが正しく設定されるように
          します。 configure スクリプト実行時に
          de_DE
          ロケールがインストール済みであることが分かれば、正しい
          GNU ロケールモデルが設定されます。 しかし
          de_DE
          ロケールがインストールされていなかったら、誤った汎用ロケ
          ールモデルが設定されてしまうため、アプリケーションバイナ
          リインターフェース (Application
          Binary Interface; ABI)
          とは非互換の C++
          ライブラリが生成されてしまう可能性があります。

   --enable-threads=posix
          マルチスレッドコードを扱う C++
          の例外処理を有効にします。

   --enable-__cxa_atexit
          このオプションは atexit を使用せず
          __cxa_atexit の使用を有効にします。
          これによりローカルなスタティックオブジェクトおよびグロー
          バルオブジェクトに対する C++
          デストラクターを登録します。
          このオプションは、標準に完全準拠したデストラクタ実装のた
          めに必要です。 またこれは C++ ABI
          に影響するものであり C++ 共有ライブラリ、C++
          プログラムを作り出し、他の Linux
          ディストリビューションとの互換性を実現します。

   --enable-languages=c,c++
          C と C++
          の両コンパイラーを生成することを指示します。

   --disable-libstdcxx-pch
          libstdc++ に対してプリコンパイルヘッダー
          (pre-compiled header; PCH)
          をビルドしないように指示します。
          これを含めてしまうとサイズが増えることになり、そもそも利
          用する必要がありません。

   --disable-bootstrap
          GCC のネイティブビルドを行うには、デフォルトでは
          "ブートストラップ" ビルドを行ないます。 これは単に
          GCC
          をコンパイルするのではなく、数回のコンパイルを繰り返しま
          す。
          つまり一回めにビルドされたプログラムを使って二回め、三回
          めのコンパイルを行うものです。
          二回め、三回めとコンパイルを繰り返すのは、これによって自
          分自身を再生成して完璧なものを作り出すためです。
          このことによってコンパイルが正確に行われたことを暗に示す
          ことにもなります。 しかし LFS
          のビルドでは、何度もブートストラップを行う必要のない、手
          堅い(solid) コンパイラーを作り出します。

   パッケージをコンパイルします。
make

   パッケージをインストールします。
make install

   最後にシンボリックリンクを作成します。 プログラムやスクリプトの中には
   gcc ではなく cc を用いるものが結構あります。
   シンボリックリンクを作ることで各種のプログラムを汎用的にすることができ
   、通常 GNU C コンパイラーがインストールされていない多くの
   UNIX システムでも利用できるものになります。 cc
   を利用することにすれば、システム管理者がどの C
   コンパイラーをインストールすべきかを判断する必要がなくなります。
ln -vs gcc /tools/bin/cc

注意

   この時点で、構築したツールチェーンの基本的な
   (コンパイルやリンクなどの)
   機能が正しく動作していることを確認する必要があります。 健全性検査
   (sanity check) を行うために以下を実行してください。
echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'

   問題なく動作した場合はエラーがなかったということで、最後のコマンドから
   出力される結果は以下のようになるはずです。
[Requesting program interpreter: /tools/lib/
ld-linux.so.2]

   ここでダイナミックリンカーのディレクトリが /tools/lib
   であることを確認してください。 あるいは 64 ビットマシンであれば
   /tools/lib64 であることを確認してください。

   コマンドの出力結果が上と異なっていたり、あるいは何も出力されなかった場
   合は、何かがおかしいことを意味します。
   どこに問題があるのか調査、再試行を行って解消してください。
   解決せずにこの先に進まないでください。 cc ではなく gcc
   を使って再度健全性検査を行ってみてください。 これで解決したなら
   /tools/bin/cc
   のシンボリックリンクが正しくないということです。
   正しく生成し直してください。 また環境変数 PATH
   が正しいかどうかも確認してください。 echo $PATH
   を実行して、実行パスリストの先頭が /tools/bin
   であるかどうか確認します。 PATH が間違っていたなら、実はあなたは
   lfs ユーザーでログインしていないのかもしれませんし
   [625]4.4.「環境設定」での作業に間違いがあったのかもしれません
   。

   すべてが終了したらテストファイルを削除します。
rm -v dummy.c a.out

   本パッケージの詳細は [626]6.17.2.「GCC
   の構成」を参照してください。

5.10. Tcl-8.5.12

   Tcl パッケージはツールコマンド言語 (Tool Command
   Language) を提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 33 MB

5.10.1. Tcl のインストール

   本パッケージとこれに続く三つのパッケージ (Expect と
   DejaGNU と Check) は、GCC および Binutils
   などにおけるテストスイートを実行するのに必要となるためインストールする
   ものです。
   テスト目的のためにこれら四つのパッケージをインストールするというのは、
   少々大げさなことかもしれません。
   ただ本質的ではないことであっても、重要なツール類が正常に動作するという
   確認が得られれば安心できます。
   本章ではテストスイートを実行することは必須ではないため、実行しないもの
   としていますが、それら四つのパッケージは
   [627]第6章で行うテストのために必要となるものです。

   Tcl をコンパイルするための準備をします。
cd unix
./configure --prefix=/tools

   パッケージをビルドします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
TZ=UTC make test

   Tcl
   のテストスイートは、特定のホスト環境において失敗することがありますが、
   その原因はよく分かっていません。
   したがってテストスイートの失敗は驚くことではなく、さして重大なことでは
   ありません。 TZ=UTC はタイムゾーンを協定世界時間
   (Coordinated Universal Time; UTC)
   あるいはグリニッジ標準時間としても知られる時間に設定します。
   ただしこれはテストスイートを実行する時だけの設定です。
   こうしておけば時刻に関するテストが正しく処理されます。 環境変数 TZ
   については [628]第7章にて詳しく説明しています。

   パッケージをインストールします。
make install

   インストールされたライブラリを書き込み可能にします。
   こうすることで後にデバッグシンボルを削除できるようにします。
chmod -v u+w /tools/lib/libtcl8.5.so

   Tcl のヘッダーファイルをインストールします。
   これらは次にビルドする Expect が必要とするファイルです。
make install-private-headers

   必要となるシンボリックリンクを生成します。
ln -sv tclsh8.5 /tools/bin/tclsh

5.10.2. Tcl の構成

   インストールプログラム: tclsh (tclsh8.5
   へのリンク), tclsh8.5
   インストールライブラリ: libtcl8.5.so,
   libtclstub8.5.a

概略説明

   tclsh8.5

   Tcl コマンドシェル

   tclsh

   tclsh8.5 へのリンク

   libtcl8.5.so

   Tcl ライブラリ

   libtclstub8.5.a

   Tcl スタブライブラリ

5.11. Expect-5.45

   Expect
   パッケージは、他のプログラムと対話的に処理を行うプログラムを提供します
   。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 4.4 MB

5.11.1. Expect のインストール

   Expect の configure スクリプトは、ホストシステムの
   /usr/local/bin/stty
   を利用しようとしますが、/bin/stty
   を利用するように修正します。
   これを行うのは、ここで構築しているテストスイートのツール類を、ツールチ
   ェーンの最終構築まで正常動作してもらうために必要となるからです。
cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig
> configure

   Expect をコンパイルするための準備をします。
./configure --prefix=/tools --with-tcl=/tool
s/lib \
  --with-tclinclude=/tools/include

   configure オプションの意味:

   --with-tcl=/tools/lib
          Tcl
          のインストールモジュールを、ホストシステムに存在している
          ツール類の場所からではなく、一時的ツールを配置したディレ
          クトリから探し出すことを指示します。

   --with-tclinclude=/tools/include
          Tcl
          の内部ヘッダーファイルを探し出す場所を指定します。
          configure は自動的には Tcl
          ヘッダーファイルの場所を探し出さないため、これを明示しま
          す。

   パッケージをビルドします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make test

   Expect
   のテストスイートは、特定のホスト環境において失敗することがありますが、
   その原因はよく分かっていません。
   したがってテストスイートの失敗は驚くことではなく、さして重大なことでは
   ありません。

   パッケージをインストールします。
make SCRIPTS="" install

   make パラメーターの意味:

   SCRIPTS=""
          Expect
          の補助的なスクリプトはインストールしないことを指示します
          。 これらは必要ありません。

5.11.2. Expect の構成

   インストールプログラム: expect
   インストールライブラリ: libexpect-5.45.a

概略説明

   expect

   スクリプトを通じて他の対話的なプログラムとの処理を行います。

   libexpect-5.45.a

   Tcl 拡張機能を通じて、あるいは (Tcl がない場合に) C や
   C++ から直接、Expect とのやりとりを行う関数を提供します。

5.12. DejaGNU-1.5

   DejaGNU
   パッケージは、他のプログラムをテストするフレームワークを提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 4.1 MB

5.12.1. DejaGNU のインストール

   DejaGNU をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをビルドしてインストールします。
make install

   コンパイル結果をテストするなら以下を実行します。
make check

5.12.2. DejaGNU の構成

   インストールプログラム: runtest

概略説明

   runtest

   expect シェルの適正な場所を特定し DejaGNU
   を実行するためのラッパースクリプト。

5.13. Check-0.9.8

   Check は C 言語に対してのユニットテストのフレームワークです。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 6.9 MB

5.13.1. Check のインストール

   Check をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをビルドします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   Check
   のテストスイートには比較的時間を要する点に注意してください。(4
   SBU ほど)

   パッケージをインストールします。
make install

5.13.2. Check の構成

   インストールライブラリ: libcheck.{a,so}

概略説明

   libcheck.{a,so}

   テストプログラムから Check を呼び出すための関数を提供します。

5.14. Ncurses-5.9

   Ncurses
   パッケージは、端末に依存しない、文字ベースのスクリーン制御を行うライブ
   ラリを提供します。
   概算ビルド時間: 0.5 SBU
   必要ディスク容量: 35 MB

5.14.1. Ncurses のインストール

   Ncurses をコンパイルするための準備をします。
./configure --prefix=/tools --with-shared \
    --without-debug --without-ada --enable-o
verwrite

   configure オプションの意味

   --without-ada
          このオプションは Ncurses に対して Ada
          コンパイラーのサポート機能をビルドしないよう指示します。
          この機能はホストシステムでは提供されているかもしれません
          が、chroot
          環境に入ってしまうと利用できなくなります。

   --enable-overwrite
          このオプションは Ncurses のヘッダーファイルを
          /tools/include/ncurses ではなく
          /tools/include
          にインストールすることを指示します。
          これは他のパッケージが Ncurses
          のヘッダーファイルを正しく見つけ出せるようにするためです
          。

   パッケージをコンパイルします。
make

   このパッケージにはテストスイートがありますが、インストールした後に実行
   しなければなりません。
   テストスイートのためのファイル群はサブディレクトリ test/
   以下に残っています。 詳しいことはそのディレクトリ内にある
   README ファイルを参照してください。

   パッケージをインストールします。
make install

   本パッケージの詳細は [629]6.21.2.「Ncurses
   の構成」を参照してください。

5.15. Bash-4.2

   Bash は Bourne-Again SHell を提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 48 MB

5.15.1. Bash のインストール

   まずはアップストリームにより提供されている以下のパッチを適用し、種々の
   バグを修正します。
patch -Np1 -i ../bash-4.2-fixes-8.patch

   Bash をコンパイルするための準備をします。
./configure --prefix=/tools --without-bash-m
alloc

   configure オプションの意味:

   --without-bash-malloc
          このオプションは Bash のメモリ割り当て関数
          (malloc) を利用しないことを指示します。
          この関数はセグメンテーションフォールトが発生する可能性が
          あるものとして知られています。
          このオプションをオフにすることで、Bash は
          Glibc が提供する malloc
          関数を用いるものとなり、そちらの方が安定しています。

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make tests

   パッケージをインストールします。
make install

   他のプログラム類がシェルとして sh
   を用いるものがあるためリンクを作ります。
ln -vs bash /tools/bin/sh

   本パッケージの詳細は [630]6.33.2.「Bash
   の構成」を参照してください。

5.16. Bzip2-1.0.6

   Bzip2 パッケージはファイル圧縮、伸長 (解凍)
   を行うプログラムを提供します。
   テキストファイルであれば、これまでよく用いられてきた gzip
   に比べて bzip2 の方が圧縮率の高いファイルを生成できます。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 5.7 MB

5.16.1. Bzip2 のインストール

   Bzip2 パッケージには configure がありません。
   コンパイルおよびテストを行うには以下を実行します。
make

   パッケージをインストールします。
make PREFIX=/tools install

   本パッケージの詳細は [631]6.19.2.「Bzip2
   の構成」を参照してください。

5.17. Coreutils-8.19

   Coreutils
   パッケージはシステムの基本的な特性を表示したり設定したりするためのユー
   ティリティを提供します。
   概算ビルド時間: 0.7 SBU
   必要ディスク容量: 126 MB

5.17.1. Coreutils のインストール

   Coreutils をコンパイルするための準備をします。
./configure --prefix=/tools --enable-install
-program=hostname

   configure オプションの意味:

   --enable-install-program=hostname
          このオプションは hostname
          プログラムを生成しインストールすることを指示します。
          このプログラムはデフォルトでは生成されません。
          そしてこれは Perl
          のテストスイートを実行するのに必要となります。

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make RUN_EXPENSIVE_TESTS=yes check

   パラメーター RUN_EXPENSIVE_TESTS=yes
   は、テストスイートの実行にあたって (CPU
   パワーとメモリ使用量の観点で)
   比較的負荷の高いテストを追加で実行することを指示します。
   特定のプラットフォームに対してのテスト確認となりますが、一般に
   Linux 上において支障はありません。

   パッケージをインストールします。
make install

   本パッケージの詳細は [632]6.26.2.「Coreutils
   の構成」を参照してください。

5.18. Diffutils-3.2

   Diffutils
   パッケージはファイルやディレクトリの差分を表示するプログラムを提供しま
   す。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 8.5 MB

5.18.1. Diffutils のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' lib/stdio.in.h

   Diffutils をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [633]6.40.2.「Diffutils
   の構成」を参照してください。

5.19. File-5.11

   File
   パッケージは、指定されたファイルの種類を決定するユーティリティを提供し
   ます。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 12.4 MB

5.19.1. File のインストール

   File をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [634]6.12.2.「File
   の構成」を参照してください。

5.20. Findutils-4.4.2

   Findutils
   パッケージはファイル検索を行うプログラムを提供します。
   このプログラムはディレクトリツリーを再帰的に検索したり、データベースの
   生成、保守、検索を行います。
   (データベースによる検索は再帰的検索に比べて処理速度は速いものですが、
   データベースが最新のものに更新されていない場合は信頼できない結果となり
   ます。)
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 27 MB

5.20.1. Findutils のインストール

   Findutils をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [635]6.42.2.「Findutils
   の構成」を参照してください。

5.21. Gawk-4.0.1

   Gawk
   パッケージはテキストファイルを操作するプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 30 MB

5.21.1. Gawk のインストール

   Gawk をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [636]6.41.2.「Gawk
   の構成」を参照してください。

5.22. Gettext-0.18.1.1

   Gettext パッケージは国際化を行うユーティリティを提供します。
   各種プログラムに対して NLS (Native Language
   Support) を含めてコンパイルすることができます。
   つまり各言語による出力メッセージが得られることになります。
   概算ビルド時間: 0.6 SBU
   必要ディスク容量: 101 MB

5.22.1. Gettext のインストール

   ここで構築している一時的なツールに際して、Gettext
   パッケージからは1つのバイナリをビルドしてインストールするだけで十分で
   す。

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' gettext-*/*/stdio.i
n.h

   Gettext をコンパイルするための準備をします。
cd gettext-tools
EMACS="no" ./configure --prefix=/tools --dis
able-shared

   configure オプションの意味:

   EMACS="no"
          特定のホストにて configure スクリプトが
          Emacs Lisp
          ファイルを見出せずにハングすることがあるため、これを回避
          します。

   --disable-shared
          Gettext
          の共有ライブラリはこの時点では必要でないため、それらをビ
          ルドしないようにします。

   パッケージをコンパイルします。
make -C gnulib-lib
make -C src msgfmt

   1つのバイナリしかコンパイルしなかったため、その他のライブラリをコンパ
   イルしない限り、テストスイートを成功させることはできません。
   したがってテストスイートをこの段階で実行することはお勧めしません。

   msgfmt プログラムをインストールします。
cp -v src/msgfmt /tools/bin

   本パッケージの詳細は [637]6.44.2.「Gettext
   の構成」を参照してください。

5.23. Grep-2.14

   Grep パッケージはファイル内の検索を行うプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 21 MB

5.23.1. Grep のインストール

   Grep をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [638]6.31.2.「Grep
   の構成」を参照してください。

5.24. Gzip-1.5

   Gzip パッケージはファイルの圧縮、伸長 (解凍)
   を行うプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 10 MB

5.24.1. Gzip のインストール

   Gzip をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [639]6.49.2.「Gzip
   の構成」を参照してください。

5.25. M4-1.4.16

   M4 パッケージはマクロプロセッサーを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 16.6 MB

5.25.1. M4 のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' lib/stdio.in.h

   M4 をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [640]6.28.2.「M4
   の構成」を参照してください。

5.26. Make-3.82

   Make
   パッケージは、パッケージ類をコンパイルするためのプログラムを提供します
   。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 11.2 MB

5.26.1. Make のインストール

   Make をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [641]6.54.2.「Make
   の構成」を参照してください。

5.27. Patch-2.6.1

   Patch
   パッケージは「パッチ」ファイルを適用することにより、ファイルの修正、生
   成を行うプログラムを提供します。 「パッチ」ファイルは diff
   プログラムにより生成されます。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 3.4 MB

5.27.1. Patch のインストール

   Patch をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [642]6.56.2.「Patch
   の構成」を参照してください。

5.28. Perl-5.16.1

   Perl パッケージは Perl 言語 (Practical
   Extraction and Report Language)
   を提供します。
   概算ビルド時間: 1.8 SBU
   必要ディスク容量: 237 MB

5.28.1. Perl のインストール

   以下のパッチを適用します。 これは C
   ライブラリに対する固定的なパスを適用します。
patch -Np1 -i ../perl-5.16.1-libc-2.patch

   Perl をコンパイルするための準備をします。
sh Configure -des -Dprefix=/tools

   パッケージをビルドします。
make

   Perl
   にはテストスイートがありますが、次章にてインストールする際に実施するの
   がよいでしょう。

   ユーティリティプログラムやライブラリの中で、特定のものはこの時点でイン
   ストールする必要があります。
cp -v perl cpan/podlators/pod2man /tools/bin
mkdir -pv /tools/lib/perl5/5.16.1
cp -Rv lib/* /tools/lib/perl5/5.16.1

   本パッケージの詳細は [643]6.37.2.「Perl
   の構成」を参照してください。

5.29. Sed-4.2.1

   Sed パッケージはストリームエディターを提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 10.5 MB

5.29.1. Sed のインストール

   Sed をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [644]6.18.2.「Sed
   の構成」を参照してください。

5.30. Tar-1.26

   Tar パッケージはアーカイブプログラムを提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 20.6 MB

5.30.1. Tar のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' gnu/stdio.in.h

   Tar をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [645]6.59.2.「Tar
   の構成」を参照してください。

5.31. Texinfo-4.13a

   Texinfo パッケージは info
   ページへの読み書き、変換を行うプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 24 MB

5.31.1. Texinfo のインストール

   Texinfo をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [646]6.60.2.「Texinfo
   の構成」を参照してください。

5.32. Xz-5.0.4

   Xz パッケージは、ファイルの圧縮、伸張 (解凍)
   を行うプログラムを提供します。 これは lzma
   フォーマットおよび新しい xz 圧縮フォーマットを取り扱います。 xz
   コマンドによりテキストファイルを圧縮すると、従来の gzip
   コマンドや bzip2 コマンドに比べて、高い圧縮率を実現できます。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 16.3 MB

5.32.1. Xz-Utils のインストール

   Xz をコンパイルするための準備をします。
./configure --prefix=/tools

   パッケージをコンパイルします。
make

   コンパイルが終了しました。
   前にも述べたように、この章にて一時的ツールのテストスイートを実行するこ
   とは必須ではありません。
   しかしテストスイートを実行するなら、以下を実行します。
make check

   パッケージをインストールします。
make install

   本パッケージの詳細は [647]6.46.2.「Xz
   の構成」を参照してください。

5.33. ストリップ

   本節に示す作業は必須ではありません。 ただ LFS
   パーティションの容量が比較的少ない場合には、不要なものは削除することを
   覚えておきましょう。
   ここまでにビルドしてきた実行ファイルやライブラリには、合計で 70
   MB ほどの不要なデバッグシンボル情報が含まれています。
   それらを取り除くには以下を実行します。
strip --strip-debug /tools/lib/*
strip --strip-unneeded /tools/{,s}bin/*

   上のコマンド実行ではいくつものファイルがフォーマット不明となって処理が
   スキップされます。
   それらはたいてい、バイナリではなくスクリプトであることを示しています。

   --strip-unneeded パラメーターは 絶対に
   ライブラリに対して用いないでください。
   もし用いるとスタティックライブラリが破壊され、ツールチェーンを構成する
   パッケージをすべて作り直さなければならなくなります。

   さらに容量を節約するためにドキュメント類を削除します。
rm -rf /tools/{,share}/{info,man,doc}

   この時点において環境変数 $LFS の配下には最低でも 850 MB
   の空き容量が必要になります。 これは次のフェーズにて Glibc
   をビルドしインストールするためです。 Glibc
   のビルドとインストールができさえすれば、残りのものもすべてビルド、イン
   ストールができます。

5.34. 所有者の変更

注記

   本書のこれ以降で実行するコマンドはすべて root
   ユーザーでログインして実行します。 もう lfs ユーザーは不要です。
   root ユーザーの環境にて環境変数 $LFS
   がセットされていることを今一度確認してください。

   $LFS/tools ディレクトリの所有者は今は lfs
   ユーザーであり、これはホストシステム上に存在するユーザーです。 この
   $LFS/tools
   ディレクトリをこのままにしておくということは、そこにあるファイル群が、
   存在しないアカウントに対するユーザーIDによって所有される形を生み出す
   ことになります。 これは危険なことです。
   後にユーザーアカウントが生成され同一のユーザーIDを持ったとすると
   $LFS/tools
   の所有者となってしまい、そこにあるファイルすべてを所有することになって
   、悪意のある操作に利用されてしまいます。

   この問題を解消するためには、新しく作り出される LFS システムに
   lfs ユーザーを作成することが考えられます。
   その場合には同一のユーザーID、グループIDとなるように作ります。
   もっと良い方法があります。 $LFS/tools
   ディレクトリの所有者を root
   ユーザーにすることです。以下のコマンドによりこれを実現します。
chown -R root:root $LFS/tools

   $LFS/tools ディレクトリは LFS
   システムの構築作業を終えれば削除することができます。
   一方これを残しておいて 本書と同一バージョンの LFS
   システムを新たに構築する際に利用することもできます。
   $LFS/tools
   ディレクトリをどのように残すかは読者の皆さんの好みに応じて取り決めてく
   ださい。

注意

   この先の LFS
   システム構築に向けて一時的なツール類を残しておきたい場合は この時点で
   バックアップを取っておくのが良いでしょう。
   第6章で実施する作業を通じて、今存在している一時的ツールは変更が加えら
   れますので、将来、別のビルド作業を行う際には使えないものとなります。

第III部 LFSシステムの構築

第6章 基本的なソフトウェアのインストール

6.1. はじめに

   この章ではビルド環境に入って正式な LFS
   システムの構築作業を始めます。 chroot によって一時的なミニ
   Linux
   システムへ移行し、準備作業を行った上でパッケージ類のインストールを行っ
   ていきます。

   パッケージ類のインストール作業は簡単なものです。
   インストール手順の説明は、たいていは手短に一般的なものだけで済ますこと
   もできます。
   ただ誤りの可能性を極力減らすために、個々のインストール手順の説明は十分
   に行うことにします。 Linux
   システムがどのようにして動作しているかを学ぶには、個々のパッケージが何
   のために用いられていて、なぜユーザー (あるいはシステム)
   がそれを必要としているのかを知ることが重要になります。

   コンパイラーには最適化オプションがありますが、これを利用することはお勧
   めしません。
   コンパイラーの最適化を用いればプログラムが若干速くなる場合もありますが
   、そもそもコンパイルが出来なかったり、プログラムの実行時に問題が発生し
   たりする場合があります。
   もしコンパイラーの最適化によってパッケージビルドが出来なかったら、最適
   化をなしにしてもう一度コンパイルすることで解決するかどうかを確認してく
   ださい。
   最適化を行ってパッケージがコンパイル出来たとしても、コードとビルドツー
   ルの複雑な関連に起因してコンパイルが適切に行われないリスクをはらんでい
   ます。 また -march オプションや -mtune
   オプションにて指定する値は、本書には明示しておらずテストも行っていませ
   んので注意してください。 これらはツールチェーンパッケージ
   (Binutils、GCC、Glibc)
   に影響を及ぼすことがあります。
   最適化オプションを用いることによって得られるものがあったとしても、それ
   以上にリスクを伴うことがしばしばです。 初めて LFS
   構築を手がける方は、最適化オプションをなしにすることをお勧めします。
   これ以降にビルドしていくツール類は、それでも十分に速く安定して動作する
   はずです。

   本章にてインストールしていくパッケージ類のビルド順は、必ず本書どおりに
   行ってください。 プログラムはすべて /tools
   ディレクトリを直接参照するような形でビルドしてはなりません。
   また同じ理由でパッケージ類を同時並行でビルドしないでください。
   特にデュアル CPU
   マシンにおいて同時にビルドしていくと時間の節約を図ることができますが
   /tools
   ディレクトリを直接参照するプログラムが出来上がってしまい、このディレク
   トリが存在しなくなった時にはプログラムが動作しないことになります。

   各ページではインストール手順の説明よりも前に、パッケージの内容やそこに
   何が含まれているかを簡単に説明し、ビルドにどれくらいの時間を要するか、
   ビルド時に必要となるディスク容量はどれくらいかを示しています。
   またインストール手順の最後には、パッケージがインストールするプログラム
   やライブラリの一覧を示し、それらがどのようなものかを簡単に説明していま
   す。

注記

   本章にて導入するパッケージにおいて SBU
   値と必要ディスク容量には、テストスイート実施による時間や容量をすべて含
   んでいます。

6.2. 仮想カーネルファイルシステムの準備

   カーネルが取り扱うさまざまなファイルシステムは、カーネルとの間でやり取
   りが行われます。
   これらのファイルシステムは仮想的なものであり、ディスクを消費するもので
   はありません。 ファイルシステムの内容はメモリ上に保持されます。

   ファイルシステムをマウントするディレクトリを以下のようにして生成します
   。
mkdir -v $LFS/{dev,proc,sys}

6.2.1. 初期デバイスノードの生成

   カーネルがシステムを起動する際には、いくつかのデバイスノードの存在が必
   要です。 特に console と null です。
   これらのデバイスノードはハードディスク上に生成されていなければなりませ
   ん。 udevd が起動し、また Linux が起動パラメーター
   init=/bin/bash によって起動されれば利用可能となります。
   そこで以下のコマンドによりデバイスノードを生成します。
mknod -m 600 $LFS/dev/console c 5 1
mknod -m 666 $LFS/dev/null c 1 3

6.2.2. /dev のマウントと有効化

   各デバイスを /dev に設定する方法としては、/dev
   ディレクトリに対して tmpfs
   のような仮想ファイルシステムをマウントすることが推奨されます。
   こうすることで各デバイスが検出されアクセスされる際に、その仮想ファイル
   システム上にて動的にデバイスを生成する形を取ることができます。
   このデバイス生成処理は一般的にはシステム起動時に Udev
   によって行われます。 今構築中のシステムにはまだ Udev
   を導入していませんし、再起動も行っていませんので /dev
   のマウントと有効化は手動で行ないます。 これはホストシステムの
   /dev
   ディレクトリに対して、バインドマウントを行うことで実現します。
   バインドマウント (bind mount)
   は特殊なマウント方法の一つで、ディレクトリのミラーを生成したり、他のデ
   ィレクトリへのマウントポイントを生成したりします。
   以下のコマンドにより実現します。
mount -v --bind /dev $LFS/dev

6.2.3. 仮想カーネルファイルシステムのマウント

   残りの仮想カーネルファイルシステムを以下のようにしてマウントします。
mount -vt devpts devpts $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys

   ホストシステムによっては /dev/shm が /run/shm
   へのシンボリックリンクになっているものがあります。 chroot
   環境内では、一時的なファイルシステムとしてマウントする際には、このシン
   ボリックリンクを通常のディレクトリとして変更しておく必要があります。
if [ -h /dev/shm ]; then
   rm -f $LFS/dev/shm
   mkdir $LFS/dev/shm
fi

mount -vt tmpfs shm $LFS/dev/shm

6.3. パッケージ管理

   パッケージ管理についての説明を LFS
   ブックに加えて欲しいとの要望をよく頂きます。
   パッケージ管理ツールがあれば、インストールされるファイル類を管理し、パ
   ッケージの削除やアップグレードを容易に実現できます。
   パッケージ管理ツールでは、バイナリファイルやライブラリファイルだけでな
   く、設定ファイル類のインストールも取り扱います。
   パッケージ管理ツールをどうしたら・・・
   いえいえ本節は特定のパッケージ管理ツールを説明するわけでなく、その利用
   を勧めるものでもありません。
   もっと広い意味で、管理手法にはどういったものがあり、どのように動作する
   かを説明します。
   あなたにとって最適なパッケージ管理がこの中にあるかもしれません。
   あるいはそれらをいくつか組み合わせて実施することになるかもしれません。
   本節ではパッケージのアップグレードを行う際に発生する問題についても触れ
   ます。

   LFS や BLFS
   において、パッケージ管理ツールについて触れていない理由には以下のものが
   あります。
     * 本書の目的は Linux
       システムがいかに構築されているかを学ぶことです。
       パッケージ管理はその目的からはずれてしまいます。
     * パッケージ管理についてはいくつもの方法があり、それらには一長一
       短があります。
       ユーザーに対して満足のいくものを選び出すのは困難です。

   [648]ヒントプロジェクト (Hints Project)
   ページに、パッケージ管理についての情報が示されています。
   それらが望むものかどうか確認してみてください。

6.3.1. アップグレードに関する問題

   パッケージ管理ツールがあれば、各種ソフトウェアの最新版がリリースされた
   際に容易にアップグレードができます。 全般に LFS ブックや
   BLFS
   ブックに示されている作業手順に従えば、新しいバージョンへのアップグレー
   ドを行っていくことはできます。
   以下ではパッケージをアップグレードする際に注意すべき点、特に稼動中のシ
   ステムに対して実施するポイントについて説明します。
     * ツールチェーン (Glibc、GCC、Binutils)
       のいずれかについて、マイナーバージョンをアップグレードする必要
       がある場合は、LFS を再構築するのが無難です。
       この場合、すべてのパッケージの依存関係を考慮して順番に作り直せ
       ば実現できるはず ですが、これはあまりお勧めしません。 例えば
       glibc-2.2.x を glibc-2.3.x
       にアップグレードする必要がある場合は、再構築するのが無難です。
       マイクロバージョンをアップグレードする場合は、もっと単純にその
       パッケージをインストールし直すだけで動作すると思いますが、保証
       はありません。 例えば glibc-2.3.4 を
       glibc-2.3.5
       にアップグレードする場合、普通は何も問題ないでしょう。
     * 共有ライブラリを提供しているパッケージをアップデートする場合で
       、そのライブラリの名前が変更になった場合は、そのライブラリを動
       的にリンクしているすべてのパッケージは、新しいライブラリにリン
       クされるように再コンパイルを行う必要があります。
       (パッケージのバージョンとライブラリ名との間には相関関係はあり
       ません。) 例えば foo-1.2.3
       というパッケージが共有ライブラリ libfoo.so.1
       をインストールするものであるとします。
       そして今、新しいバージョン foo-1.2.4
       にアップグレードし、共有ライブラリ libfoo.so.2
       をインストールするとします。 この例では
       libfoo.so.1
       を動的にリンクいるパッケージがあったとすると、それらはすべて
       libfoo.so.2
       に対してリンクするよう再コンパイルしなければなりません。
       古いライブラリに依存しているパッケージすべてを再コンパイルする
       までは、そのライブラリを削除するべきではありません。

6.3.2. パッケージ管理手法

   以下に一般的なパッケージ管理手法について示します。
   パッケージ管理マネージャーを用いる前に、さまざまな方法を検討し、特にそ
   れぞれの欠点も確認してください。

6.3.2.1. すべては頭の中で

   そうです。 これもパッケージ管理のやり方の一つです。
   いろいろなパッケージに精通していて、どんなファイルがインストールされる
   か分かっている人もいます。
   そんな人はパッケージ管理ツールを必要としません。
   あるいはパッケージが更新された際に、システム全体を再構築しようと考えて
   いる人なら、やはりパッケージ管理ツールを必要としません。

6.3.2.2. 異なるディレクトリへのインストール

   これは最も単純なパッケージ管理のやり方であり、パッケージ管理のためのツ
   ールを用いる必要はありません。
   個々のパッケージを個別のディレクトリにインストールする方法です。
   例えば foo-1.1 というパッケージを
   /usr/pkg/foo-1.1 ディレクトリにインストールし、この
   /usr/pkg/foo-1.1 に対するシンボリックリンク
   /usr/pkg/foo を作成します。
   このパッケージの新しいバージョン foo-1.2
   をインストールする際には /usr/pkg/foo-1.2
   ディレクトリにインストールした上で、先ほどのシンボリックリンクをこのデ
   ィレクトリを指し示すように置き換えます。

   PATH、LD_LIBRARY_PATH、MANPATH、INFOPA
   TH、CPPFLAGS といった環境変数に対しては
   /usr/pkg/foo
   ディレクトリを加える必要があるかもしれません。
   もっともパッケージによっては、このやり方では管理できないものもあります
   。

6.3.2.3. シンボリックリンク方式による管理

   これは一つ前に示したパッケージ管理テクニックの応用です。
   各パッケージは同様にインストールします。
   ただし先ほどのようなシンボリックリンクを生成するのではなく /usr
   ディレクトリ階層の中に各ファイルのシンボリックリンクを生成します。
   この方法であれば環境変数を追加設定する必要がなくなります。
   シンボリックリンクを自動生成することもできますが、パッケージ管理ツール
   の中にはこの手法を使って構築されているものもあります。
   よく知られているものとして Stow、Epkg、Graft、Depot
   があります。

   インストール時には意図的な指示が必要です。 パッケージにとっては
   /usr にインストールすることが指定されたものとなりますが、実際には
   /usr/pkg 配下にインストールされるわけです。
   このインストール方法は単純なものではありません。 例えば今
   libfoo-1.1 というパッケージをインストールするものとします。
   以下のようなコマンドでは、このパッケージを正しくインストールできません
   。
./configure --prefix=/usr/pkg/libfoo/1.1
make
make install

   インストール自体は動作しますが、このパッケージに依存している他のパッケ
   ージは、期待どおりには libfoo を正しくリンクしません。 例えば
   libfoo をリンクするパッケージをコンパイルする際には
   /usr/lib/libfoo.so.1
   がリンクされると思うかもしれませんが、実際には
   /usr/pkg/libfoo/1.1/lib/libfoo.so.1
   がリンクされることになります。 正しくリンクするためには
   DESTDIR
   変数を使って、パッケージのインストールをうまく仕組む必要があります。
   この方法は以下のようにして行います。
./configure --prefix=/usr
make
make DESTDIR=/usr/pkg/libfoo/1.1 install

   多くのパッケージは、たいていはこの手法をサポートしていますが、そうでな
   いものもあります。
   この手法を取り入れていないパッケージに対しては、手作業にてインストール
   することが必要になります。
   またはそういった問題を抱えるパッケージであれば /opt
   ディレクトリにインストールする方が容易なことかもしれません。

6.3.2.4. タイムスタンプによる管理方法

   この方法ではパッケージをインストールするにあたって、あるファイルにタイ
   ムスタンプが記されます。 インストールの直後に find
   コマンドを適当なオプション指定により用いることで、インストールされるす
   べてのファイルのログが生成されます。
   これはタイムスタンプファイルの生成の後に行われます。
   この方法を用いたパッケージ管理ツールとして install-log
   があります。

   この方法はシンプルである利点がありますが、以下の二つの欠点があります。
   インストールの際に、いずれかのファイルのタイムスタンプが現在時刻でなか
   った場合、そういったファイルはパッケージ管理ツールが正しく制御できませ
   ん。
   またこの方法は一つのパッケージだけが、その時にインストールされることを
   前提とします。
   例えば二つのパッケージが二つの異なる端末から同時にインストールされるよ
   うな場合は、ログファイルが適切に生成されません。

6.3.2.5. インストールスクリプトの追跡管理

   この方法はインストールスクリプトが実行するコマンドを記録するものです。
   これには以下の二種類の手法があります。

   環境変数 LD_PRELOAD
   を使えば、インストール前にあらかじめロードされるライブラリを定めること
   ができます。 パッケージのインストール中には
   cp、install、mv
   など、さまざまな実行モジュールにそのライブラリをリンクさせ、ファイルシ
   ステムを変更するようなシステムコールを監視することで、そのライブラリが
   パッケージを追跡管理できるようになります。
   この方法を実現するためには、動的リンクする実行モジュールはすべて
   suid ビット、sgid ビットがオフでなければなりません。
   事前にライブラリをロードしておくと、インストール中に予期しない副作用が
   発生するかもしれません。
   したがって、ある程度のテスト確認を行って、パッケージ管理ツールが不具合
   を引き起こさないこと、しかるべきファイルの記録を取っておくことが必要と
   されます。

   二つめの方法は strace を用いるものです。
   これはインストールスクリプトの実行中に発生するシステムコールを記録する
   ものです。

6.3.2.6. パッケージのアーカイブを生成する方法

   この方法では、シンボリックリンク方式によるパッケージ管理にて説明したの
   と同じように、パッケージが個別のディレクトリにインストールされます。
   インストールされた後には、インストールファイルを使ってアーカイブが生成
   されます。
   このアーカイブはこの後に、ローカルPCへのインストールに用いられ、他の
   PCのインストールに利用することもできます。

   商用ディストリビューションが採用しているパッケージ管理ツールは、ほとん
   どがこの方法によるものです。
   この方法に従ったパッケージ管理ツールの例に RPM があります。
   (これは [649]Linux Standard Base
   Specification が規定しています。) また
   pkg-utils、Debian の apt、Gentoo の
   Portage システムがあります。 このパッケージ管理手法を LFS
   システムに適用するヒント情報が
   [650]http://www.linuxfromscratch.or
   g/hints/downloads/files/fakeroot.tx
   t にあります。

   パッケージファイルにその依存パッケージ情報まで含めてアーカイブ生成する
   ことは、非常に複雑となり LFS の範疇を超えるものです。

   Slackware は、パッケージアーカイブに対して tar
   ベースのシステムを利用しています。
   他のパッケージ管理ツールはパッケージの依存性を取り扱いますが、このシス
   テムは意図的にこれを行っていません。 Slackware
   のパッケージ管理に関する詳細は
   [651]http://www.slackbook.org/html/
   package-management.html を参照してください。

6.3.2.7. ユーザー情報をベースとする管理方法

   この手法は LFS に固有のものであり Matthias
   Benkmann により考案されました。 [652]ヒントプロジェクト
   (Hints Project) から入手することが出来ます。
   考え方としては、各パッケージを個々のユーザーが共有ディレクトリにインス
   トールします。
   パッケージに属するファイル類は、ユーザーIDを確認することで容易に特定
   出来るようになります。
   この手法の特徴や短所については、複雑な話となるため本節では説明しません
   。 詳しくは
   [653]http://www.linuxfromscratch.or
   g/hints/downloads/files/more_contro
   l_and_pkg_man.txt
   に示されているヒントを参照してください。

6.3.3. 他システムへの LFS の配置

   LFS
   システムの利点の一つとして、どのファイルもディスク上のどこに位置してい
   ても構わないことです。 他のコンピューターに対してビルドした LFS
   の複製を作ろうとするなら、それが同等のアーキテクチャーであれば容易に実
   現できます。 つまり tar コマンドを使って LFS
   のルートディレクトリを含むパーティション (LFS
   の基本的なビルドの場合、非圧縮で 250MB 程度)
   をまとめ、これをネットワーク転送か、あるいは CD-ROM
   を通じて新しいシステムにコピーし、伸張 (解凍) するだけです。
   この場合でも、設定ファイルはいくらか変更することが必要です。
   変更が必要となる設定ファイルは以下のとおりです。
   /etc/hosts, /etc/fstab,
   /etc/passwd, /etc/group,
   /etc/shadow, /etc/ld.so.conf,
   /etc/sysconfig/rc.site,
   /etc/sysconfig/network,
   /etc/sysconfig/ifconfig.eth0

   新しいシステムのハードウェアと元のカーネルに差異があるかもしれないため
   、カーネルを再ビルドする必要があるでしょう。

   最後に新システムを起動可能とするために [654]8.4.「GRUB
   を用いたブートプロセスの設定」を設定する必要があります。

6.4. Chroot 環境への移行

   chroot 環境に入って最終的な LFS
   システムの構築、インストールを行っていきます。 root
   ユーザーになって以下のコマンドを実行します。 chroot
   環境内は、この時点では一時的なツール類のみが利用可能な状態です。
chroot "$LFS" /tools/bin/env -i \
    HOME=/root                  \
    TERM="$TERM"                \
    PS1='\u:\w\$ '              \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tool
s/bin \
    /tools/bin/bash --login +h

   env コマンドの -i パラメーターは、chroot
   環境での変数定義をすべてクリアするものです。 そして HOME,
   TERM, PS1, PATH という変数だけここで定義し直します。
   TERM=$TERM は chroot 環境に入る前と同じ値を
   TERM 変数に与えます。 この設定は vim や less
   のようなプログラムの処理が適切に行われるために必要となります。
   これ以外の変数として CFLAGS や CXXFLAGS
   などが必要であれば、ここで定義しておくと良いでしょう。

   ここから先は LFS 変数は不要となります。 すべての作業は LFS
   ファイルシステム内で行っていくことになるからです。 起動される
   Bash シェルは $LFS ディレクトリがルート (/
   ディレクトリ) となって動作します。

   /tools/bin が PATH 変数内の最後に加わっています。
   一時的なツール類は、それぞれの正式版がインストールされていくに従って使
   われなくなります。 これがうまく動作するのは bash の +h
   オプションを用いることによってハッシュ機能をオフにしているからであり、
   実行モジュールの場所を覚えておく機能を無効にしているからです。

   bash のプロンプトに I have no name!
   と表示されますがこれは正常です。 この時点ではまだ
   /etc/passwd を生成していないからです。

注記

   本章のこれ以降と次章では、すべてのコマンドを chroot
   環境内にて実行することが必要です。
   例えばシステムを再起動する場合のように chroot
   環境からいったん抜け出した場合には、[655]6.2.2.「/dev
   のマウントと有効化」と
   [656]6.2.3.「仮想カーネルファイルシステムのマウント」にて説
   明した仮想カーネルファイルシステムがマウントされていることを確認してく
   ださい。 そして chroot
   環境に入り直してからインストール作業を再開してください。

6.5. ディレクトリの生成

   LFS ファイルシステムにおけるディレクトリ構成を作り出していきます。
   以下のコマンドを実行して標準的なディレクトリを生成します。
mkdir -pv /{bin,boot,etc/{opt,sysconfig},hom
e,lib,mnt,opt,run}
mkdir -pv /{media/{floppy,cdrom},sbin,srv,va
r}
install -dv -m 0750 /root
install -dv -m 1777 /tmp /var/tmp
mkdir -pv /usr/{,local/}{bin,include,lib,sbi
n,src}
mkdir -pv /usr/{,local/}share/{doc,info,loca
le,man}
mkdir -v  /usr/{,local/}share/{misc,terminfo
,zoneinfo}
mkdir -pv /usr/{,local/}share/man/man{1..8}
for dir in /usr /usr/local; do
  ln -sv share/{man,doc,info} $dir
done
case $(uname -m) in
 x86_64) ln -sv lib /lib64 && ln -sv lib /us
r/lib64 ;;
esac
mkdir -v /var/{log,mail,spool}
ln -sv /run /var/run
ln -sv /run/lock /var/lock
mkdir -pv /var/{opt,cache,lib/{misc,locate},
local}

   ディレクトリは標準ではパーミッションモード 755
   で生成されますが、すべてのディレクトリをこのままとするのは適当ではあり
   ません。
   上のコマンド実行ではパーミッションを変更している箇所が二つあります。
   一つは root
   ユーザーのホームディレクトリに対してであり、もう一つはテンポラリディレ
   クトリに対してです。

   パーミッションモードを変更している一つめは /root
   ディレクトリに対して、他のユーザーによるアクセスを制限するためです。
   通常のユーザーが持つ、自分自身のホームディレクトリへのアクセス権設定と
   同じことを行ないます。 二つめのモード変更は /tmp ディレクトリや
   /var/tmp
   ディレクトリに対して、どのユーザーも書き込み可能とし、ただし他のユーザ
   ーが作成したファイルは削除できないようにします。 ビットマスク
   1777 の最上位ビット、いわゆる「スティッキービット (sticky
   bit)」を用いて実現します。

6.5.1. FHS コンプライアンス情報

   本書のディレクトリ構成は標準ファイルシステム構成
   (Filesystem Hierarchy Standard;
   FHS) に基づいています。(その情報は
   [657]http://www.pathname.com/fhs/
   に示されています。) FHS に加えて man、doc、info
   の各ディレクトリに対するシンボリックリンクも作成します。
   これは多くのパッケージがドキュメントファイルをインストールする先として
   /usr/share/<ディレクトリ> や
   /usr/local/share/<ディレクトリ>ではなく、いまだに
   /usr/<ディレクトリ> や
   /usr/local/<ディレクトリ>としているためです。 また
   FHS では /usr/local/games や
   /usr/share/games を規定していますが、一方で
   /usr/local/share については明確なものがありません。
   したがって本書では必要なディレクトリのみを作成していくことにします。
   もっとも FHS
   に準拠した構成を望むなら、どうぞ自由に作成してください。

6.6. 基本的なファイルとリンクの生成

   プログラムの中には固定的に他のプログラムへのパスを保持しているものがあ
   ります。 そのパスは今の時点ではまだ存在していません。
   このようなプログラムを正しく動作させるため、シンボリックリンクをいくつ
   か作成します。
   このリンクは本章の作業を通じて各種ソフトウェアをインストールしていくこ
   とで、 その実体であるファイルに置き換えられていきます。
ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /
bin
ln -sv /tools/bin/perl /usr/bin
ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
sed 's/tools/usr/' /tools/lib/libstdc++.la >
 /usr/lib/libstdc++.la
ln -sv bash /bin/sh

   Linux
   システムが適切に動作しているなら、マウントしているファイルシステムの情
   報を /etc/mtab ファイルに保持しています。
   このファイルは普通は、新しいファイルシステムをマウントした際に生成され
   ます。 しかし今の我々の chroot
   環境では、ファイルシステムを一つもマウントしていません。
   そこで、このファイルの存在を前提としているプログラムを正しく動作させる
   ため、空の /etc/mtab を作成しておきます。
touch /etc/mtab

   root
   ユーザーがログインできるように、またその「root」という名称を認識で
   きるように /etc/passwd ファイルと /etc/group
   ファイルには該当する情報が登録されている必要があります。

   以下のコマンドを実行して /etc/passwd
   ファイルを生成します。
cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/
bin/false
EOF

   root
   ユーザーに対する本当のパスワードは後に定めます。(「x」は単に場所を設
   けるために設定しているものです。)

   以下のコマンドを実行して /etc/group ファイルを生成します。
cat > /etc/group << "EOF"
root:x:0:
bin:x:1:
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
mail:x:34:
nogroup:x:99:
EOF

   作成するグループは何かの標準に基づいたものではありません。
   一部は本章の Udev の設定に必要となるものですし、一部は既存の
   Linux ディストリビューションが採用している慣用的なものです。
   Linux Standard Base
   ([658]http://www.linuxbase.org 参照)
   では root グループのグループID (GID) は 0、bin
   グループの GID は 1 を定めているにすぎません。
   他のグループとその GID
   はシステム管理者が自由に取り決めることができます。
   というのも通常のプログラムであれば GID
   の値に依存することはなく、あくまでグループ名を用いてプログラミングされ
   ているからです。

   プロンプトに表示される「I have no
   name!」を正しくするため、新たなシェルを起動します。
   [659]第5章にて完全に Glibc
   をインストールし、/etc/passwd ファイルと
   /etc/group
   ファイルを作ったので、ユーザー名とグループ名の名前解決が適切に動作しま
   す。
exec /tools/bin/bash --login +h

   ディレクティブ +h について触れておきます。 これは bash
   に対して実行パスの内部ハッシュ機能を利用しないよう指示するものです。
   もしこのディレクティブを指定しなかった場合 bash
   は一度実行したファイルのパスを記憶します。
   コンパイルしてインストールした実行ファイルはすぐに利用していくために、
   本章での作業では +h ディレクティブを常に使っていくことにします。

   login、agetty、init といったプログラム
   (あるいは他のプログラム)
   は、システムに誰がいつログインしたかといった情報を多くのログファイルに
   記録します。
   しかしログファイルがあらかじめ存在していない場合は、ログファイルの出力
   が行われません。
   そこでそのようなログファイルを作成し、適切なパーミッションを与えます。
touch /var/log/{btmp,lastlog,wtmp}
chgrp -v utmp /var/log/lastlog
chmod -v 664  /var/log/lastlog
chmod -v 600  /var/log/btmp

   /var/log/wtmp
   ファイルはすべてのログイン、ログアウトの情報を保持します。
   /var/log/lastlog
   ファイルは各ユーザーが最後にログインした情報を保持します。
   /var/log/btmp ファイルは不正なログイン情報を保持します。

注記

   /run/utmp
   ファイルは現在ログインしているユーザーの情報を保持します。
   このファイルはブートスクリプトが動的に生成します。

6.7. Linux-3.5.2 API ヘッダー

   Linux API ヘッダー (linux-3.5.2.tar.gz
   内) は Glibc が利用するカーネル API を提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 515 MB

6.7.1. Linux API ヘッダー のインストール

   Linux カーネルはアプリケーションプログラミングインターフェース
   (Application Programming Interface)
   を、システムの C ライブラリ (LFS の場合 Glibc)
   に対して提供する必要があります。 これを行うには Linux
   カーネルのソースに含まれる、さまざまな C ヘッダーファイルを「健全化
   (sanitizing)」して利用します。

   これより前に一度処理を行っていたとしても、不適切なファイルや誤った依存
   関係を残さないように、以下を処理します。
make mrproper

   そしてユーザーが利用するカーネルヘッダーファイルをテストし、ソースから
   抽出します。
   それらはいったん中間的なローカルディレクトリに置かれ、必要な場所にコピ
   ーされます。
   ターゲットディレクトリに既にあるファイルは削除されてからソースからの抽
   出処理が行われます。
   なおファイルの中にはカーネル開発者が隠しファイルとしているものがありま
   す。 それらは LFS
   では必要ないため、中間ディレクトリから削除します。
make headers_check
make INSTALL_HDR_PATH=dest headers_install
find dest/include \( -name .install -o -name
 ..install.cmd \) -delete
cp -rv dest/include/* /usr/include

6.7.2. Linux API ヘッダー の構成

   インストールヘッダー: /usr/include/asm/*.h,
   /usr/include/asm-generic/*.h,
   /usr/include/drm/*.h,
   /usr/include/linux/*.h,
   /usr/include/mtd/*.h,
   /usr/include/rdma/*.h,
   /usr/include/scsi/*.h,
   /usr/include/sound/*.h,
   /usr/include/video/*.h,
   /usr/include/xen/*.h
   インストールディレクトリ: /usr/include/asm,
   /usr/include/asm-generic,
   /usr/include/drm,
   /usr/include/linux,
   /usr/include/mtd,
   /usr/include/rdma,
   /usr/include/scsi,
   /usr/include/sound,
   /usr/include/video,
   /usr/include/xen

概略説明

   /usr/include/asm/*.h

   The Linux API ASM ヘッダーファイル

   /usr/include/asm-generic/*.h

   The Linux API ASM の汎用的なヘッダーファイル

   /usr/include/drm/*.h

   The Linux API DRM ヘッダーファイル

   /usr/include/linux/*.h

   The Linux API Linux ヘッダーファイル

   /usr/include/mtd/*.h

   The Linux API MTD ヘッダーファイル

   /usr/include/rdma/*.h

   The Linux API RDMA ヘッダーファイル

   /usr/include/scsi/*.h

   The Linux API SCSI ヘッダーファイル

   /usr/include/sound/*.h

   The Linux API Sound ヘッダーファイル

   /usr/include/video/*.h

   The Linux API Video ヘッダーファイル

   /usr/include/xen/*.h

   The Linux API Xen ヘッダーファイル

6.8. Man-pages-3.42

   Man-pages パッケージは 1,900
   以上のマニュアルページを提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 22 MB

6.8.1. Man-pages のインストール

   Man-pages をインストールするために以下を実行します。
make install

6.8.2. Man-pages の構成

   インストールファイル: さまざまな man ページ

概略説明

   man ページ

   C
   言語の関数、重要なデバイスファイル、重要な設定ファイルなどを説明します
   。

6.9. Glibc-2.16.0

   Glibc パッケージは主要な C ライブラリを提供します。
   このライブラリは基本的な処理ルーチンを含むもので、メモリ割り当て、ディ
   レクトリ走査、ファイルのオープン、クローズや入出力、文字列操作、パター
   ンマッチング、算術処理、等々があります。
   概算ビルド時間: 17.6 SBU
   必要ディスク容量: 852 MB

6.9.1. Glibc のインストール

注記

   LFS が取り扱っていないパッケージの中には GNU libiconv
   の導入を推奨しているものがあります。
   これは文字データのエンコーディングを変換する機能を持ちます。
   プロジェクトのホームページ
   ([660]http://www.gnu.org/software/l
   ibiconv/) には以下のような説明があります。
   「このライブラリは iconv() 関数を提供します。
   この関数を持たないシステムや、Unicode
   を取り扱うことができないシステムにて、この関数を利用することができます
   。」 Glibc が iconv() 関数を用意しており
   Unicode の変換を実現しているため LFS では
   libiconv は用いないことにします。

   Glibc
   は自らによってビルドされるものであり、そうして完全な形でインストールさ
   れます。 ただしコンパイラーのスペックファイルやリンカーは、まだ
   /tools ディレクトリを示したままです。
   スペックファイルやリンカーを再調整するのは Glibc
   をインストールした後になります。 これは Glibc の
   autoconf
   テストが失敗するためであり、最終的にきれいなビルド結果を得るという目的
   が達成できないためです。

   LFS 環境にて種々のビルド不備を引き起こす問題を修正します。
sed -i 's#<rpc/types.h>#"rpc/types.h"#' sunr
pc/rpc_clntout.c

   make install の実行時には
   test-installation.pl
   スクリプトが呼び出され、ここで作り出された新たな Glibc
   に対しての健全性テスト (sanity test) が実行されます。
   テストが失敗するバグが含まれるため、テストが正常実行できません。
   そこでこれを回避するために以下のコマンドを実行します。
sed -i '/test-installation.pl/d' Makefile

   ldd シェルスクリプトは Bash
   が定める文法書式により構成されています。
   デフォルトで記述されているインタープリターを /bin/bash
   に変更します。 BLFS ブックの [661]シェル (Shells)
   で説明しているように、別の /bin/sh
   がインストールされている場合もあるからです。
sed -i 's|@BASH@|/bin/bash|' elf/ldd.bash.in

   ネームサーバーの利用時に特定のアプリケーションがクラッシュする問題を解
   消します。
patch -Np1 -i ../glibc-2.16.0-res_query_fix-
1.patch

   Glibc
   のドキュメントではソースディレクトリ以外の専用のビルドディレクトリを作
   成することが推奨されています。
mkdir -v ../glibc-build
cd ../glibc-build

   Glibc をコンパイルするための準備をします。
../glibc-2.16.0/configure  \
    --prefix=/usr          \
    --disable-profile      \
    --enable-add-ons       \
    --enable-kernel=2.6.25 \
    --libexecdir=/usr/lib/glibc

   configure オプションの意味:

   --libexecdir=/usr/lib/glibc
          このオプションは pt_chown
          プログラムのインストール先を、デフォルトの
          /usr/libexec から
          /usr/lib/glibc に変更します。

   パッケージをコンパイルします。
make

重要項目

   本節における Glibc のテストスイートは極めて重要なものです。
   したがってどのような場合であっても必ず実行してください。

   全般にテストの中には失敗するものがありますが、以下に示すものであれば無
   視しても構いません。 ビルド結果のテストは以下のようにします。
make -k check 2>&1 | tee glibc-check-log
grep Error glibc-check-log

   posix/annexc と
   conform/run-conformtest
   のテストはおそらく失敗します。
   これは想定されていることであり無視することができます。 そもそも
   Glibc のテストスイートはホストシステムにある程度依存します。
   発生しがちな問題を以下に示します。
     * nptl/tst-clock2,
       nptl/tst-attr3,
       tst/tst-cputimer1,
       rt/tst-cpuclock2
       の各テストは失敗することがあります。
       失敗の理由は明確ではありません。
       ただ処理速度が原因してそれらが発生すると思われます。
     * math テストは、純正 Intel プロセッサーや AMD
       プロセッサーが最新のものではない場合に失敗することがあります。
     * 旧式のハードウェアや性能の低いハードウェア、あるいは負荷の高い
       システムにおいてテストを行うと、処理時間をオーバーしてタイムア
       ウトが発生しテストが失敗します。 make check
       コマンドにて TIMEOUTFACTOR
       をセットするものに修正すれば、それらのエラーは回避できると報告
       されています。 (例： TIMEOUTFACTOR=16
       make -k check)
     * 上記以外に特定のアーキテクチャーにてテストが失敗することが分か
       っています。 失敗するのは
       posix/bug-regex32,
       misc/tst-writev,
       elf/check-textrel,
       nptl/tst-getpid2,
       stdio-common/bug22 です。

   支障が出る話ではありませんが Glibc のインストール時には
   /etc/ld.so.conf
   ファイルが存在していないとして警告メッセージが出力されます。
   これをなくすために以下を実行します。
touch /etc/ld.so.conf

   パッケージをインストールします。
make install

   デフォルトではインストールされない、NIS と RPC
   に関するヘッダーファイルをインストールします。 これは glibc
   の再ビルド時や BLFS の各種パッケージにて必要となります。
cp -v ../glibc-2.16.0/sunrpc/rpc/*.h /usr/in
clude/rpc
cp -v ../glibc-2.16.0/sunrpc/rpcsvc/*.h /usr
/include/rpcsvc
cp -v ../glibc-2.16.0/nis/rpcsvc/*.h /usr/in
clude/rpcsvc

   システムを各種の言語に対応させるためのロケールは、今までのコマンドでは
   インストールされませんが、テストスイートにおいてロケールは必要ではあり
   ません。
   ただ将来的にはロケールがないことによって、重要なテストを逃してしまうか
   もしれません。

   各ロケールは localedef
   プログラムを使ってインストールします。 例えば以下に示す一つめの
   localedef では、キャラクターセットには依存しないロケール定義
   /usr/share/i18n/locales/cs_CZ
   とキャラクターマップ定義
   /usr/share/i18n/charmaps/UTF-8.gz
   とを結合させて
   /usr/lib/locale/locale-archive
   ファイルにその情報を付け加えます。
   以下のコマンドは、テストを成功させるために必要となる最低限のロケールを
   インストールするものです。
mkdir -pv /usr/lib/locale
localedef -i cs_CZ -f UTF-8 cs_CZ.UTF-8
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE
@euro
localedef -i de_DE -f UTF-8 de_DE.UTF-8
localedef -i en_GB -f UTF-8 en_GB.UTF-8
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i en_US -f UTF-8 en_US.UTF-8
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fa_IR -f UTF-8 fa_IR
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR
@euro
localedef -i fr_FR -f UTF-8 fr_FR.UTF-8
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i it_IT -f UTF-8 it_IT.UTF-8
localedef -i ja_JP -f EUC-JP ja_JP
localedef -i ru_RU -f KOI8-R ru_RU.KOI8-R
localedef -i ru_RU -f UTF-8 ru_RU.UTF-8
localedef -i tr_TR -f UTF-8 tr_TR.UTF-8
localedef -i zh_CN -f GB18030 zh_CN.GB18030

   上に加えて、あなたの国、言語、キャラクターセットを定めるためのロケール
   をインストールしてください。

   必要に応じて
   glibc-2.16.0/localedata/SUPPORTED
   に示されるすべてのロケールを同時にインストールしてください。(そこには
   上のロケールも含め、すべてのロケールが列記されています。)
   以下のコマンドによりそれを実現します。
   ただしこれには相当な処理時間を要します。
make localedata/install-locales

   さらに必要なら
   glibc-2.16.0/localedata/SUPPORTED
   ファイルに示されていない特殊なロケールは localedef
   コマンドを使って生成、インストールを行ってください。

6.9.2. Glibc の設定

   /etc/nsswitch.conf
   ファイルを作成しておく必要があります。 Glibc
   はこのファイルが無い場合や誤っている場合でもデフォルト設定を用いて動作
   しますが、ネットワーク環境下ではデフォルト設定であっても正しく動作しま
   せん。 またタイムゾーンの設定も必要になります。

   以下のコマンドを実行して /etc/nsswitch.conf
   ファイルを生成します。
cat > /etc/nsswitch.conf << "EOF"
# Begin /etc/nsswitch.conf

passwd: files
group: files
shadow: files

hosts: files dns
networks: files

protocols: files
services: files
ethers: files
rpc: files

# End /etc/nsswitch.conf
EOF

   タイムゾーンデータをインストールします。
tar -xf ../tzdata2012e.tar.gz

ZONEINFO=/usr/share/zoneinfo
mkdir -pv $ZONEINFO/{posix,right}

for tz in etcetera southamerica northamerica
 europe africa antarctica  \
          asia australasia backward pacificn
ew solar87 solar88 solar89 \
          systemv; do
    zic -L /dev/null   -d $ZONEINFO       -y
 "sh yearistype.sh" ${tz}
    zic -L /dev/null   -d $ZONEINFO/posix -y
 "sh yearistype.sh" ${tz}
    zic -L leapseconds -d $ZONEINFO/right -y
 "sh yearistype.sh" ${tz}
done

cp -v zone.tab iso3166.tab $ZONEINFO
zic -d $ZONEINFO -p America/New_York
unset ZONEINFO

   zic コマンドの意味

   zic -L /dev/null ...
          これは、うるう秒を含まない posix
          タイムゾーンデータを生成します。 これらは
          zoneinfo や zoneinfo/posix
          に収容するものとして適切なものです。 zoneinfo
          へは POSIX
          準拠のタイムゾーンデータを含めることが必要であり、こうし
          ておかないと数々のテストスイートにてエラーが発生してしま
          います。
          組み込みシステムなどでは容量の制約が厳しいため、タイムゾ
          ーンデータはあまり更新したくない場合があり、posix
          ディレクトリを設けなければ 1.9 MB
          もの容量を節約できます。
          ただしアプリケーションやテストスイートによっては、適正な
          結果が得られないかもしれません。

   zic -L leapseconds ...
          これは、うるう秒を含んだ正しいタイムゾーンデータを生成し
          ます。
          組み込みシステムなどでは容量の制約が厳しいため、タイムゾ
          ーンデータはあまり更新したくない場合や、さほど気にかけな
          い場合もあります。 right
          ディレクトリを省略することにすれば 1.9MB
          の容量を節約することができます。

   zic ... -p ...
          これは posixrules ファイルを生成します。
          ここでは New York を用います。 POSIX
          では、日中の保存時刻として US
          ルールに従うことを規程しているためです。

   ローカルなタイムゾーンの設定を行う１つの方法として、ここでは以下のスク
   リプトを実行します。
tzselect

   地域情報を設定するためにいくつか尋ねられるのでそれに答えます。
   このスクリプトはタイムゾーン名を表示します。(例えば
   America/Edmonton などです。)
   /usr/share/zoneinfo ディレクトリにはさらに
   Canada/Eastern や EST5EDT
   のようなタイムゾーンもあります。
   これらはこのスクリプトでは認識されませんが、利用することは可能です。

   以下のコマンドにより /etc/localtime
   ファイルを生成します。
cp -v --remove-destination /usr/share/zonein
fo/<xxx> \
    /etc/localtime

   <xxx> の部分は設定するタイムゾーンの名前 (例えば
   Canada/Eastern など) に置き換えてください。

   cp オプションの意味:

   --remove-destination
          このオプションは既に存在するシンボリックリンクを削除しま
          す。
          ここではシンボリックリンクを再生成するのではなく、ファイ
          ルのコピーを行います。 これは別パーティション内に
          /usr
          ディレクトリが存在するケースに対応するためです。
          シングルユーザーモードでシステムを起動する際にはこのこと
          が必要となります。

6.9.3. ダイナミックローダー の設定

   デフォルトにおいてダイナミックリンカー
   (/lib/ld-linux.so.2) は /lib ディレクトリと
   /usr/lib ディレクトリを検索しにいきます。
   これに従って、他のプログラムが実行される際に必要となるダイナミックライ
   ブラリがリンクされます。 もし /lib や /usr/lib
   以外のディレクトリにライブラリファイルがあるなら
   /etc/ld.so.conf
   ファイルに記述を追加して、ダイナミックローダーがそれらを探し出せるよう
   にしておくことが必要です。
   追加のライブラリが配置されるディレクトリとしては
   /usr/local/lib ディレクトリと /opt/lib
   ディレクトリという二つがよく利用されます。
   ダイナミックローダーの検索パスとして、それらのディレクトリを追加します
   。

   以下のコマンドを実行して /etc/ld.so.conf
   ファイルを新たに生成します。
cat > /etc/ld.so.conf << "EOF"
# Begin /etc/ld.so.conf
/usr/local/lib
/opt/lib

EOF

   必要がある場合には、ダイナミックローダーに対する設定として、他ディレク
   トリにて指定されるファイルをインクルードするようにもできます。
   通常は、そのファイル内の１行に、必要となるライブラリパスを記述します。
   このような設定を利用する場合には以下のようなコマンドを実行します。
cat >> /etc/ld.so.conf << "EOF"
# Add an include directory
include /etc/ld.so.conf.d/*.conf

EOF
mkdir /etc/ld.so.conf.d

6.9.4. Glibc の構成

   インストールプログラム: catchsegv, gencat,
   getconf, getent, iconv,
   iconvconfig, ldconfig, ldd,
   lddlibc4, locale, localedef,
   mtrace, nscd, pcprofiledump,
   pt_chown, rpcgen, sln, sotruss,
   sprof, tzselect, xtrace, zdump, zic
   インストールライブラリ: ld.so,
   libBrokenLocale.{a,so},
   libSegFault.so, libanl.{a,so},
   libbsd-compat.a, libc.{a,so},
   libc_nonshared.a, libcidn.so,
   libcrypt.{a,so}, libdl.{a,so},
   libg.a, libieee.a, libm.{a,so},
   libmcheck.a, libmemusage.so,
   libnsl.{a,so}, libnss_compat.so,
   libnss_dns.so, libnss_files.so,
   libnss_hesiod.so, libnss_nis.so,
   libnss_nisplus.so, libpcprofile.so,
   libpthread.{a,so},
   libpthread_nonshared.a,
   libresolv.{a,so}, librpcsvc.a,
   librt.{a,so}, libthread_db.so,
   libutil.{a,so}
   インストールディレクトリ: /usr/include/arpa,
   /usr/include/bits,
   /usr/include/gnu, /usr/include/net,
   /usr/include/netash,
   /usr/include/netatalk,
   /usr/include/netax25,
   /usr/include/neteconet,
   /usr/include/netinet,
   /usr/include/netipx,
   /usr/include/netiucv,
   /usr/include/netpacket,
   /usr/include/netrom,
   /usr/include/netrose,
   /usr/include/nfs,
   /usr/include/protocols,
   /usr/include/rpc,
   /usr/include/rpcsvc,
   /usr/include/sys, /usr/lib/audit,
   /usr/lib/gconv, /usr/lib/glibc,
   /usr/lib/locale, /usr/share/i18n,
   /usr/share/zoneinfo

概略説明

   catchsegv

   プログラムがセグメンテーションフォールトにより停止した時に、スタックト
   レースを生成するために利用します。

   gencat

   メッセージカタログを生成します。

   getconf

   ファイルシステムに固有の変数に設定された値を表示します。

   getent

   管理データベースから設定項目を取得します。

   iconv

   キャラクターセットを変換します。

   iconvconfig

   高速ロードができる iconv モジュール設定ファイルを生成します。

   ldconfig

   プログラム実行時におけるダイナミックリンカーのリンクを設定します。

   ldd

   指定したプログラムまたは共有ライブラリが必要としている共有ライブラリを
   表示します。

   lddlibc4

   オブジェクトファイルを使って ldd
   コマンドを補助します。[訳註：意味不明]

   locale

   現在のロケールに対するさまざまな情報を表示します。

   localedef

   ロケールの設定をコンパイルします。

   mtrace

   メモリトレースファイル (memory trace file)
   を読み込んで解釈します。 そして可読可能な書式で出力します。

   nscd

   一般的なネームサービスへの変更要求のキャッシュを提供するデーモン。

   pcprofiledump

   PC プロファイリングによって生成される情報をダンプします。

   pt_chown

   grantpt コマンドのヘルパープログラム。
   所有者、グループ、スレーブ擬似端末 (slave pseudo
   terminal) へのアクセスパーミッションをそれぞれ設定します。

   rpcgen

   リモートプロシジャーコール (Remote Procedure
   Call; RPC) を実装するための C 言語コードを生成します。

   sln

   スタティックなリンクを行う ln プログラム。

   sotruss

   指定されたコマンドの共有ライブラリ内のプロシジャーコールをトレースしま
   す。

   sprof

   共有オブジェクトのプロファイリングデータを読み込んで表示します。

   tzselect

   ユーザーに対してシステムの設置地域を問合せ、対応するタイムゾーンの記述
   を表示します。

   xtrace

   プログラム内にて現在実行されている関数を表示することで、そのプログラム
   の実行状況を追跡します。

   zdump

   タイムゾーンをダンプします。

   zic

   タイムゾーンコンパイラー。

   ld.so

   共有ライブラリのためのヘルパープログラム。

   libBrokenLocale

   Glibc
   が内部で利用するもので、異常が発生しているプログラムを見つけ出します。
   (例えば Motif アプリケーションなど) 詳しくは
   glibc-2.16.0/locale/broken_cur_max.
   c に書かれたコメントを参照してください。

   libSegFault

   セグメンテーションフォールトのシグナルハンドラー。 catchsegv
   が利用します。

   libanl

   非同期の名前解決 (asynchronous name lookup)
   ライブラリ。

   libbsd-compat

   特定の BSD (Berkeley Software
   Distribution) プログラムを Linux
   上で動作させるために必要な可搬ライブラリを提供します。

   libc

   主要な C ライブラリ。

   libcidn

   Glibc が内部的に利用するもので getaddrinfo()
   関数によって国際化ドメイン名 (internationalized
   domain names) を取り扱います。

   libcrypt

   暗号化ライブラリ。

   libdl

   ダイナミックリンクのインターフェースライブラリ。

   libg

   関数を全く含まないダミーのライブラリ。 かつては g++
   のランタイムライブラリであったものです。

   libieee

   このモジュールをリンクすると、数学関数におけるエラー制御方法を
   IEEE (the Institute of Electrical
   and Electronic Engineers)
   が定義するものに従うようになります。 デフォルトは POSIX.1
   エラー制御方法です。

   libm

   数学ライブラリ。

   libmcheck

   このライブラリにリンクした場合、メモリ割り当てのチェック機能を有効にし
   ます。

   libmemusage

   memusage
   コマンドが利用するもので、プログラムのメモリ使用に関する情報を収集しま
   す。

   libnsl

   ネットワークサービスライブラリ。

   libnss

   NSS (Name Service Switch) ライブラリ。
   ホスト、ユーザー名、エイリアス、サービス、プロトコルなどの名前解決を行
   う関数を提供します。

   libpcprofile

   プロファイリングを行う関数を提供するもので、特定のソース行に費やされる
   CPU 時間を追跡するために利用します。

   libpthread

   POSIX スレッドライブラリ。

   libresolv

   インターネットドメインネームサーバーに対しての、パケットの生成、送信、
   解析を行う関数を提供します。

   librpcsvc

   さまざまな RPC サービスを実現する関数を提供します。

   librt

   POSIX.1b リアルタイム拡張 (Realtime
   Extension)
   にて既定されている、インターフェースをほぼ網羅した関数を提供します。

   libthread_db

   マルチスレッドプログラム用のデバッガーを構築するための有用な関数を提供
   します。

   libutil

   数多くの Unix
   ユーティリティにて利用される「標準」関数を提供します。

6.10. ツールチェーンの調整

   最終的な C ライブラリがこれまでに構築できました。
   ここでツールチェーンの調整を行います。
   これを行うことで、新たに生成したプログラムが新たに生成したライブラリに
   リンクされます。

   まず /tools
   ディレクトリにあるリンカーのバックアップをとっておき、第5章にて作成し
   た調整済みリンカーに置き換えます。
   /tools/$(gcc-dumpmachine)/bin
   ディレクトリにあるリンカーに対してのシンボリックリンクも正しく生成して
   おきます。
mv -v /tools/bin/{ld,ld-old}
mv -v /tools/$(gcc -dumpmachine)/bin/{ld,ld-
old}
mv -v /tools/bin/{ld-new,ld}
ln -sv /tools/bin/ld /tools/$(gcc -dumpmachi
ne)/bin/ld

   次に GCC
   スペックファイルを修正し、新しいダイナミックリンカーを指し示すようにし
   ます。 単純に 「/tools」
   という記述を取り除けば、ダイナミックリンカーへの正しい参照となります。
   またスペックファイルを修正することで GCC
   がヘッダーファイル、および Glibc
   の起動ファイルを適切に探し出せるようになります。 以下の sed
   によりこれを実現します。
gcc -dumpspecs | sed -e 's@/tools@@g' \
    -e '/\*startfile_prefix_spec:/{n;s@.*@/u
sr/lib/ @}' \
    -e '/\*cpp:/{n;s@$@ -isystem /usr/includ
e@}' > \
    `dirname $(gcc --print-libgcc-file-name)
`/specs

   スペックファイルの内容を実際に確認して、今変更した内容が正しく反映され
   ていることを確認しておいてください。

   この時点において、調整したツールチェーンの基本的な
   (コンパイルやリンクなどの)
   機能が正しく動作していることを確認する必要があります。
   これを行うために以下の健全性検査を実行します。
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

   問題なく動作した場合はエラーがなかったということで、最後のコマンドから
   出力される結果は以下のようになるはずです。
   (ダイナミックリンカーの名前はプラットフォームによって違っているかもし
   れません。)
[Requesting program interpreter: /lib/ld-lin
ux.so.2]

   ダイナミックリンカーのディレクトリは、今度は /lib
   となっているはずです。

   ここで起動ファイルが正しく用いられていることを確認します。
grep -o '/usr/lib.*/crt[1in].*succeeded' dum
my.log

   問題なく動作した場合はエラーがなかったということで、上のコマンドの出力
   は以下のようになるはずです。
/usr/lib/crt1.o succeeded
/usr/lib/crti.o succeeded
/usr/lib/crtn.o succeeded

   コンパイラーが正しいヘッダーファイルを読み取っているかどうかを検査しま
   す。
grep -B1 '^ /usr/include' dummy.log

   上のコマンドは正常に終了すると、以下の出力を返します。
#include <...> search starts here:
 /usr/include

   次に、新たなリンカーが正しいパスを検索して用いられているかどうかを検査
   します。
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|;
|\n|g'

   問題なく動作した場合はエラーがなかったということで、最後のコマンドの出
   力は以下のようになるはずです。
   (作業するプラットフォームに応じて「三つの組 (target
   triplet)」の表記は異なります。)
SEARCH_DIR("/tools/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/lib")
SEARCH_DIR("/lib");

   次に libc が正しく用いられていることを確認します。
grep "/lib.*/libc.so.6 " dummy.log

   問題なく動作した場合はエラーがなかったということで、最後のコマンドの出
   力は以下のようになるはずです。 (64 ビットマシンであれば
   lib64 ディレクトリとなるはずです。)
attempt to open /lib/libc.so.6 succeeded

   最後に GCC
   が正しくダイナミックリンカーを用いているかを確認します。
grep found dummy.log

   問題なく動作した場合はエラーがなかったということで、上のコマンドの出力
   は以下のようになるはずです。
   (ダイナミックリンカーの名前はプラットフォームによって違っているかもし
   れません。 また 64 ビットマシンであれば lib64
   ディレクトリとなるはずです。)
found ld-linux.so.2 at /lib/ld-linux.so.2

   出力結果が上と異なっていたり、出力が全く得られなかったりした場合は、何
   かが根本的に間違っているということです。
   どこに問題があるのか調査、再試行を行って解消してください。
   最もありがちな理由は、スペックファイルの修正を誤っていることです。
   問題を残したままこの先には進まないでください。

   すべてが正しく動作したら、テストに用いたファイルを削除します。
rm -v dummy.c a.out dummy.log

6.11. Zlib-1.2.7

   Zlib パッケージは、各種プログラムから呼び出される、圧縮、伸張
   (解凍) を行う関数を提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 3.9 MB

6.11.1. Zlib のインストール

   Zlib をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

   共有ライブラリは /lib に移す必要があります。 またそれに合わせて
   /usr/lib にある .so ファイルを再生成する必要があります。
mv -v /usr/lib/libz.so.* /lib
ln -sfv ../../lib/libz.so.1.2.7 /usr/lib/lib
z.so

6.11.2. Zlib の構成

   インストールライブラリ: libz.{a,so}

概略説明

   libz

   各種プログラムから呼び出される、圧縮、伸張 (解凍)
   を行う関数を提供します。

6.12. File-5.11

   File
   パッケージは、指定されたファイルの種類を決定するユーティリティを提供し
   ます。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 12.5 MB

6.12.1. File のインストール

   File をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

6.12.2. File の構成

   インストールプログラム: file
   インストールライブラリ: libmagic.{a,so}

概略説明

   file

   指定されたファイルの種類判別を行います。
   処理にあたってはいくつかのテスト、すなわちファイルシステムテスト、マジ
   ックナンバーテスト、言語テストを行います。

   libmagic

   マジックナンバーによりファイル判別を行うルーチンを含みます。 file
   プログラムがこれを利用しています。

6.13. Binutils-2.22

   Binutils
   パッケージは、リンカーやアセンブラーなどのようにオブジェクトファイルを
   取り扱うツール類を提供します。
   概算ビルド時間: 1.9 SBU
   必要ディスク容量: 343 MB

6.13.1. Binutils のインストール

   PTY が chroot
   環境内にて正しく作動しているかどうかを確認するために、以下の簡単なテス
   トを実行します。
expect -c "spawn ls"

   上のコマンドは以下を出力するはずです。
spawn ls

   上のような出力ではなく、以下のような出力メッセージが含まれていたら、P
   TY の動作が適切に構築できていないことを示しています。
   Binutils や GCC
   のテストスイートを実行する前に、この症状は解消しておく必要があります。
The system has no more ptys.
Ask your system administrator to create more
.

   standards.info
   ファイルの日付が古いため、インストールしないことにします。
   より新しいものが Autoconf
   の作業を通じてインストールされます。
rm -fv etc/standards.info
sed -i.bak '/^INFO/s/standards.info //' etc/
Makefile.in

   コンパイラーの最適化を行った場合にビルドに失敗するため、これを修正する
   パッチを適用します。
patch -Np1 -i ../binutils-2.22-build_fix-1.p
atch

   Binutils のドキュメントによると Binutils
   のビルドにあたっては、ソースディレクトリ以外の専用のビルドディレクトリ
   を作成することが推奨されています。
mkdir -v ../binutils-build
cd ../binutils-build

   Binutils をコンパイルするための準備をします。
../binutils-2.22/configure --prefix=/usr --e
nable-shared

   パッケージをコンパイルします。
make tooldir=/usr

   make パラメーターの意味:

   tooldir=/usr
          通常 tooldir
          (実行ファイルが最終的に配置されるディレクトリ) は
          $(exec_prefix)/$(target_alia
          s) に設定されています。 x86_64 マシンでは
          /usr/x86_64-unknown-linux-gn
          u となります。 LFS
          は自分で設定を定めていくシステムですから /usr
          ディレクトリ配下に CPU
          ターゲットを特定するディレクトリを設ける必要がありません
          。
          $(exec_prefix)/$(target_alia
          s)
          というディレクトリ構成は、クロスコンパイル環境において必
          要となるものです。
          (例えばパッケージをコンパイルするマシンが Intel
          であり、そこから PowerPC
          マシン用の実行コードを生成するような場合です。)

重要項目

   本節における Binutils
   のテストスイートは極めて重要なものです。
   したがってどのような場合であっても必ず実行してください。

   コンパイル結果をテストします。
make -k check

   パッケージをインストールします。
make tooldir=/usr install

   libiberty ヘッダーファイルをインストールします。
   他のパッケージがこれを必要としている場合があるためです。
cp -v ../binutils-2.22/include/libiberty.h /
usr/include

6.13.2. Binutils の構成

   インストールプログラム: addr2line, ar, as,
   c++filt, elfedit, gprof, ld,
   ld.bfd, nm, objcopy, objdump,
   ranlib, readelf, size, strings,
   strip
   インストールライブラリ: libiberty.a,
   libbfd.{a,so}, libopcodes.{a,so}
   インストールディレクトリ: /usr/lib/ldscripts

概略説明

   addr2line

   指定された実行モジュール名とアドレスに基づいて、プログラム内のアドレス
   をファイル名と行番号に変換します。
   これは実行モジュール内のデバッグ情報を利用します。
   特定のアドレスがどのソースファイルと行番号に該当するかを確認するもので
   す。

   ar

   アーカイブの生成、修正、抽出を行います。

   as

   gcc
   の出力結果をアセンブルして、オブジェクトファイルとして生成するアセンブ
   ラー。

   c++filt

   リンカーから呼び出されるもので C++ と Java のシンボルを複合
   (demangle)
   し、オーバーロード関数が破壊されることを回避します。

   elfedit

   ELF ファイルの ELF ヘッダーを更新します。

   gprof

   コールグラフ (call graph)
   のプロファイルデータを表示します。

   ld

   複数のオブジェクトファイルやアーカイブファイルから、一つのファイルを生
   成するリンカー。 データの再配置やシンボル参照情報の結合を行います。

   ld.bfd

   ld へのハードリンク。

   nm

   指定されたオブジェクトファイル内のシンボル情報を一覧表示します。

   objcopy

   オブジェクトファイルの変換を行います。

   objdump

   指定されたオブジェクトファイルの各種情報を表示します。
   さまざまなオプションを用いることで特定の情報表示が可能です。
   表示される情報は、コンパイル関連ツールを開発する際に有用なものです。

   ranlib

   アーカイブの内容を索引として生成し、それをアーカイブに保存します。
   索引は、アーカイブのメンバーによって定義されるすべてのシンボルの一覧に
   より構成されます。
   アーカイブのメンバーとは再配置可能なオブジェクトファイルのことです。

   readelf

   ELF フォーマットのバイナリファイルの情報を表示します。

   size

   指定されたオブジェクトファイルのセクションサイズと合計サイズを一覧表示
   します。

   strings

   指定されたファイルに対して、印字可能な文字の並びを出力します。
   文字は所定の長さ (デフォルトでは 4文字)
   以上のものが対象となります。
   オブジェクトファイルの場合デフォルトでは、初期化セクションとロードされ
   るセクションからのみ文字列を抽出し出力します。
   これ以外の種類のファイルの場合は、ファイル全体が走査されます。

   strip

   オブジェクトファイルからデバッグシンボルを取り除きます。

   libiberty

   以下に示すような数多くの GNU
   プログラムが利用する処理ルーチンを提供します。 getopt、
   obstack、 strerror、 strtol、 strtoul

   libbfd

   バイナリファイルディスクリプター (Binary File
   Descriptor) ライブラリ。

   libopcodes

   opcodes (オペレーションコード;
   プロセッサー命令を「認識可能なテキスト」として表現したもの)
   を取り扱うライブラリ。 このライブラリは objdump
   などのように、ビルド作業にて利用するユーティリティプログラムが利用して
   います。

6.14. GMP-5.0.5

   GMP パッケージは数値演算ライブラリを提供します。
   このライブラリには任意精度演算 (arbitrary
   precision arithmetic)
   を行う有用な関数が含まれます。
   概算ビルド時間: 1.2 SBU
   必要ディスク容量: 50 MB

6.14.1. GMP のインストール

注記

   32 ビット x86 CPU にて環境構築する際に、64
   ビットコードを扱う CPU 環境であって かつ CFLAGS
   を指定していると、本パッケージの configure スクリプトは
   64 ビット用の処理を行い失敗します。
   これを回避するには、以下のように処理してください。
ABI=32 ./configure ...

   GMP をコンパイルするための準備をします。
./configure --prefix=/usr --enable-cxx --ena
ble-mpbsd

   configure オプションの意味:

   --enable-cxx
          C++ サポートを有効にします。

   --enable-mpbsd
          Berkeley MP
          に対する互換ライブラリをビルドします。

   パッケージをコンパイルします。
make

重要項目

   本節における GMP のテストスイートは極めて重要なものです。
   したがってどのような場合であっても必ず実行してください。

   テストを実行します。
make check 2>&1 | tee gmp-check-log

   166個のテストが完了することを確認してください。
   テスト結果は以下のコマンドにより確認することができます。
awk '/tests passed/{total+=$2} ; END{print t
otal}' gmp-check-log

   パッケージをインストールします。
make install

   必要ならドキュメントをインストールします。
mkdir -v /usr/share/doc/gmp-5.0.5
cp    -v doc/{isa_abi_headache,configuration
} doc/*.html \
         /usr/share/doc/gmp-5.0.5

6.14.2. GMP の構成

   インストールライブラリ: libgmp.{a,so},
   libgmpxx.{a,so}, libmp.{a,so}
   インストールディレクトリ:
   /usr/share/doc/gmp-5.0.5

概略説明

   libgmp

   精度演算関数 (precision math functions)
   を提供します。

   libgmpxx

   C++ 用の精度演算関数を提供します。

   libmp

   Berkley MP 演算関数を提供します。

6.15. MPFR-3.1.1

   MPFR パッケージは倍精度演算 (multiple
   precision) の関数を提供します。
   概算ビルド時間: 0.8 SBU
   必要ディスク容量: 27 MB

6.15.1. MPFR のインストール

   MPFR をコンパイルするための準備をします。
./configure  --prefix=/usr        \
             --enable-thread-safe \
             --docdir=/usr/share/doc/mpfr-3.
1.1

   パッケージをコンパイルします。
make

重要項目

   本節における MPFR のテストスイートは極めて重要なものです。
   したがってどのような場合であっても必ず実行してください。

   すべてのテストが正常に完了していることを確認してください。
make check

   パッケージをインストールします。
make install

   ドキュメントをインストールします。
make html
make install-html

6.15.2. MPFR の構成

   インストールライブラリ: libmpfr.{a,so}
   インストールディレクトリ:
   /usr/share/doc/mpfr-3.1.1

概略説明

   libmpfr

   倍精度演算の関数を提供します。

6.16. MPC-1.0

   MPC
   パッケージは複素数演算を可能とするライブラリを提供するものです。
   高い精度と適切な丸め (rounding) を実現します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 10.2 MB

6.16.1. MPC のインストール

   MPC をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

6.16.2. MPC の構成

   インストールライブラリ: libmpc.{a,so}

概略説明

   libmpc

   複素数による演算関数を提供します。

6.17. GCC-4.7.1

   GCC パッケージは C コンパイラーや C++ コンパイラーなどの
   GNU コンパイラーコレクションを提供します。
   概算ビルド時間: 53.5 SBU
   必要ディスク容量: 2.0 GB

6.17.1. GCC のインストール

   sed による置換を行って libiberty.a
   をインストールしないようにします。 libiberty.a は
   Binutils が提供するものを利用することにします。
sed -i 's/install_to_$(INSTALL_DEST) //' lib
iberty/Makefile.in

   [662]5.9.「GCC-4.7.1 - 2回め」にて行ったように
   sed を使って以下のようにコンパイラーフラグ
   -fomit-frame-pointer
   を強制的に指定し、一貫したコンパイルを実現します。
case `uname -m` in
  i?86) sed -i 's/^T_CFLAGS =$/& -fomit-fram
e-pointer/' gcc/Makefile.in ;;
esac

   また Makefile のチェックにおける誤りを修正します。
sed -i -e /autogen/d -e /check.sh/d fixinclu
des/Makefile.in

   GCC のドキュメントによると GCC
   のビルドにあたっては、ソースディレクトリ以外の専用のビルドディレクトリ
   を作成することが推奨されています。
mkdir -v ../gcc-build
cd ../gcc-build

   GCC をコンパイルするための準備をします。
../gcc-4.7.1/configure --prefix=/usr
    \
                       --libexecdir=/usr/lib
    \
                       --enable-shared
    \
                       --enable-threads=posi
x   \
                       --enable-__cxa_atexit
    \
                       --enable-clocale=gnu
    \
                       --enable-languages=c,
c++ \
                       --disable-multilib
    \
                       --disable-bootstrap
    \
                       --with-system-zlib

   他のプログラミング言語は、また別の依存パッケージなどを要しますが、現時
   点では準備できていません。 GCC
   がサポートする他のプログラム言語の構築方法については BLFS
   ブックの説明を参照してください。

   Configure オプションの意味:

   --with-system-zlib
          このオプションはシステムに既にインストールされている
          Zlib
          ライブラリをリンクすることを指示するものであり、内部にて
          作成されるライブラリを用いないようにします。

   パッケージをコンパイルします。
make

重要項目

   本節における GCC のテストスイートは極めて重要なものです。
   したがってどのような場合であっても必ず実行してください。

   GCC テストスイートの中で、スタックを使い果たすものがあります。
   そこでテスト実施にあたり、スタックサイズを増やします。
ulimit -s 32768

   コンパイル結果をテストします。
   エラーが発生しても停止しないようにします。
make -k check

   テスト結果を確認するために以下を実行します。
../gcc-4.7.1/contrib/test_summary

   テスト結果の概略のみ確認したい場合は、出力結果をパイプ出力して
   grep -A7 Summ を実行してください。

   テスト結果については
   [663]http://www.linuxfromscratch.or
   g/lfs/build-logs/7.2/ と
   [664]http://gcc.gnu.org/ml/gcc-test
   results/ にある情報と比較することができます。

   テストに失敗することがありますが、これを回避することはできません。
   GCC
   の開発者はこの問題を認識していますが、まだ解決していない状況です。
   特に libmudflap のテストは大いに問題があり GCC
   のバグとして知られています。
   ([665]http://gcc.gnu.org/bugzilla/s
   how_bug.cgi?id=20003) この URL
   に示されている結果と大きく異なっていなかったら、問題はありませんので先
   に進んでください。

   パッケージをインストールします。
make install

   パッケージの中には C プリプロセッサーが /lib
   ディレクトリにあることを前提にしているものがあります。
   そのようなものに対応するため、以下のシンボリックリンクを作成します。
ln -sv ../usr/bin/cpp /lib

   パッケージの多くは C コンパイラーとして cc を呼び出しています。
   これに対応するため、以下のシンボリックリンクを作成します。
ln -sv gcc /usr/bin/cc

   最終的なツールチェーンが出来上がりました。
   ここで再びコンパイルとリンクが正しく動作することを確認することが必要で
   す。 そこで本節の初めの方で実施した健全性テストをここでも実施します。
echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

   問題なく動作した場合はエラーがなかったということで、最後のコマンドから
   出力される結果は以下のようになるはずです。
   (ダイナミックリンカーの名前はプラットフォームによって違っているかもし
   れません。)
[Requesting program interpreter: /lib/ld-lin
ux.so.2]

   ここで起動ファイルが正しく用いられていることを確認します。
grep -o '/usr/lib.*/crt[1in].*succeeded' dum
my.log

   問題なく動作した場合はエラーがなかったということで、上のコマンドの出力
   は以下のようになるはずです。
/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../.
./crt1.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../.
./crti.o succeeded
/usr/lib/gcc/i686-pc-linux-gnu/4.7.1/../../.
./crtn.o succeeded

   作業しているマシンアーキテクチャーによっては、上の結果が微妙に異なるか
   もしれません。 その違いは、たいていは /usr/lib/gcc
   の次のディレクトリ名にあります。 作業マシンが 64
   ビット機である場合、ディレクトリ名の後ろの方に lib64
   という名が出てくることになります。 ここで確認すべき重要なポイントは
   gcc が /usr/lib ディレクトリ配下に三つのファイル
   crt*.o を見つけ出しているかどうかです。

   コンパイラーが正しいヘッダーファイルを読み取っているかどうかを検査しま
   す。
grep -B4 '^ /usr/include' dummy.log

   上のコマンドは正常に終了すると、以下の出力を返します。
#include <...> search starts here:
 /usr/local/include
 /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/includ
e
 /usr/lib/gcc/i686-pc-linux-gnu/4.7.1/includ
e-fixed
 /usr/include

   もう一度触れておきますが、プラットフォームの「三つの組 (target
   triplet)」の次にくるディレクトリ名は CPU
   アーキテクチャーにより異なる点に注意してください。

注記

   GCC のバージョン 4.3.0 では limits.h
   ファイルを無条件に include-fixed
   ディレクトリにインストールします。
   したがってそのディレクトリは存在していなければなりません。

   次に、新たなリンカーが正しいパスを検索して用いられているかどうかを検査
   します。
grep 'SEARCH.*/usr/lib' dummy.log |sed 's|;
|\n|g'

   問題なく動作した場合はエラーがなかったということで、最後のコマンドの出
   力は以下のようになるはずです。
   (作業するプラットフォームに応じて「三つの組 (target
   triplet)」の表記は異なります。)
SEARCH_DIR("/usr/i686-pc-linux-gnu/lib")
SEARCH_DIR("/usr/local/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("/usr/lib");

   64 ビットシステムではさらにいくつかのディレクトリが出力されます。
   例えば x86_64 マシンであれば、その出力は以下のようになります。
SEARCH_DIR("/usr/x86_64-unknown-linux-gnu/li
b64")
SEARCH_DIR("/usr/local/lib64")
SEARCH_DIR("/lib64")
SEARCH_DIR("/usr/lib64")
SEARCH_DIR("/usr/x86_64-unknown-linux-gnu/li
b")
SEARCH_DIR("/usr/local/lib")
SEARCH_DIR("/lib")
SEARCH_DIR("/usr/lib");

   次に libc が正しく用いられていることを確認します。
grep "/lib.*/libc.so.6 " dummy.log

   問題なく動作した場合はエラーがなかったということで、最後のコマンドの出
   力は以下のようになるはずです。 (64 ビットマシンであれば
   lib64 ディレクトリとなるはずです。)
attempt to open /lib/libc.so.6 succeeded

   最後に GCC
   が正しくダイナミックリンカーを用いているかを確認します。
grep found dummy.log

   問題なく動作した場合はエラーがなかったということで、上のコマンドの出力
   は以下のようになるはずです。
   (ダイナミックリンカーの名前はプラットフォームによって違っているかもし
   れません。 また 64 ビットマシンであれば lib64
   ディレクトリとなるはずです。)
found ld-linux.so.2 at /lib/ld-linux.so.2

   出力結果が上と異なっていたり、出力が全く得られなかったりした場合は、何
   かが根本的に間違っているということです。
   どこに問題があるのか調査、再試行を行って解消してください。
   最もありがちな理由は、スペックファイルの修正を誤っていることです。
   問題を残したままこの先には進まないでください。

   すべてが正しく動作したら、テストに用いたファイルを削除します。
rm -v dummy.c a.out dummy.log

   最後に誤ったディレクトリにあるファイルを移動します。
mkdir -pv /usr/share/gdb/auto-load/usr/lib
mv -v /usr/lib/*gdb.py /usr/share/gdb/auto-l
oad/usr/lib

6.17.2. GCC の構成

   インストールプログラム: c++, cc (gcc へのリンク),
   cpp, g++, gcc, gccbug, gcov
   インストールライブラリ: libgcc.a, libgcc_eh.a,
   libgcc_s.so, libgcov.a,
   libgomp.{a,so}, liblto_plugin.so,
   libmudflap.{a,so},
   libmudflapth.{a,so},
   libquadmath.{a,so}, libssp.{a,so},
   libssp_nonshared.a,
   libstdc++.{a,so}, libsupc++.a
   インストールディレクトリ: /usr/include/c++,
   /usr/lib/gcc, /usr/share/gcc-4.7.1

概略説明

   c++

   C++ コンパイラー

   cc

   C コンパイラー

   cpp

   C プリプロセッサー。
   コンパイラーがこれを利用して、ソース内に記述された
   #include、#define
   や同じようなステートメントを展開します。

   g++

   C++ コンパイラー

   gcc

   C コンパイラー

   gccbug

   有用なバグ報告の生成を手助けするスクリプト。

   gcov

   カバレッジテストツール。
   プログラムを解析して、最適化が最も効果的となるのはどこかを特定します。

   libgcc

   gcc のランタイムサポートを提供します。

   libgcov

   GCC
   のプロファイリングを有効にした場合にこのライブラリがリンクされます。

   libgomp

   C/C++ や Fortran
   において、マルチプラットフォームでの共有メモリ並行プログラミング
   (multi-platform shared-memory
   parallel programming) を行うための、GNU
   による OpenMP API インプリメンテーションです。

   liblto_plugin

   GCC のリンク時における最適化 (Link Time
   Optimization; LTO) プラグイン。
   コンパイルユニット間での最適化を実現します。

   libmudflap

   GCC の配列境界チェック (bounds checking)
   機能をサポートするルーチンを提供します。

   libquadmath

   GCC の4倍精度数値演算 (Quad Precision Math)
   ライブラリ API

   libssp

   GCC のスタック破壊を防止する (stack-smashing
   protection) 機能をサポートするルーチンを提供します。

   libstdc++

   標準 C++ ライブラリ

   libsupc++

   C++ プログラミング言語のためのサポートルーチンを提供します。

6.18. Sed-4.2.1

   Sed パッケージはストリームエディターを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 6.7 MB

6.18.1. Sed のインストール

   まずは縮退テスト (regression test)
   の不備を修正します。
patch -Np1 -i ../sed-4.2.1-testsuite_fixes-1
.patch

   Sed をコンパイルするための準備をします。
./configure --prefix=/usr --bindir=/bin --ht
mldir=/usr/share/doc/sed-4.2.1

   configure オプションの意味

   --htmldir
          HTML
          ドキュメントをインストールするディレクトリを指定します。

   パッケージをコンパイルします。
make

   HTML ドキュメントを生成します。
make html

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

   HTML ドキュメントをインストールします。
make -C doc install-html

6.18.2. Sed の構成

   インストールプログラム: sed
   インストールディレクトリ:
   /usr/share/doc/sed-4.2.1

概略説明

   sed

   テキストファイルを一度の処理でフィルタリングし変換します。

6.19. Bzip2-1.0.6

   Bzip2 パッケージはファイル圧縮、伸長 (解凍)
   を行うプログラムを提供します。
   テキストファイルであれば、これまでよく用いられてきた gzip
   に比べて bzip2 の方が圧縮率の高いファイルを生成できます。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 6.9 MB

6.19.1. Bzip2 のインストール

   本パッケージのドキュメントをインストールするためにパッチを適用します。
patch -Np1 -i ../bzip2-1.0.6-install_docs-1.
patch

   以下のコマンドによりシンボリックリンクを相対的なものとしてインストール
   します。
sed -i 's@\(ln -s -f \)$(PREFIX)/bin/@\1@' M
akefile

   man ページのインストール先を正しいディレクトリに修正します。
sed -i "s@(PREFIX)/man@(PREFIX)/share/man@g"
 Makefile

   Bzip2 をコンパイルするための準備をします。
make -f Makefile-libbz2_so
make clean

   make パラメーターの意味:

   -f Makefile-libbz2_so
          このパラメーターは Bzip2 のビルドにあたって通常の
          Makefile ファイルではなく
          Makefile-libbz2_so
          ファイルを利用することを指示します。
          これはダイナミックライブラリ libbz2.so
          ライブラリをビルドし、Bzip2
          の各種プログラムをこれにリンクします。

   パッケージのコンパイルとテストを行います。
make

   パッケージをインストールします。
make PREFIX=/usr install

   共有化された bzip2 実行モジュールを /bin
   ディレクトリにインストールします。
   また必要となるシンボリックリンクを生成し不要なものを削除します。
cp -v bzip2-shared /bin/bzip2
cp -av libbz2.so* /lib
ln -sv ../../lib/libbz2.so.1.0 /usr/lib/libb
z2.so
rm -v /usr/bin/{bunzip2,bzcat,bzip2}
ln -sv bzip2 /bin/bunzip2
ln -sv bzip2 /bin/bzcat

6.19.2. Bzip2 の構成

   インストールプログラム: bunzip2 (bzip2 へのリンク),
   bzcat (bzip2 へのリンク), bzcmp (bzdiff
   へのリンク), bzdiff, bzegrep (bzgrep
   へのリンク), bzfgrep (bzgrep へのリンク),
   bzgrep, bzip2, bzip2recover, bzless
   (bzmore へのリンク), bzmore
   インストールライブラリ: libbz2.{a,so}
   インストールディレクトリ:
   /usr/share/doc/bzip2-1.0.6

概略説明

   bunzip2

   bzip2 で圧縮されたファイルを解凍します。

   bzcat

   解凍結果を標準出力に出力します。

   bzcmp

   bzip2 で圧縮されたファイルに対して cmp を実行します。

   bzdiff

   bzip2 で圧縮されたファイルに対して diff を実行します。

   bzegrep

   bzip2 で圧縮されたファイルに対して egrep を実行します。

   bzfgrep

   bzip2 で圧縮されたファイルに対して fgrep を実行します。

   bzgrep

   bzip2 で圧縮されたファイルに対して grep を実行します。

   bzip2

   ブロックソート法 (バロウズ-ホイラー変換)
   とハフマン符号化法を用いてファイル圧縮を行います。
   圧縮率は、従来用いられてきた「Lempel-Ziv」アルゴリズムによる
   もの、例えば gzip コマンドによるものに比べて高いものです。

   bzip2recover

   壊れた bzip2 ファイルの復旧を試みます。

   bzless

   bzip2 で圧縮されたファイルに対して less を実行します。

   bzmore

   bzip2 で圧縮されたファイルに対して more を実行します。

   libbz2*

   ブロックソート法 (バロウズ-ホイラー変換)
   による可逆的なデータ圧縮を提供するライブラリ。

6.20. Pkg-config-0.27

   pkg-config パッケージは configure や make
   による処理を通じて、インクルードパスやライブラリパスを提供するツールで
   す。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 30 MB

6.20.1. Pkg-config のインストール

   Pkg-config をコンパイルするための準備をします。
./configure --prefix=/usr         \
            --with-internal-glib  \
            --docdir=/usr/share/doc/pkg-conf
ig-0.27

   パッケージをコンパイルします。
make

   ビルド結果をテストする場合は以下を実行します。
make check

   パッケージをインストールします。
make install

6.20.2. Pkg-config の構成

   インストールプログラム: pkg-config
   インストールディレクトリ:
   /usr/share/doc/pkg-config-0.27

概略説明

   pkg-config

   指定されたライブラリやパッケージに対するメタ情報を返します。

6.21. Ncurses-5.9

   Ncurses
   パッケージは、端末に依存しない、文字ベースのスクリーン制御を行うライブ
   ラリを提供します。
   概算ビルド時間: 0.6 SBU
   必要ディスク容量: 40 MB

6.21.1. Ncurses のインストール

   Ncurses をコンパイルするための準備をします。
./configure --prefix=/usr --mandir=/usr/shar
e/man --with-shared \
            --without-debug --enable-widec

   configure オプションの意味:

   --enable-widec
          このオプションは通常のライブラリ
          (libncurses.so.5.9)
          ではなくワイド文字対応のライブラリ
          (libncursesw.so.5.9)
          をビルドすることを指示します。
          ワイド文字対応のライブラリは、マルチバイトロケールと従来
          の 8ビットロケールの双方に対して利用可能です。
          通常のライブラリでは
          8ビットロケールに対してしか動作しません。
          ワイド文字対応と通常のものとでは、ソース互換があるものの
          バイナリ互換がありません。

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありますが、パッケージをインストールし
   た後でないと実行できません。
   テストスイートのためのファイル群はサブディレクトリ test/
   以下に残っています。 詳しいことはそのディレクトリ内にある
   README ファイルを参照してください。

   パッケージをインストールします。
make install

   共有ライブラリを /lib ディレクトリに移動します。
   これらはここにあるべきものです。
mv -v /usr/lib/libncursesw.so.5* /lib

   ライブラリを移動させたので、シンボリックリンク先が存在しないことになり
   ます。 そこでリンクを再生成します。
ln -sfv ../../lib/libncursesw.so.5 /usr/lib/
libncursesw.so

   アプリケーションによっては、ワイド文字対応ではないライブラリをリンカー
   が探し出すよう求めるものが多くあります。
   そのようなアプリケーションに対しては、以下のようなシンボリックリンクや
   リンカースクリプトを作り出して、ワイド文字対応のライブラリにリンクさせ
   るよう仕向けます。
for lib in ncurses form panel menu ; do \
    rm -vf /usr/lib/lib${lib}.so ; \
    echo "INPUT(-l${lib}w)" >/usr/lib/lib${l
ib}.so ; \
    ln -sfv lib${lib}w.a /usr/lib/lib${lib}.
a ; \
done
ln -sfv libncurses++w.a /usr/lib/libncurses+
+.a

   最後に古いアプリケーションにおいて、ビルド時に -lcurses
   を指定するものがあるため、これもビルド可能なものにします。
rm -vf /usr/lib/libcursesw.so
echo "INPUT(-lncursesw)" >/usr/lib/libcurses
w.so
ln -sfv libncurses.so /usr/lib/libcurses.so
ln -sfv libncursesw.a /usr/lib/libcursesw.a
ln -sfv libncurses.a /usr/lib/libcurses.a

   必要なら Ncurses のドキュメントをインストールします。
mkdir -v       /usr/share/doc/ncurses-5.9
cp -v -R doc/* /usr/share/doc/ncurses-5.9

注記

   ここまでの作業手順では、ワイド文字対応ではない Ncurses
   ライブラリは生成しませんでした。
   ソースからコンパイルして構築するパッケージなら、実行時にそのようなライ
   ブラリにリンクするものはないからです。
   バイナリコードしかないアプリケーションを取り扱う場合、あるいは LSB
   対応を要する場合で、それがワイド文字対応ではないライブラリを必要とする
   なら、以下のコマンドによりそのようなライブラリを生成してください。
make distclean
./configure --prefix=/usr --with-shared --wi
thout-normal \
  --without-debug --without-cxx-binding
make sources libs
cp -av lib/lib*.so.5* /usr/lib

6.21.2. Ncurses の構成

   インストールプログラム: captoinfo (tic へのリンク),
   clear, infocmp, infotocap (tic
   へのリンク), ncursesw5-config, reset
   (tset へのリンク), tabs, tic, toe, tput,
   tset
   インストールライブラリ: libcursesw.{a,so}
   (libncursesw.{a,so}
   へのシンボリックリンクおよびリンカースクリプト),
   libformw.{a,so}, libmenuw.{a,so},
   libncurses++w.a,
   libncursesw.{a,so},
   libpanelw.{a,so},
   これらに加えてワイド文字対応ではない通常のライブラリで、その名称から
   "w" を取り除いたもの。
   インストールディレクトリ: /usr/share/tabset,
   /usr/share/terminfo

概略説明

   captoinfo

   termcap の記述を terminfo の記述に変換します。

   clear

   画面消去が可能ならこれを行います。

   infocmp

   terminfo の記述どうしを比較したり出力したりします。

   infotocap

   terminfo の記述を termcap の記述に変換します。

   ncursesw5-config

   ncurses の設定情報を提供します。

   reset

   端末をデフォルト設定に初期化します。

   tabs

   端末上のタブストップの設定をクリアしたり設定したりします。

   tic

   terminfo の定義項目に対するコンパイラーです。
   これはソース形式の terminfo
   ファイルをバイナリ形式に変換し、ncurses
   ライブラリ内の処理ルーチンが利用できるようにします。 terminfo
   ファイルは特定端末の特性に関する情報が記述されるものです。

   toe

   利用可能なすべての端末タイプを一覧表示します。
   そこでは端末名と簡単な説明を示します。

   tput

   端末に依存する機能設定をシェルが利用できるようにします。
   また端末のリセットや初期化、あるいは長い端末名称の表示も行います。

   tset

   端末の初期化に利用します。

   libcurses

   libncurses へのリンク。

   libncurses

   さまざまな方法により端末画面上に文字列を表示するための関数を提供します
   。 これらの関数を用いた具体例として、カーネルの make
   menuconfig の実行によって表示されるメニューがあります。

   libform

   フォームを実装するための関数を提供します。

   libmenu

   メニューを実装するための関数を提供します。

   libpanel

   パネルを実装するための関数を提供します。

6.22. Util-linux-2.21.2

   Util-linux
   パッケージは、さまざまなユーティリティプログラムを提供します。
   ファイルシステム、コンソール、パーティション、カーネルメッセージなどを
   取り扱うユーティリティです。
   概算ビルド時間: 0.7 SBU
   必要ディスク容量: 81 MB

6.22.1. FHS コンプライアンス情報

   FHS では adjtime ファイルの配置場所として /etc
   ディレクトリではなく /var/lib/hwclock
   ディレクトリを推奨しています。 hwclock プログラムを FHS
   準拠とするために以下を実行します。
sed -i -e 's@etc/adjtime@var/lib/hwclock/adj
time@g' \
    $(grep -rl '/etc/adjtime' .)
mkdir -pv /var/lib/hwclock

6.22.2. Util-linux のインストール

./configure

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

6.22.3. Util-linux の構成

   インストールプログラム: addpart, agetty,
   blkid, blockdev, cal, cfdisk,
   chcpu, chkdupexe, chrt, col,
   colcrt, colrm, column, ctrlaltdel,
   cytune, delpart, dmesg, fallocate,
   fdformat, fdisk, findfs, findmnt,
   flock, fsck, fsck.cramfs,
   fsck.minix, fsfreeze, fstrim,
   getopt, hexdump, hwclock, i386,
   ionice, ipcmk, ipcrm, ipcs,
   isosize, ldattach, linux32,
   linux64, logger, look, losetup,
   lsblk, lscpu, mcookie, mkfs,
   mkfs.bfs, mkfs.cramfs, mkfs.minix,
   mkswap, more, mount, mountpoint,
   namei, partx, pg, pivot_root,
   prlimit, raw, readprofile, rename,
   renice, rev, rtcwake, script,
   scriptreplay, setarch, setsid,
   setterm, sfdisk, swaplabel, swapoff
   (swapon へのリンク), swapon,
   switch_root, tailf, taskset,
   tunelp, ul, umount, unshare, uuidd,
   uuidgen, wall, whereis, wipefs,
   x86_64
   インストールライブラリ: libblkid.{a,so},
   libmount.{a,so}, libuuid.{a,so}
   インストールディレクトリ: /usr/include/blkid,
   /usr/include/libmount,
   /usr/include/uuid,
   /usr/share/getopt, /var/lib/hwclock

概略説明

   addpart

   Linux カーネルに対して新しいパーティションの情報を通知します。

   agetty

   tty ポートを開いてログイン名の入力を受け付けます。 そして
   login プログラムを起動します。

   blkid

   ブロックデバイスの属性を見つけて表示するためのコマンドラインユーティリ
   ティ。

   blockdev

   コマンドラインからブロックデバイスの ioctl
   の呼び出しを行います。

   cal

   簡単なカレンダーを表示します。

   cfdisk

   指定されたデバイスのパーティションテーブルを操作します。

   chcpu

   CPU の状態を変更します。

   chkdupexe

   重複している実行モジュールを探します。

   chrt

   リアルタイムプロセスの属性を操作します。

   col

   逆改行 (resverse line feeds) を取り除きます。

   colcrt

   性能が不十分な端末のために nroff の出力結果から重ね書き
   (overstriking) や半改行 (half-lines)
   を取り除きます。

   colrm

   指定されたカラムを取り除きます。

   column

   指定されたファイルの内容を複数カラムに整形します。

   ctrlaltdel

   ハードリセットまたはソフトリセットを行うために
   Ctrl+Alt+Del キー押下時の機能を設定します。

   cytune

   Cyclades
   カード用のシリアルラインドライバーのパラメーターを設定します。

   delpart

   Linux
   カーネルに対してパーティションが削除されているかどうかを確認します。

   dmesg

   カーネルのブートメッセージをダンプします。

   fallocate

   ファイルのための領域を事前割り当てします。

   fdformat

   フロッピーディスクの低レベル (low-level)
   フォーマットを行います。

   fdisk

   指定されたデバイスのパーティションテーブルを操作します。

   findfs

   ファイルシステムに対するラベルまたは UUID
   (Universally Unique Identifier)
   を使ってファイルシステムを検索します。

   findmnt

   libmount ライブラリに対するコマンドラインインターフェース。
   mountinfo, fstab, mtab
   の各ファイルに対しての処理を行います。

   flock

   ファイルロックを取得して、ロックしたままコマンドを実行します。

   fsck

   ファイルシステムのチェックを行い、必要に応じて修復を行います。

   fsck.cramfs

   指定されたデバイス上の Cramfs
   ファイルシステムに対して一貫性検査 (consistency
   check) を行います。

   fsck.minix

   指定されたデバイス上の Minix ファイルシステムに対して一貫性検査
   (consistency check) を行います。

   fsfreeze

   カーネルドライバー制御における FIFREEZE/FITHAW
   ioctl に対する単純なラッパープログラム。

   fstrim

   マウントされたファイルシステム上にて、利用されていないブロックを破棄し
   ます。

   getopt

   指定されたコマンドラインのオプション引数を解析します。

   hexdump

   指定されたファイルを
   16進数書式または他の指定された書式でダンプします。

   hwclock

   システムのハードウェアクロックを読み取ったり設定したりします。
   このハードウェアクロックはリアルタイムクリック (Real-Time
   Clock; RTC) または BIOS (Basic
   Input-Output System) クロックとも呼ばれます。

   i386

   setarch へのシンボリックリンク。

   ionice

   プログラムに対する I/O
   スケジュールクラスとスケジュール優先度を取得または設定します。

   ipcmk

   さまざまな IPC リソースを生成します。

   ipcrm

   指定された IPC (Inter-Process
   Communication) リソースを削除します。

   ipcs

   IPC のステータス情報を提供します。

   isosize

   iso9660 ファイルシステムのサイズを表示します。

   ldattach

   シリアル回線 (serial line) に対して回線規則 (line
   discipline) を割り当てます。

   linux32

   setarch へのシンボリックリンク。

   linux64

   setarch へのシンボリックリンク。

   logger

   指定したメッセージをシステムログに出力します。

   look

   指定された文字列で始まる行を表示します。

   losetup

   ループデバイス (loop device) の設定と制御を行います。

   lsblk

   ブロックデバイスのすべて、あるいは指定されたものの情報を、木構造のよう
   な形式で一覧表示します。

   lscpu

   CPU アーキテクチャーの情報を表示します。

   mcookie

   xauth のためのマジッククッキー
   (128ビットのランダムな16進数値) を生成します。

   mkfs

   デバイス上にファイルシステムを構築します。
   (通常はハードディスクパーティションに対して行います。)

   mkfs.bfs

   SCO (Santa Cruz Operations) の bfs
   ファイルシステムを生成します。

   mkfs.cramfs

   cramfs ファイルシステムを生成します。

   mkfs.minix

   Minix ファイルシステムを生成します。

   mkswap

   指定されたデバイスまたはファイルをスワップ領域として初期化します。

   more

   テキストを一度に一画面分だけ表示するフィルタープログラム。

   mount

   ファイルシステムツリー内の特定のディレクトリを、指定されたデバイス上の
   ファイルシステムに割り当てます。

   mountpoint

   ディレクトリがマウントポイントであるかどうかをチェックします。

   namei

   指定されたパスに存在するシンボリックリンクを表示します。

   partx

   カーネルに対して、ディスク上にパーティションが存在するか、何番が存在す
   るかを伝えます。

   pg

   テキストファイルを一度に一画面分表示します。

   pivot_root

   指定されたファイルシステムを、現在のプロセスに対する新しいルートファイ
   ルシステムにします。

   prlimit

   プロセスが利用するリソースの限界値を取得または設定します。

   raw

   Linux の raw
   キャラクターデバイスをブロックデバイスにバインドします。

   readprofile

   カーネルのプロファイリング情報を読み込みます。

   rename

   指定されたファイルの名称を変更します。

   renice

   実行中のプロセスの優先度を変更します。

   rev

   指定されたファイル内の行の並びを入れ替えます。

   rtcwake

   指定された起動時刻までの間、システムをスリープ状態とするモードを指定し
   ます。

   script

   端末セッション上での出力結果の写し (typescript)
   を生成します。

   scriptreplay

   タイミング情報 (timing information)
   を利用して、出力結果の写し (typescript) を再生します。

   setarch

   新しいプログラム環境にて、表示されるアーキテクチャーを変更します。
   また設定フラグ (personality flag)
   の設定も行います。

   setsid

   新しいセッションで指定されたプログラムを実行します。

   setterm

   端末の属性を設定します。

   sfdisk

   ディスクパーティションテーブルを操作します。

   swaplabel

   スワップエリアの UUID とラベルを変更します。

   swapoff

   ページングまたはスワッピングに利用しているデバイスまたはファイルを無効
   にします。

   swapon

   ページングまたはスワッピングに利用しているデバイスまたはファイルを有効
   にします。
   また現在利用されているデバイスまたはファイルを一覧表示します。

   switch_root

   別のファイルシステムを、マウントツリーのルートとして変更します。

   tailf

   ログファイルの更新を監視します。
   ログファイルの最終の10行が表示され、ログファイルに新たに書き込みが行
   われると表示更新します。

   taskset

   プロセスの CPU 親和性 (affinity)
   を表示または設定します。

   tunelp

   ラインプリンターのパラメーターを設定します。

   ul

   使用中の端末にて、アンダースコア文字を、エスケープシーケンスを用いた下
   線文字に変換するためのフィルター。

   umount

   システムのファイルツリーからファイルシステムを切断します。

   unshare

   上位の名前空間とは異なる名前空間にてプログラムを実行します。

   uuidd

   UUID ライブラリから利用されるデーモン。 時刻情報に基づく
   UUID を、安全にそして一意性を確保して生成します。

   uuidgen

   新しい UUID を生成します。 生成される UUID
   は当然、他に生成されている UUID
   とは異なり、自他システムでも過去現在にわたってもユニークなものです。

   wall

   ファイルの内容、あるいはデフォルトでは標準入力から入力された内容を、現
   在ログインしている全ユーザーの端末上に表示します。

   whereis

   指定されたコマンドの実行モジュール、ソース、man
   ページの場所を表示します。

   wipefs

   ファイルシステムのシグニチャーをデバイスから消去します。

   x86_64

   setarch へのシンボリックリンク。

   libblkid

   デバイスの識別やトークンの抽出を行う処理ルーチンを提供します。

   libuuid

   ローカルシステム内だけに限らずアクセスされるオブジェクトに対して、一意
   性が保証された識別子を生成する処理ルーチンを提供します。

6.23. Psmisc-22.19

   Psmisc
   パッケージは稼動中プロセスの情報表示を行うプログラムを提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 4.2 MB

6.23.1. Psmisc のインストール

   Psmisc をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

   killall プログラムと fuser プログラムを、FHS
   が規定しているディレクトリに移動します。
mv -v /usr/bin/fuser   /bin
mv -v /usr/bin/killall /bin

6.23.2. Psmisc の構成

   インストールプログラム: fuser, killall,
   peekfd, prtstat, pstree, pstree.x11
   (pstree へのリンク)

概略説明

   fuser

   指定されたファイルまたはファイルシステムを利用しているプロセスのプロセ
   ス ID (PID) を表示します。

   killall

   プロセス名を用いてそのプロセスを終了 (kill) させます。
   指定されたコマンドを起動しているすべてのプロセスに対してシグナルが送信
   されます。

   peekfd

   PID
   を指定することによって、稼動中のそのプロセスのファイルディスクリプター
   を調べます。

   prtstat

   プロセスに関する情報を表示します。

   pstree

   稼働中のプロセスをツリー形式で表示します。

   pstree.x11

   pstree と同じです。 ただし終了時には確認画面が表示されます。

6.24. E2fsprogs-1.42.5

   E2fsprogs パッケージは ext2
   ファイルシステムを扱うユーティリティを提供します。これは同時に
   ext3、ext4 ジャーナリングファイルシステムもサポートします。
   概算ビルド時間: 1.7 SBU
   必要ディスク容量: 64 MB

6.24.1. E2fsprogs のインストール

   E2fsprogs
   パッケージは、ソースディレクトリ内にサブディレクトリを作ってビルドする
   ことが推奨されています。
mkdir -v build
cd build

   E2fsprogs をコンパイルするための準備をします。
../configure --prefix=/usr         \
             --with-root-prefix="" \
             --enable-elf-shlibs   \
             --disable-libblkid    \
             --disable-libuuid     \
             --disable-uuidd       \
             --disable-fsck

   configure オプションの意味:

   --with-root-prefix=""
          e2fsck などのプログラムは、極めて重要なものです。
          例えば /usr
          ディレクトリがマウントされていない時であっても、そういっ
          たプログラムは動作しなければなりません。 それらは
          /lib ディレクトリや /sbin
          ディレクトリに置かれるべきものです。
          もしこのオプションの指定がなかったら、プログラムが
          /usr ディレクトリにインストールされてしまいます。

   --enable-elf-shlibs
          このオプションは、本パッケージ内のプログラムが利用する共
          有ライブラリを生成します。

   --disable-*
          このオプションは libuuid
          ライブラリ、libblkid ライブラリ、uuidd
          デーモン、fsck
          ラッパーをいずれもビルドせずインストールしないようにしま
          す。 これらは Util-Linux
          パッケージによって既にインストールされています。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make -k check

   E2fsprogs にて行われるテストの中には 256 MB
   のメモリ割り当てを行うものがあります。 この容量を確保できるだけの
   RAM
   がない場合は、十分なスワップ領域を確保することが推奨されています。
   スワップ領域の生成と有効化については
   [666]2.3.「ファイルシステムの生成」と
   [667]2.4.「新しいパーティションのマウント」を参照してください
   。

   実行モジュール、ドキュメント、共有ライブラリをインストールします。
make install

   スタティックライブラリとヘッダーファイルをインストールします。
make install-libs

   スタティックライブラリへの書き込みを可能とします。
   これは後にデバッグシンボルを取り除くために必要となります。
chmod -v u+w /usr/lib/{libcom_err,libe2p,lib
ext2fs,libss}.a

   本パッケージは gzip 圧縮された.info
   ファイルをインストールしますが、共通的な dir を更新しません。
   そこで以下のコマンドにより gzip ファイルを解凍した上で dir
   ファイルを更新します。
gunzip -v /usr/share/info/libext2fs.info.gz
install-info --dir-file=/usr/share/info/dir
/usr/share/info/libext2fs.info

   必要なら、以下のコマンドを実行して追加のドキュメントをインストールしま
   す。
makeinfo -o      doc/com_err.info ../lib/et/
com_err.texinfo
install -v -m644 doc/com_err.info /usr/share
/info
install-info --dir-file=/usr/share/info/dir
/usr/share/info/com_err.info

6.24.2. E2fsprogs の構成

   インストールプログラム: badblocks, chattr,
   compile_et, debugfs, dumpe2fs,
   e2freefrag, e2fsck, e2image,
   e2initrd_helper, e2label, e2undo,
   e4defrag, filefrag, fsck.ext2,
   fsck.ext3, fsck.ext4, fsck.ext4dev,
   logsave, lsattr, mk_cmds, mke2fs,
   mkfs.ext2, mkfs.ext3, mkfs.ext4,
   mkfs.ext4dev, mklost+found,
   resize2fs, tune2fs
   インストールライブラリ: libcom_err.{a,so},
   libe2p.{a,so}, libext2fs.{a,so},
   libquota.a, libss.{a,so}
   インストールディレクトリ: /usr/include/e2p,
   /usr/include/et,
   /usr/include/ext2fs,
   /usr/include/quota,
   /usr/include/ss, /usr/share/et,
   /usr/share/ss

概略説明

   badblocks

   デバイス (通常はディスクパーティション)
   の不良ブロックを検索します。

   chattr

   ext2 ファイルシステム上のファイル属性を変更します。 ext2
   ファイルシステムのジャーナリング版である ext3
   ファイルシステムにおいても変更を行います。

   compile_et

   エラーテーブルコンパイラー。
   これはエラーコード名とメッセージの一覧を、com_err
   ライブラリを利用する C ソースコードとして変換するものです。

   debugfs

   ファイルシステムデバッガー。 これは ext2
   ファイルシステムの状態を調査し変更することができます。

   dumpe2fs

   指定されたデバイス上にあるファイルシステムについて、スーパーブロックの
   情報とブロックグループの情報を表示します。

   e2freefrag

   空きディスク部分のフラグメンテーションに関する情報を表示します。

   e2fsck

   ext2 ファイルシステムと ext3
   ファイルシステムをチェックし、必要なら修復を行うことができます。

   e2image

   ext2 ファイルシステムの重要なデータをファイルに保存します。

   e2initrd_helper

   指定されたファイルシステムの FS タイプを表示します。
   デバイス名やラベルを指定することもできます。

   e2label

   指定されたデバイス上にある ext2
   ファイルシステムのラベルを表示または変更します。

   e2undo

   デバイス上にある ext2/ext3/ext4 ファイルシステムの
   undo ログを再実行します。 これは e2fsprogs
   プログラムが処理に失敗した際に undo を行うこともできます。

   e4defrag

   ext4 ファイルシステムに対するオンラインのデフラグツール。

   filefrag

   特定のファイルのフラグメンテーション化がどれほど進んでいるかを表示しま
   す。

   fsck.ext2

   デフォルトでは ext2 ファイルシステムをチェックします。 これは
   e2fsck へのハードリンクです。

   fsck.ext3

   デフォルトでは ext3 ファイルシステムをチェックします。 これは
   e2fsck へのハードリンクです。

   fsck.ext4

   デフォルトでは ext4 ファイルシステムをチェックします。 これは
   e2fsck へのハードリンクです。

   fsck.ext4dev

   デフォルトでは ext4 ファイルシステムの開発版をチェックします。
   これは e2fsck へのハードリンクです。

   logsave

   コマンドの出力結果をログファイルに保存します。

   lsattr

   ext2 ファイルシステム上のファイル属性を一覧表示します。

   mk_cmds

   コマンド名とヘルプメッセージの一覧を、サブシステムライブラリ
   libss を利用する C ソースコードとして変換するものです。

   mke2fs

   指定されたデバイス上に ext2 ファイルシステム、または ext3
   ファイルシステムを生成します。

   mkfs.ext2

   デフォルトでは ext2 ファイルシステムを生成します。 これは
   mke2fs へのハードリンクです。

   mkfs.ext3

   デフォルトでは ext3 ファイルシステムを生成します。 これは
   mke2fs へのハードリンクです。

   mkfs.ext4

   デフォルトでは ext4 ファイルシステムを生成します。 これは
   mke2fs へのハードリンクです。

   mkfs.ext4dev

   デフォルトでは ext4 ファイルシステム開発版を生成します。 これは
   mke2fs へのハードリンクです。

   mklost+found

   ext2 ファイルシステム上に lost+found
   ディレクトリを生成するために利用します。
   このコマンドはそのディレクトリに対してあらかじめディスクブロックの情報
   を割り当てておくことで、e2fsck コマンドの負荷を軽減します。

   resize2fs

   ext2 ファイルシステムを拡張または縮小するために利用します。

   tune2fs

   ext2
   ファイルシステム上にて調整可能なシステムパラメータを調整します。

   libcom_err

   共通的なエラー表示ルーチン。

   libe2p

   以下のコマンド dumpe2fs、chattr、lsattr
   が利用します。

   libext2fs

   ユーザーレベルのプログラムが ext2
   ファイルシステムを操作可能とするためのルーチンを提供します。

   libquota

   クォータ (quota) ファイルや ext4
   スーパーブロックフィールドの生成更新を行うインターフェースを提供します
   。

   libss

   debugfs コマンドが利用します。

6.25. Shadow-4.1.5.1

   Shadow
   パッケージはセキュアなパスワード管理を行うプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 42 MB

6.25.1. Shadow のインストール

注記

   もっと強力なパスワードを利用したい場合は
   [668]http://www.linuxfromscratch.or
   g/blfs/view/svn/postlfs/cracklib.ht
   ml にて示している Cracklib パッケージを参照してください。
   Cracklib パッケージは Shadow
   パッケージよりも前にインストールします。 その場合 Shadow
   パッケージの configure スクリプトでは
   --with-libcrack
   パラメーターをつけて実行する必要があります。

   groups コマンドとその man
   ページをインストールしないようにします。 これは Coreutils
   パッケージにて、より良いバージョンが提供されているからです。
sed -i 's/groups$(EXEEXT) //' src/Makefile.i
n
find man -name Makefile.in -exec sed -i 's/g
roups\.1 / /' {} \;

   パスワード暗号化に関して、デフォルトの crypt
   手法ではなく、より強力な SHA-512 手法を用いることにします。
   こうしておくと 8文字以上のパスワード入力が可能となります。
   またメールボックスを収めるディレクトリとして Shadow
   ではデフォルトで /var/spool/mail
   ディレクトリを利用していますが、これは古いものであるため
   /var/mail ディレクトリに変更します。
sed -i -e 's@#ENCRYPT_METHOD DES@ENCRYPT_MET
HOD SHA512@' \
       -e 's@/var/spool/mail@/var/mail@' etc
/login.defs

注記

   Cracklib のサポートを含めて Shadow
   をビルドする場合は以下を実行します。
sed -i 's@DICTPATH.*@DICTPATH\t/lib/cracklib
/pw_dict@' \
    etc/login.defs

   Shadow をコンパイルするための準備をします。
./configure --sysconfdir=/etc

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

   不適切なディレクトリにインストールされるプログラムを移動させます。
mv -v /usr/bin/passwd /bin

6.25.2. Shadow の設定

   このパッケージには、ユーザーやグループの追加、修正、削除、そのパスワー
   ドの設定、変更、その他の管理操作を行うユーティリティが含まれます。
   パスワードのシャドウイング (password shadowing)
   というものが何を意味するのか、その詳細についてはこのパッケージのソース
   内にある doc/HOWTO を参照してください。 Shadow
   によるサポートを利用する場合、パスワード認証を必要とするプログラム
   (ディスプレイマネージャー、FTP
   プログラム、POP3、デーモン、など) は Shadow
   に準拠したものでなければなりません。
   つまりそれらのプログラムが、シャドウ化された (shadowed)
   パスワードを受け入れて動作しなければならないということです。

   Shadow
   によるパスワードの利用を有効にするために、以下のコマンドを実行します。
pwconv

   また Shadow
   によるグループパスワードを有効にするために、以下を実行します。
grpconv

   Shadow の useradd
   コマンドに対する通常の設定には、注意すべき点があります。 まず
   useradd
   コマンドによりユーザーを生成する場合のデフォルトの動作では、ユーザー名
   と同じグループを自動生成します。 ユーザーID (UID)
   とグループID (GID) は 1000 以上が割り当てられます。
   useradd
   コマンドの利用時に特にパラメータを与えなければ、追加するユーザーのグル
   ープは新たな固有グループが生成されることになります。
   この動作が不適当であれば useradd コマンドの実行時に -g
   パラメーターを利用することが必要です。
   デフォルトで適用されるパラメーターは
   /etc/default/useradd ファイルに定義されています。
   このファイルのパラメーター定義を必要に応じて書き換えてください。

   /etc/default/useradd のパラメーター説明

   GROUP=1000
          このパラメーターは /etc/group
          ファイルにて設定されるグループIDの先頭番号を指定します
          。 必要なら任意の数値に設定することもできます。
          useradd コマンドは既存の UID 値、GID
          値を再利用することはありません。
          このパラメーターによって定義された数値が実際に指定された
          場合、この値以降で利用可能な値が利用されます。 また
          useradd コマンドの実行時に、パラメーター -g
          を利用せず、かつグループID 1000
          のグループが存在していなかった場合は、以下のようなメッセ
          ージが出力されます。 useradd: unknown
          GID 1000 ("GID 1000 が不明です")
          このメッセージは無視することができます。
          この場合グループIDには 1000 が利用されます。

   CREATE_MAIL_SPOOL=yes
          このパラメーターは useradd
          コマンドの実行によって、追加されるユーザー用のメールボッ
          クスに関するファイルが生成されます。 useradd
          コマンドは、このファイルのグループ所有者を mail
          (グループID 0660) に設定します。
          メールボックスに関するファイルを生成したくない場合は、以
          下のコマンドを実行します。

sed -i 's/yes/no/' /etc/default/useradd

6.25.3. root パスワードの設定

   root ユーザーのパスワードを設定します。
passwd root

6.25.4. Shadow の構成

   インストールプログラム: chage, chfn,
   chgpasswd, chpasswd, chsh, expiry,
   faillog, gpasswd, groupadd,
   groupdel, groupmems, groupmod,
   grpck, grpconv, grpunconv, lastlog,
   login, logoutd, newgrp, newusers,
   nologin, passwd, pwck, pwconv,
   pwunconv, sg (newgrp へのリンク), su,
   useradd, userdel, usermod, vigr
   (vipw へのリンク), vipw
   インストールディレクトリ: /etc/default

概略説明

   chage

   ユーザーのパスワード変更を行うべき期間を変更します。

   chfn

   ユーザーのフルネームや他の情報を変更します。

   chgpasswd

   グループのパスワードをバッチモードにて更新します。

   chpasswd

   ユーザーのパスワードをバッチモードにて更新します。

   chsh

   ユーザーのデフォルトのログインシェルを変更します。

   expiry

   現時点でのパスワード失効に関する設定をチェックし更新します。

   faillog

   ログイン失敗のログを調査します。
   ログインの失敗を繰り返すことでアカウントがロックされる際の、最大の失敗
   回数を設定します。 またその失敗回数をリセットします。

   gpasswd

   グループに対してメンバーや管理者を追加、削除します。

   groupadd

   指定した名前でグループを生成します。

   groupdel

   指定された名前のグループを削除します。

   groupmems

   スーパーユーザー権限を持たなくても、自分自身のグループのメンバーリスト
   を管理可能とします。

   groupmod

   指定されたグループの名前や GID を修正します。

   grpck

   グループファイル /etc/group と /etc/gshadow
   の整合性を確認します。

   grpconv

   通常のグループファイルから Shadow
   グループファイルを生成、更新します。

   grpunconv

   /etc/gshadow ファイルを元に /etc/group
   ファイルを更新し /etc/gshadow ファイルを削除します。

   lastlog

   全ユーザーの中での最新ログインの情報、または指定ユーザーの最新ログイン
   の情報を表示します。

   login

   ユーザーのログインを行います。

   logoutd

   ログオン時間とポートに対する制限を実施するためのデーモン。

   newgrp

   ログインセッション中に現在の GID を変更します。

   newusers

   ユーザーアカウントの情報を生成または更新します。

   nologin

   ユーザーアカウントが利用不能であることをメッセージ表示します。
   利用不能なユーザーアカウントに対するデフォルトシェルとして利用すること
   を意図しています。

   passwd

   ユーザーアカウントまたはグループアカウントに対するパスワードを変更しま
   す。

   pwck

   パスワードファイル /etc/passwd と /etc/shadow
   の整合性を確認します。

   pwconv

   通常のパスワードファイルを元に shadow
   パスワードファイルを生成、更新します。

   pwunconv

   /etc/shadow ファイルを元に /etc/passwd
   ファイルを更新し /etc/shadow を削除します。

   sg

   ユーザーの GID
   を指定されたグループにセットした上で、指定されたコマンドを実行します。

   su

   ユーザー ID とグループ ID を変更してシェルを実行します。

   useradd

   指定した名前で新たなユーザーを生成します。
   あるいは新規ユーザーのデフォルトの情報を更新します。

   userdel

   指定されたユーザーアカウントを削除します。

   usermod

   指定されたユーザーのログイン名、UID (User
   Identification)、利用シェル、初期グループ、ホームディレ
   クトリなどを変更します。

   vigr

   /etc/group ファイル、あるいは /etc/gshadow
   ファイルを編集します。

   vipw

   /etc/passwd ファイル、あるいは /etc/shadow
   ファイルを編集します。

6.26. Coreutils-8.19

   Coreutils
   パッケージはシステムの基本的な特性を表示したり設定したりするためのユー
   ティリティを提供します。
   概算ビルド時間: 4.0 SBU
   必要ディスク容量: 154 MB

6.26.1. Coreutils のインストール

   テスト処理におけるバグを修正します。
sed -i -e 's/! isatty/isatty/' \
       -e '45i\              || errno == ENO
ENT' gnulib-tests/test-getlogin.c

   POSIX では Coreutils
   により生成されるプログラムは、マルチバイトロケールであっても、文字デー
   タを正しく取り扱うことを求めています。
   以下のパッチは標準に準拠することと、国際化処理に関連するバグを解消する
   ことを行います。
patch -Np1 -i ../coreutils-8.19-i18n-1.patch

注記

   このパッチには以前は多くのバグがありました。
   新たなバグを発見したら、Coreutils
   の開発者に報告する前に、このパッチを適用せずにバグが再現するかどうかを
   確認してください。

   Coreutils をコンパイルするための準備をします。
FORCE_UNSAFE_CONFIGURE=1 ./configure \
            --prefix=/usr         \
            --libexecdir=/usr/lib \
            --enable-no-install-program=kill
,uptime

   configure オプションの意味:

   --enable-no-install-program=kill,up
          time
          指定のプログラムは、後に他のパッケージからインストールす
          るため Coreutils
          からはインストールしないことを指示します。

   パッケージをコンパイルします。
make

   テストスイートを実行しない場合は「パッケージをインストールします。」と
   書かれたところまで読み飛ばしてください。

   テストスイートを実行します。 まずは root
   ユーザーに対するテストを実行します。
make NON_ROOT_USERNAME=nobody check-root

   ここからのテストは nobody ユーザーにより実行します。
   ただしいくつかのテストでは、複数のグループに属するユーザーを必要としま
   す。 そのようなテストを確実に実施するために、一時的なグループを作って
   nobody ユーザーがそれに属するようにします。
echo "dummy:x:1000:nobody" >> /etc/group

   特定のファイルのパーミッションを変更して root
   ユーザー以外でもコンパイルとテストができるようにします。
chown -Rv nobody .

   テストを実行します。 su 環境において PATH に
   /tools/bin が含まれていることを確認してください。
su nobody -s /bin/bash \
          -c "PATH=$PATH make RUN_EXPENSIVE_
TESTS=yes -k check || true"

   一時的に作成したグループを削除します。
sed -i '/dummy/d' /etc/group

   パッケージをインストールします。
make install

   FHS が規定しているディレクトリにプログラムを移します。
mv -v /usr/bin/{cat,chgrp,chmod,chown,cp,dat
e,dd,df,echo} /bin
mv -v /usr/bin/{false,ln,ls,mkdir,mknod,mv,p
wd,rm} /bin
mv -v /usr/bin/{rmdir,stty,sync,true,uname}
/bin
mv -v /usr/bin/chroot /usr/sbin
mv -v /usr/share/man/man1/chroot.1 /usr/shar
e/man/man8/chroot.8
sed -i s/\"1\"/\"8\"/1 /usr/share/man/man8/c
hroot.8

   LFS-ブートスクリプトパッケージにあるスクリプトでは、head、
   sleep、 nice に依存しているものがあります。
   ブート処理の初期段階においては /usr
   ディレクトリは認識されないため、上のプログラムはルートパーティションに
   移す必要があります。
mv -v /usr/bin/{head,sleep,nice} /bin

6.26.2. Coreutils の構成

   インストールプログラム: base64, basename, cat,
   chcon, chgrp, chmod, chown, chroot,
   cksum, comm, cp, csplit, cut, date,
   dd, df, dir, dircolors, dirname,
   du, echo, env, expand, expr,
   factor, false, fmt, fold, groups,
   head, hostid, id, install, join,
   link, ln, logname, ls, md5sum,
   mkdir, mkfifo, mknod, mktemp, mv,
   nice, nl, nohup, nproc, od, paste,
   pathchk, pinky, pr, printenv,
   printf, ptx, pwd, readlink,
   realpath, rm, rmdir, runcon, seq,
   sha1sum, sha224sum, sha256sum,
   sha384sum, sha512sum, shred, shuf,
   sleep, sort, split, stat, stdbuf,
   stty, sum, sync, tac, tail, tee,
   test, timeout, touch, tr, true,
   truncate, tsort, tty, uname,
   unexpand, uniq, unlink, users,
   vdir, wc, who, whoami, yes
   インストールライブラリ: libstdbuf.so
   インストールディレクトリ:
   /usr/libexec/coreutils

概略説明

   base64

   base64 (RFC 3548)
   規格に従ってデータのエンコード、デコードを行います。

   basename

   ファイル名からパス部分と指定されたサフィックスを取り除きます。

   cat

   複数ファイルを連結して標準出力へ出力します。

   chcon

   ファイルやディレクトリに対してセキュリティコンテキスト
   (security context) を変更します。

   chgrp

   ファイルやディレクトリのグループ所有権を変更します。

   chmod

   指定されたファイルのパーミッションを、指定されたモードに変更します。
   モードは、変更内容を表す文字表現か、8進数表現を用いることができます。

   chown

   ファイルやディレクトリの所有者またはグループを変更します。

   chroot

   指定したディレクトリを /
   ディレクトリとみなしてコマンドを実行します。

   cksum

   指定された複数のファイルについて、CRC (Cyclic
   Redundancy Check; 巡回冗長検査)
   チェックサム値とバイト数を表示します。

   comm

   ソート済の二つのファイルを比較して、一致しない固有の行と一致する行を三
   つのカラムに分けて出力します。

   cp

   ファイルをコピーします。

   csplit

   指定されたファイルを複数の新しいファイルに分割します。
   分割は指定されたパターンか行数により行います。
   そして分割後のファイルにはバイト数を出力します。

   cut

   指定されたフィールド位置や文字位置によってテキスト行を部分的に取り出し
   ます。

   date

   指定された書式により現在時刻を表示します。
   またはシステム日付を設定します。

   dd

   指定されたブロックサイズとブロック数によりファイルをコピーします。
   変換処理を行うことができます。

   df

   マウントされているすべてのファイルシステムに対して、ディスクの空き容量
   (使用量) を表示します。
   あるいは指定されたファイルを含んだファイルシステムについてのみの情報を
   表示します。

   dir

   指定されたディレクトリの内容を一覧表示します。(ls
   コマンドに同じ。)

   dircolors

   環境変数 LS_COLOR にセットするべきコマンドを出力します。
   これは ls がカラー設定を行う際に利用します。

   dirname

   ファイル名から、ディレクトリ名以外のサフィックスを取り除きます。

   du

   カレントディレクトリ、指定ディレクトリ
   (サブディレクトリを含む)、指定された個々のファイルについて、それらが
   利用しているディスク使用量を表示します。

   echo

   指定された文字列を表示します。

   env

   環境設定を変更してコマンドを実行します。

   expand

   タブ文字を空白文字に変換します。

   expr

   表現式を評価します。

   factor

   指定された整数値すべてに対する素因数 (prime factor)
   を表示します。

   false

   何も行わず処理に失敗します。これは常に失敗を意味するステータスコードを
   返して終了します。

   fmt

   指定されたファイル内にて段落を整形します。

   fold

   指定されたファイル内の行を折り返します。

   groups

   ユーザーの所属グループを表示します。

   head

   指定されたファイルの先頭10行 (あるいは指定された行数)
   を表示します。

   hostid

   ホスト識別番号 (16進数) を表示します。

   id

   現在のユーザーあるいは指定されたユーザーについて、有効なユーザーID、
   グループID、所属グループを表示します。

   install

   ファイルコピーを行います。その際にパーミッションモードを設定し、可能な
   ら所有者やグループも設定します。

   join

   2つのファイル内にて共通項を持つ行を結合します。

   link

   指定された名称により、ファイルへのハードリンクを生成します。

   ln

   ファイルに対するハードリンク、あるいはソフトリンク
   (シンボリックリンク) を生成します。

   logname

   現在のユーザーのログイン名を表示します。

   ls

   指定されたディレクトリ内容を一覧表示します。

   md5sum

   MD5 (Message Digest 5)
   チェックサム値を表示、あるいはチェックします。

   mkdir

   指定された名前のディレクトリを生成します。

   mkfifo

   指定された名前の FIFO (First-In, First-Out)
   を生成します。 これは UNIX の用語で「名前付きパイプ
   (named pipe)」とも呼ばれます。

   mknod

   指定された名前のデバイスノードを生成します。
   デバイスノードはキャラクター型特殊ファイル (character
   special file)、ブロック特殊ファイル (block
   special file)、FIFO です。

   mktemp

   安全に一時ファイルを生成します。 これはスクリプト内にて利用されます。

   mv

   ファイルあるいはディレクトリを移動、名称変更します。

   nice

   スケジューリング優先度を変更してプログラムを実行します。

   nl

   指定されたファイル内の行を数えます。

   nohup

   ハングアップに関係なくコマンドを実行します。
   その出力はログファイルにリダイレクトされます。

   nproc

   プロセスが利用可能なプロセスユニット (processing
   unit) の数を表示します。

   od

   ファイル内容を 8進数または他の書式でダンプします。

   paste

   指定された複数ファイルを結合します。
   その際には各行を順に並べて結合し、その間をタブ文字で区切ります。

   pathchk

   ファイル名が有効で移植可能であるかをチェックします。

   pinky

   軽量な finger クライアント。
   指定されたユーザーに関する情報を表示します。

   pr

   ファイルを印刷するために、ページ番号を振りカラム整形を行います。

   printenv

   環境変数の内容を表示します。

   printf

   指定された引数を指定された書式で表示します。 C 言語の printf
   関数に似ています。

   ptx

   指定されたファイル内のキーワードに対して整列済インデックス
   (permuted index) を生成します。

   pwd

   現在の作業ディレクトリ名を表示します。

   readlink

   指定されたシンボリックリンクの対象を表示します。

   realpath

   解析されたパスを表示します。

   rm

   ファイルまたはディレクトリを削除します。

   rmdir

   ディレクトリが空である時にそのディレクトリを削除します。

   runcon

   指定されたセキュリティコンテキストでコマンドを実行します。

   seq

   指定された範囲と増分に従って数値の並びを表示します。

   sha1sum

   160 ビットの SHA1 (Secure Hash
   Algorithm 1) チェックサム値を表示またはチェックします。

   sha224sum

   224 ビットの SHA1 チェックサム値を表示またはチェックします。

   sha256sum

   256 ビットの SHA1 チェックサム値を表示またはチェックします。

   sha384sum

   384 ビットの SHA1 チェックサム値を表示またはチェックします。

   sha512sum

   512 ビットの SHA1 チェックサム値を表示またはチェックします。

   shred

   指定されたファイルに対して、複雑なパターンデータを繰り返し上書きするこ
   とで、データ復旧を困難なものにします。

   shuf

   テキスト行を入れ替えます。

   sleep

   指定時間だけ停止します。

   sort

   指定されたファイル内の行をソートします。

   split

   指定されたファイルを、バイト数または行数を指定して分割します。

   stat

   ファイルやファイルシステムのステータスを表示します。

   stdbuf

   本コマンド実行により、標準ストリームに対するバッファリング操作を変更し
   ます。

   stty

   端末回線の設定や表示を行います。

   sum

   指定されたファイルのチェックサムやブロック数を表示します。

   sync

   ファイルシステムのバッファを消去します。
   変更のあったブロックは強制的にディスクに書き出し、スーパーブロック
   (super block) を更新します。

   tac

   指定されたファイルを逆順にして連結します。

   tail

   指定されたファイルの最終の10行 (あるいは指定された行数)
   を表示します。

   tee

   標準入力を読み込んで、標準出力と指定ファイルの双方に出力します。

   test

   ファイルタイプの比較やチェックを行います。

   timeout

   指定時間内だけコマンドを実行します。

   touch

   ファイルのタイムスタンプを更新します。
   そのファイルに対するアクセス時刻、更新時刻を現在時刻にするものです。
   そのファイルが存在しなかった場合はゼロバイトのファイルを新規生成します
   。

   tr

   標準入力から読み込んだ文字列に対して、変換、圧縮、削除を行います。

   true

   何も行わず処理に成功します。これは常に成功を意味するステータスコードを
   返して終了します。

   truncate

   ファイルを指定されたサイズに縮小または拡張します。

   tsort

   トポロジカルソート (topological sort) を行います。
   指定されたファイルの部分的な順序に従って並び替えリストを出力します。

   tty

   標準入力に接続された端末のファイル名を表示します。

   uname

   システム情報を表示します。

   unexpand

   空白文字をタブ文字に変換します。

   uniq

   連続する同一行を一行のみ残して削除します。

   unlink

   指定されたファイルを削除します。

   users

   現在ログインしているユーザー名を表示します。

   vdir

   ls -l と同じ。

   wc

   指定されたファイルの行数、単語数、バイト数を表示します。
   複数ファイルが指定された場合はこれに加えて合計も出力します。

   who

   誰がログインしているかを表示します。

   whoami

   現在有効なユーザーIDに関連づいているユーザー名を表示します。

   yes

   処理が停止されるまで繰り返して「y」または指定文字を出力します。

   libstdbuf.so

   stdbuf が利用するライブラリ。

6.27. Iana-Etc-2.30

   Iana-Etc
   パッケージはネットワークサービスやプロトコルのためのデータを提供します
   。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 2.2 MB

6.27.1. Iana-Etc のインストール

   以下のコマンドを実行します。 これは IANA
   が提供している生のデータを正しい書式のデータとして変換し
   /etc/protocols ファイルと /etc/services
   ファイルとして生成します。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

6.27.2. Iana-Etc の構成

   インストールファイル: /etc/protocols,
   /etc/services

概略説明

   /etc/protocols

   TCP/IP により利用可能なさまざまな DARPA
   インターネットプロトコル (DARPA Internet
   protocols) を記述しています。

   /etc/services

   インターネットサービスを分かりやすく表現した名称と、その割り当てポート
   およびプロトコルの種類の対応情報を提供します。

6.28. M4-1.4.16

   M4 パッケージはマクロプロセッサーを提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 26.6 MB

6.28.1. M4 のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' lib/stdio.in.h

   M4 をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするためには、まず修正を行ってからテストプログラ
   ムを実行します。
sed -i -e '41s/ENOENT/& || errno == EINVAL/'
 tests/test-readlink.h
make check

   パッケージをインストールします。
make install

6.28.2. M4 の構成

   インストールプログラム: m4

概略説明

   m4

   指定されたファイル内のマクロ定義を展開して、そのコピーを生成します。
   マクロ定義には埋め込み (built-in)
   マクロとユーザー定義マクロがあり、いくらでも引数を定義することができま
   す。 マクロ定義の展開だけでなく m4
   には以下のような埋め込み関数があります。
   指定ファイルの読み込み、Unix
   コマンド実行、整数演算処理、テキスト操作、再帰処理などです。 m4
   プログラムはコンパイラーのフロントエンドとして利用することができ、それ
   自体でマクロプロセッサーとして用いることもできます。

6.29. Bison-2.6.2

   Bison パッケージは構文解析ツールを提供します。
   概算ビルド時間: 1.3 SBU
   必要ディスク容量: 34 MB

6.29.1. Bison のインストール

   Bison をコンパイルするための準備をします。
./configure --prefix=/usr

   bison プログラムが $PATH 上にない場合に、この Bison
   の configure
   を行ってビルドすると、国際化されたエラーメッセージのサポートがないまま
   ビルドされてしまいます。 これを正すために以下の設定を追加します。
echo '#define YYENABLE_NLS 1' >> lib/config.
h

   パッケージをコンパイルします。
make

   コンパイル結果をテストするなら以下を実行します。(約 0.5 SBU)
make check

   パッケージをインストールします。
make install

6.29.2. Bison の構成

   インストールプログラム: bison, yacc
   インストールライブラリ: liby.a
   インストールディレクトリ: /usr/share/bison

概略説明

   bison

   構文規則の記述に基づいて、テキストファイルの構造を解析するプログラムを
   生成します。 Bison は Yacc (Yet Another
   Compiler Compiler) の互換プログラムです。

   yacc

   bison のラッパースクリプト。 yacc プログラムがあるなら
   bison を呼び出さずに yacc を実行します。 -y
   オプションが指定された時は bison を実行します。

   liby.a

   Yacc 互換の関数として yyerror 関数と main
   関数を含むライブラリです。
   このライブラリはあまり使い勝手の良いものではありません。 ただし
   POSIX ではこれが必要になります。

6.30. Procps-3.2.8

   Procps パッケージはプロセス監視を行うプログラムを提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 2.6 MB

6.30.1. Procps のインストール

   以下のパッチを適用して、カーネルが時間きざみの率 (clock
   tick rate)
   を決定する際に表示されるエラーメッセージを抑えます。
patch -Np1 -i ../procps-3.2.8-fix_HZ_errors-
1.patch

   watch
   コマンドにおいて、ユニコードに関する問題を修正するためにパッチを適用し
   ます。
patch -Np1 -i ../procps-3.2.8-watch_unicode-
1.patch

   Makefile におけるバグを修正します。 これは
   make-3.82 を利用した場合に Procps
   がビルドできない点を修正するものです。
sed -i -e 's@\*/module.mk@proc/module.mk ps/
module.mk@' Makefile

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

6.30.2. Procps の構成

   インストールプログラム: free, kill, pgrep,
   pkill, pmap, ps, pwdx, skill,
   slabtop, snice, sysctl, tload, top,
   uptime, vmstat, w, watch
   インストールライブラリ: libproc.so

概略説明

   free

   物理メモリ、スワップメモリの双方において、メモリの使用量、未使用量を表
   示します。

   kill

   プロセスに対してシグナルを送信します。

   pgrep

   プロセスの名前などの属性によりプロセスを調べます。

   pkill

   プロセスの名前などの属性によりプロセスに対してシグナルを送信します。

   pmap

   指定されたプロセスのメモリマップを表示します。

   ps

   現在実行中のプロセスを一覧表示します。

   pwdx

   プロセスが実行されているカレントディレクトリを表示します。

   skill

   指定された条件に合致するプロセスに対してシグナルを送信します。

   slabtop

   リアルタイムにカーネルのスラブキャッシュ (slab cache)
   情報を詳細に示します。

   snice

   指定された条件に合致するプロセスのスケジュール優先度
   (scheduleing priority) を表示します。

   sysctl

   システム稼動中にカーネル設定を修正します。

   tload

   システムの負荷平均 (load average)
   をグラフ化して表示します。

   top

   CPU をより多く利用しているプロセスの一覧を表示します。
   これはリアルタイムにプロセッサーの動作状況を逐次表示します。

   uptime

   システムの稼動時間、ログインユーザー数、システム負荷平均 (load
   average) を表示します。

   vmstat

   仮想メモリの統計情報を表示します。
   そこではプロセス、メモリ、ページング、ブロック入出力
   (Input/Output; IO)、トラップ、CPU
   使用状況を表示します。

   w

   どのユーザーがログインしていて、どこから、そしていつからログインしてい
   るかを表示します。

   watch

   指定されたコマンドを繰り返し実行します。
   そしてその出力結果の先頭の一画面分を表示します。
   出力結果が時間の経過とともにどのように変わるかを確認することができます
   。

   libproc

   本パッケージのほとんどのプログラムが利用している関数を提供します。

6.31. Grep-2.14

   Grep パッケージはファイル内の検索を行うプログラムを提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 30 MB

6.31.1. Grep のインストール

   Grep をコンパイルするための準備をします。
./configure --prefix=/usr --bindir=/bin

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

6.31.2. Grep の構成

   インストールプログラム: egrep, fgrep, grep

概略説明

   egrep

   拡張正規表現 (extended regular
   expression) にマッチした行を表示します。

   fgrep

   固定文字列の一覧にマッチした行を表示します。

   grep

   基本的な正規表現に合致した行を出力します。

6.32. Readline-6.2

   Readline
   パッケージは、コマンドラインの編集や履歴管理を行うライブラリを提供しま
   す。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 17.2 MB

6.32.1. Readline のインストール

   Readline を再インストールすると、それまでの古いライブラリは
   <ライブラリ名>.old というファイル名でコピーされます。
   これは普通は問題ないことですが ldconfig
   によるリンクに際してエラーを引き起こすことがあります。
   これを避けるため以下の二つの sed コマンドを実行します。
sed -i '/MV.*old/d' Makefile.in
sed -i '/{OLDSUFF}/c:' support/shlib-install

   アップストリームにより提供されているバグフィックスのパッチを適用します
   。
patch -Np1 -i ../readline-6.2-fixes-1.patch

   Readline をコンパイルするための準備をします。
./configure --prefix=/usr --libdir=/lib

   パッケージをコンパイルします。
make SHLIB_LIBS=-lncurses

   make オプションの意味:

   SHLIB_LIBS=-lncurses
          このオプションにより Readline を
          libncurses ライブラリ (その実体は
          libncursesw ライブラリ) にリンクします。

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

   スタティックライブラリを適切なディレクトリに移動します。
mv -v /lib/lib{readline,history}.a /usr/lib

   次に /lib ディレクトリにある .so
   ファイルを削除して、それらを /usr/lib にリンクし直します。
rm -v /lib/lib{readline,history}.so
ln -sfv ../../lib/libreadline.so.6 /usr/lib/
libreadline.so
ln -sfv ../../lib/libhistory.so.6 /usr/lib/l
ibhistory.so

   必要ならドキュメントをインストールします。
mkdir   -v       /usr/share/doc/readline-6.2
install -v -m644 doc/*.{ps,pdf,html,dvi} \
                 /usr/share/doc/readline-6.2

6.32.2. Readline の構成

   インストールライブラリ: libhistory.{a,so},
   libreadline.{a,so}
   インストールディレクトリ:
   /usr/include/readline,
   /usr/share/readline,
   /usr/share/doc/readline-6.2

概略説明

   libhistory

   入力履歴を適切に再現するためのユーザーインターフェースを提供します。

   libreadline

   コマンドラインインターフェースを提供しているさまざまなコマンドにおいて
   、適切なインターフェースを提供します。

6.33. Bash-4.2

   Bash は Bourne-Again SHell を提供します。
   概算ビルド時間: 1.7 SBU
   必要ディスク容量: 45 MB

6.33.1. Bash のインストール

   まずはアップストリームにより提供されている以下のパッチを適用し、種々の
   バグを修正します。
patch -Np1 -i ../bash-4.2-fixes-8.patch

   Bash をコンパイルするための準備をします。
./configure --prefix=/usr
  \
            --bindir=/bin
  \
            --htmldir=/usr/share/doc/bash-4.
2 \
            --without-bash-malloc
  \
            --with-installed-readline

   configure オプションの意味:

   --htmldir
          このオプションは HTML
          ドキュメントをインストールするディレクトリを指定します。

   --with-installed-readline
          このオプションは Bash が持つ独自の
          readline
          ライブラリではなく、既にインストールした
          readline ライブラリを用いることを指示します。

   パッケージをコンパイルします。
make

   テストスィートを実行しない場合は「パッケージをインストールします。」と
   書かれた箇所まで読み飛ばしてください。

   テストを実施するにあたっては nobody
   ユーザーによるソースツリーへの書き込みを可能とします。
chown -Rv nobody .

   nobody ユーザーでテストを実行します。
su nobody -s /bin/bash -c "PATH=$PATH make t
ests"

   パッケージをインストールします。
make install

   新たにコンパイルした bash
   プログラムを実行します。(この時点までに実行されていたものが置き換えら
   れます。)
exec /bin/bash --login +h

注記

   ここで指定しているパラメーターは、対話形式のログインシェルとして、また
   ハッシュ機能を無効にして bash プロセスを起動します。
   これにより新たに構築するプログラム類は構築後すぐに利用できることになり
   ます。

6.33.2. Bash の構成

   インストールプログラム: bash, bashbug, sh
   (bash へのリンク)
   インストールディレクトリ:
   /usr/share/doc/bash-4.2

概略説明

   bash

   広く活用されているコマンドインタープリター。
   処理実行前には、指示されたコマンドラインをさまざまに展開したり置換した
   りします。
   この機能があるからこそ、インタープリター機能を強力なものにしています。

   bashbug

   bash
   に関連したバグ報告を、標準書式で生成しメール送信することを補助するシェ
   ルスクリプトです。

   sh

   bash プログラムへのシンボリックリンク。 sh
   として起動された際には、かつてのバージョンである sh
   の起動時の動作と、出来るだけ同じになるように振舞います。 同時に
   POSIX 標準に適合するよう動作します。

6.34. Libtool-2.4.2

   Libtool パッケージは GNU
   汎用ライブラリをサポートするスクリプトを提供します。
   これは複雑な共有ライブラリをラップして一貫した可搬性を実現します。
   概算ビルド時間: 3.0 SBU
   必要ディスク容量: 37 MB

6.34.1. Libtool のインストール

   Libtool をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。(約 3.0 SBU)
make check

   パッケージをインストールします。
make install

6.34.2. Libtool の構成

   インストールプログラム: libtool,libtoolize
   インストールライブラリ: libltdl.{a,so}
   インストールディレクトリ: /usr/include/libltdl,
   /usr/share/libtool

概略説明

   libtool

   汎用的なライブラリ構築支援サービスを提供します。

   libtoolize

   パッケージに対して libtool
   によるサポートを加える標準的手法を提供します。

   libltdl

   dlopen を行うライブラリの複雑さを隠蔽します。

6.35. GDBM-1.10

   GDBM パッケージは GNU データベースマネージャーを提供します。
   このデータベースはディスクファイル形式 (disk file
   format)
   のデータベースで、キーとデータのペア情報を一つのファイルに保持します。
   各レコードのデータはユニークキーによりインデックスづけされます。
   テキストファイルに保存された状態に比べて、より早く情報を抽出することが
   できます。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 8.5 MB

6.35.1. GDBM のインストール

   GDBM をコンパイルするための準備をします。
./configure --prefix=/usr --enable-libgdbm-c
ompat

   configure オプションの意味:

   --enable-libgdbm-compat
          このオプションは libgdbm
          互換ライブラリをビルドすることを指示します。 LFS
          パッケージではない他のパッケージでは、かつての古い
          DBM ルーチンを必要とするものがあるかもしれません。

   パッケージをコンパイルします。
make

   ビルド結果をテストする場合は以下を実行します。
make check

   パッケージをインストールします。
make install

6.35.2. GDBM の構成

   インストールプログラム: testgdbm
   インストールライブラリ: libgdbm.{so,a},
   libgdbm_compat.{so,a}

概略説明

   testgdbm

   GDBM データベースをテストし修復します。

   libgdbm

   ハッシュデータベースを取り扱う関数を提供します。

6.36. Inetutils-1.9.1

   Inetutils
   パッケージはネットワーク制御を行う基本的なプログラムを提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 27 MB

6.36.1. Inetutils のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' lib/stdio.in.h

   Inetutils をコンパイルするための準備をします。
./configure --prefix=/usr  \
    --libexecdir=/usr/sbin \
    --localstatedir=/var   \
    --disable-ifconfig     \
    --disable-logger       \
    --disable-syslogd      \
    --disable-whois        \
    --disable-servers

   configure オプションの意味:

   --disable-ifconfig
          このオプションは ifconfig
          プログラムをインストールしないようにします。
          このプログラムはネットワークインターフェースを設定するた
          めに利用するものです。 LFS では IPRoute2
          パッケージが提供する ip
          コマンドを使うことにしています。

   --disable-logger
          このオプションは logger
          プログラムをインストールしないようにします。
          このプログラムはシステムログデーモンに対してメッセージ出
          力を行うスクリプトにて利用されます。
          ここでこれをインストールしないのは、後に
          Util-linux
          パッケージにおいて、以前のバージョンをインストールするた
          めです。

   --disable-syslogd
          このオプションは Inetutils
          がシステムログデーモンをインストールしないようにします。
          これらは Sysklogd
          パッケージにおいてインストールします。

   --disable-whois
          このオプションは whois
          のクライアントプログラムをインストールしないようにします
          。 このプログラムはもはや古いものです。 より良い
          whois プログラムのインストール手順については
          BLFS ブックにて説明しています。

   --disable-servers
          このオプションは Inetutils
          パッケージに含まれるさまざまなネットワークサーバーをイン
          ストールしないようにします。 これらのサーバーは基本的な
          LFS システムには不要なものと考えられます。
          サーバーの中には本質的にセキュアでないものがあり、信頼の
          あるネットワーク内でのみしか安全に扱うことができないもの
          もあります。 より詳細な情報は
          [669]http://www.linuxfromscr
          atch.org/blfs/view/svn/basic
          net/inetutils.html
          を参照してください。
          サーバーの多くは、これに代わる他の適切なものが存在します
          。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install
make -C doc html
make -C doc install-html docdir=/usr/share/d
oc/inetutils-1.9.1

   プログラムのいくつかを FHS
   コンプライアントが定めるディレクトリに移動させます。
mv -v /usr/bin/{hostname,ping,ping6} /bin
mv -v /usr/bin/traceroute /sbin

6.36.2. Inetutils の構成

   インストールプログラム: ftp, hostname, ping,
   ping6, rcp, rexec, rlogin, rsh,
   talk, telnet, tftp, traceroute

概略説明

   ftp

   ファイル転送プロトコル (file transfer
   protocol) に基づくプログラム。

   hostname

   ホスト名の表示または設定を行います。

   ping

   エコーリクエスト (echo-request)
   パケットを送信し、返信にどれだけ要したかを表示します。

   ping6

   IPv6 ネットワーク向けの ping

   rcp

   リモートファイルコピーを行います。

   rexec

   リモートホスト上にてコマンドを実行します。

   rlogin

   リモートログインを行います。

   rsh

   リモートシェルを起動します。

   talk

   他ユーザーとのチャットに利用します。

   telnet

   TELNET プロトコルインターフェース。

   tftp

   軽量なファイル転送プログラム。(trivial file
   transfer program)

   traceroute

   処理起動したホストからネットワーク上の他のホストまで、送出したパケット
   の経由ルートを追跡します。 その合間に検出されたすべての hops
   (= ゲートウェイ) も表示します。

6.37. Perl-5.16.1

   Perl パッケージは Perl 言語 (Practical
   Extraction and Report Language)
   を提供します。
   概算ビルド時間: 7.5 SBU
   必要ディスク容量: 247 MB

6.37.1. Perl のインストール

   Perl の設定ファイルが /etc/hosts
   ファイルを参照するので、まずはこのファイルを生成します。
   このファイルはテストスイートを実行する際にも利用されます。
echo "127.0.0.1 localhost $(hostname)" > /et
c/hosts

   ここでビルドするバージョンの Perl は
   Compress::Raw::Zlib モジュールをビルドします。
   デフォルトではビルドの際に Zlib のソースを内部的にコピーします。
   以下のコマンドは、既にインストールされている Zlib
   ライブラリを用いるようにします。
sed -i -e "s|BUILD_ZLIB\s*= True|BUILD_ZLIB
= False|"           \
       -e "s|INCLUDE\s*= ./zlib-src|INCLUDE
   = /usr/include|" \
       -e "s|LIB\s*= ./zlib-src|LIB        =
 /usr/lib|"         \
    cpan/Compress-Raw-Zlib/config.in

   Perl
   のビルド設定を完全に制御したい場合は、以下のコマンドから「-des」オ
   プションを取り除くことで手作業により操作を進めます。 Perl
   が自動的に判別するデフォルト設定に従うので良いのであれば、以下のコマン
   ドにより Perl をコンパイルするための準備をします。
sh Configure -des -Dprefix=/usr
    \
                  -Dvendorprefix=/usr
    \
                  -Dman1dir=/usr/share/man/m
an1 \
                  -Dman3dir=/usr/share/man/m
an3 \
                  -Dpager="/usr/bin/less -is
R"  \
                  -Duseshrplib

   configure オプションの意味:

   -Dvendorprefix=/usr
          このオプションは各種の perl
          モジュールをどこにインストールするかを指定します。

   -Dpager="/usr/bin/less -isR"
          このオプションは perldoc プログラムが less
          プログラムを呼び出す際のエラーを正します。

   -Dman1dir=/usr/share/man/man1
          -Dman3dir=/usr/share/man/man
          3
          まだ Groff をインストールしていないので
          Configure スクリプトが Perl の man
          ページを必要としないと判断してしまいます。
          このオプションを指定することによりその判断を正します。

   -Duseshrplib
          Perl モジュールの中で必要とされる共有ライブラリ
          libperl をビルドします。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。(約 2.5 SBU)
make -k test

   パッケージをインストールします。
make install

6.37.2. Perl の構成

   インストールプログラム: a2p, c2ph,
   config_data, corelist, cpan,
   cpan2dist, cpanp, cpanp-run-perl,
   dprofpp, enc2xs, find2perl, h2ph,
   h2xs, instmodsh, json_pp,
   libnetcfg, perl, perl5.16.1 (perl
   へのリンク), perlbug, perldoc, perlivp,
   perlthanks (perlbug へのリンク), piconv,
   pl2pm, pod2html, pod2latex,
   pod2man, pod2text, pod2usage,
   podchecker, podselect, prove, psed
   (s2p へのリンク), pstruct (c2ph へのリンク),
   ptar, ptardiff, ptargrep, s2p,
   shasum, splain, xsubpp
   インストールライブラリ: ここでは列記できないほどの数多くのライブラリ
   インストールディレクトリ: /usr/lib/perl5

概略説明

   a2p

   awk スクリプトを Perl スクリプトに変換します。

   c2ph

   cc -g -S によって生成されるような C
   言語構造体をダンプします。

   config_data

   Perl モジュールの設定を検索または変更します。

   corelist

   Module::CoreList
   に対するコマンドラインフロントエンド。

   cpan

   コマンドラインから CPAN (Comprehensive Perl
   Archive Network) との通信を行います。

   cpan2dist

   CPANPLUS の配布物生成ツール。

   cpanp

   CPANPLUS ランチャー。

   cpanp-run-perl

   Spawn
   プロセスにおいて出力処理が行われた後に、出力バッファをクリアするために
   利用するPerl スクリプト。

   dprofpp

   Perl プロファイルデータを表示します。

   enc2xs

   Unicode キャラクターマッピングまたは Tcl
   エンコーディングファイルから、Perl の Encode
   拡張モジュールを構築します。

   find2perl

   find コマンドを Perl に変換します。

   h2ph

   C 言語のヘッダーファイル .hを Perl のヘッダーファイル
   .ph に変換します。

   h2xs

   C 言語のヘッダーファイル .h を Perl 拡張 (Perl
   extension) に変換します。

   instmodsh

   インストールされている Perl
   モジュールを調査するシェルスクリプト。
   インストールされたモジュールから tarball
   を作ることもできます。

   json_pp

   特定の入出力フォーマット間でデータを変換します。

   libnetcfg

   Perl モジュール libnet の設定に利用します。

   perl

   C 言語、sed、awk、sh
   の持つ機能を寄せ集めて出来上がった言語。

   perl5.16.1

   perl へのハードリンク。

   perlbug

   Perl
   およびそのモジュールに関するバグ報告を生成して、電子メールを送信します
   。

   perldoc

   pod フォーマットのドキュメントを表示します。 pod
   フォーマットは Perl のインストールツリーあるいは Perl
   スクリプト内に埋め込まれています。

   perlivp

   Perl Installation Verification
   Procedure のこと。 Perl
   とライブラリが正しくインストールできているかを調べるものです。

   perlthanks

   感謝のメッセージ (Thank you messages)
   を電子メールで Perl 開発者に送信します。

   piconv

   キャラクターエンコーディングを変換する iconv の Perl
   バージョン。

   pl2pm

   Perl4 の .pl ファイルを Perl5 の .pm
   モジュールファイルへの変換を行うツール。

   pod2html

   pod フォーマットから HTML フォーマットに変換します。

   pod2latex

   pod フォーマットから LaTeX フォーマットへ変換します。

   pod2man

   pod データを *roff の入力ファイル形式に変換します。

   pod2text

   pod データをアスキーテキスト形式に変換します。

   pod2usage

   ファイル内に埋め込まれた pod
   ドキュメントから使用方法の記述部分を表示します。

   podchecker

   pod 形式の文書ファイルに対して文法をチェックします。

   podselect

   pod ドキュメントに対して指定したセクションを表示します。

   prove

   Test::Harness
   モジュールのテストを行うコマンドラインツール。

   psed

   ストリームエディター sed の Perl バージョン。

   pstruct

   cc -g -S によって生成されるような C
   言語構造体をダンプします。

   ptar

   Perl で書かれた tar 相当のプログラム。

   ptardiff

   アーカイブの抽出前後を比較する Perl プログラム。

   ptargrep

   tar
   アーカイブ内のファイルに対してパターンマッチングを適用するための
   Perl プログラム。

   s2p

   sed スクリプトを Perl スクリプトに変換します。

   shasum

   SHA チェックサム値を表示またはチェックします。

   splain

   Perl スクリプトの警告エラーの診断結果を詳細 (verbose)
   に出力するために利用します。

   xsubpp

   Perl の XS コードを C 言語コードに変換します。

6.38. Autoconf-2.69

   Autoconf
   パッケージは、ソースコードを自動的に設定するシェルスクリプトの生成を行
   うプログラムを提供します。
   概算ビルド時間: 4.5 SBU
   必要ディスク容量: 17.1 MB

6.38.1. Autoconf のインストール

   Autoconf をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   このテストはおよそ 4.7 SBU ほど要します。 そのうちの
   6つのテストは Automake
   を利用するものであるためスキップされます。
   すべてのテストを網羅したいなら、Automake
   をインストールした後に、再度テストを実行することが必要です。

   パッケージをインストールします。
make install

6.38.2. Autoconf の構成

   インストールプログラム: autoconf, autoheader,
   autom4te, autoreconf, autoscan,
   autoupdate, ifnames
   インストールディレクトリ: /usr/share/autoconf

概略説明

   autoconf

   ソースコードを提供するソフトウェアパッケージを自動的に設定する
   (configure する) シェルスクリプトを生成します。
   これにより数多くの Unix 互換システムへの適用を可能とします。
   生成される設定 (configure)
   スクリプトは独立して動作します。 つまりこれを実行するにあたっては
   autoconf プログラムを必要としません。

   autoheader

   C言語の #define 文を configure
   が利用するためのテンプレートファイルを生成するツール。

   autom4te

   M4 マクロプロセッサーに対するラッパー。

   autoreconf

   autoconf と automake
   のテンプレートファイルが変更された時に、自動的に autoconf、
   autoheader、aclocal、automake、gettext
   ize、libtoolize を無駄なく適正な順で実行します。

   autoscan

   ソフトウェアパッケージに対する configure.in
   ファイルの生成をサポートします。
   ディレクトリツリー内のソースファイルを調査して、共通的な可搬性に関わる
   問題を見出します。 そして configure.scan
   ファイルを生成して、そのパッケージの configure.in
   ファイルの雛形として提供します。

   autoupdate

   configure.in ファイルにおいて、かつての古い
   autoconf
   マクロが利用されている場合に、それを新しいマクロに変更します。

   ifnames

   ソフトウェアパッケージにおける configure.in
   ファイルの記述作成をサポートします。 これはそのパッケージが利用する
   C プリプロセッサーの条件ディレクティブの識別子を出力します。
   可搬性を考慮した構築ができている場合は、本プログラムが
   configure
   スクリプトにおいて何をチェックするべきかを決定してくれます。 また
   autoscan によって生成された configure.in
   ファイルでの過不足を調整する働きもします。

6.39. Automake-1.12.3

   Automake パッケージは Autoconf が利用する
   Makefile などを生成するプログラムを提供します。
   概算ビルド時間: 0.1 SBU 以下 (テストスイートを含めると
   34.1 SBU)
   必要ディスク容量: 100 MB

6.39.1. Automake のインストール

   Automake をコンパイルするための準備をします。
./configure --prefix=/usr --docdir=/usr/shar
e/doc/automake-1.12.3

   パッケージをコンパイルします。
make

注記

   テスト処理には 30 SBU 以上の時間を要します。
   テストを実施することは、あまりお勧めしません。

   ビルド結果をテストするには、以下を実行します。
make check

   パッケージをインストールします。
make install

6.39.2. Automake の構成

   インストールプログラム: acinstall, aclocal,
   aclocal-1.12, automake,
   automake-1.12, compile,
   config.guess, config.sub, depcomp,
   elisp-comp, install-sh, mdate-sh,
   missing, mkinstalldirs, py-compile,
   symlink-tree, ylwrap
   インストールディレクトリ:
   /usr/share/aclocal-1.12,
   /usr/share/automake-1.12,
   /usr/share/doc/automake-1.12.3

概略説明

   acinstall

   aclocal 風の M4 ファイルをインストールするスクリプト。

   aclocal

   configure.in ファイルの内容に基づいて
   aclocal.m4 ファイルを生成します。

   aclocal-1.12

   aclocal へのハードリンク。

   automake

   Makefile.am ファイルから Makefile.in
   ファイルを自動生成するツール。 パッケージ内のすべての
   Makefile.in
   ファイルを作るには、このプログラムをトップディレクトリから実行します。
   configure.in ファイルを調べて、適切な
   Makefile.am ファイルを検索します。 そして対応する
   Makefile.in ファイルを生成します。

   automake-1.12

   automake へのハードリンク。

   compile

   コンパイラーのラッパースクリプト。

   config.guess

   指定されたビルドタイプ、ホストタイプ、ターゲットタイプに対しての正規化
   した「三つ組」を推定するスクリプト。

   config.sub

   設定を検証するサブルーチンスクリプト。

   depcomp

   プログラムをコンパイルするためのスクリプトで、コンパイル結果を得ると同
   時に依存情報も生成します。

   elisp-comp

   Emacs Lisp コードをバイトコンパイルします。

   install-sh

   プログラムやスクリプトやデータファイルをインストールするスクリプト。

   mdate-sh

   ファイルやディレクトリの更新時刻を表示するスクリプト。

   missing

   インストール中に GNU
   プログラムが存在しなかった場合に、共通のスタブ (stub)
   プログラムとして動作するスクリプト。

   mkinstalldirs

   ディレクトリツリーを生成するスクリプト。

   py-compile

   Python プログラムをコンパイルします。

   symlink-tree

   ディレクトリツリーに対するシンボリックリンクのツリーを生成するスクリプ
   ト。

   ylwrap

   lex と yacc に対するラッパースクリプト。

6.40. Diffutils-3.2

   Diffutils
   パッケージはファイルやディレクトリの差分を表示するプログラムを提供しま
   す。
   概算ビルド時間: 0.5 SBU
   必要ディスク容量: 25 MB

6.40.1. Diffutils のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' lib/stdio.in.h

   Diffutils をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   ビルド結果をテストするなら以下を実行します。
make check

   パッケージをインストールします。
make install

6.40.2. Diffutils の構成

   インストールプログラム: cmp, diff, diff3,
   sdiff

概略説明

   cmp

   二つのファイルを比較して、どこが異なるか、あるいは何バイト異なるかを示
   します。

   diff

   二つのファイルまたは二つのディレクトリを比較して、ファイル内のどの行に
   違いがあるかを示します。

   diff3

   三つのファイルの各行を比較します。

   sdiff

   二つのファイルを結合して対話的に結果を出力します。

6.41. Gawk-4.0.1

   Gawk
   パッケージはテキストファイルを操作するプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 30 MB

6.41.1. Gawk のインストール

   Gawk をコンパイルするための準備をします。
./configure --prefix=/usr --libexecdir=/usr/
lib

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

   必要ならドキュメントをインストールします。
mkdir -v /usr/share/doc/gawk-4.0.1
cp    -v doc/{awkforai.txt,*.{eps,pdf,jpg}}
/usr/share/doc/gawk-4.0.1

6.41.2. Gawk の構成

   インストールプログラム: awk (gawk へのリンク),
   dgawk, gawk, gawk-4.0.1, grcat,
   igawk, pgawk, pgawk-4.0.1, pwcat
   インストールディレクトリ: /usr/lib/awk,
   /usr/share/awk

概略説明

   awk

   gawk へのリンク。

   dgawk

   Awk デバッガー。

   gawk

   テキストファイルを操作するプログラム。 これは awk の GNU
   インプリメンテーションです。

   gawk-4.0.1

   gawk へのハードリンク。

   grcat

   グループデータベースファイル /etc/group をダンプします。

   igawk

   gawk に対してファイルをインクルードする機能を付与します。

   pgawk

   gawk のプロファイル版。

   pgawk-4.0.1

   pgawk へのハードリンク。

   pwcat

   パスワードデータベースファイル /etc/passwd
   をダンプします。

6.42. Findutils-4.4.2

   Findutils
   パッケージはファイル検索を行うプログラムを提供します。
   このプログラムはディレクトリツリーを再帰的に検索したり、データベースの
   生成、保守、検索を行います。
   (データベースによる検索は再帰的検索に比べて処理速度は速いものですが、
   データベースが最新のものに更新されていない場合は信頼できない結果となり
   ます。)
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 29 MB

6.42.1. Findutils のインストール

   Findutils をコンパイルするための準備をします。
./configure --prefix=/usr
\
            --libexecdir=/usr/lib/findutils
\
            --localstatedir=/var/lib/locate

   configure オプションの意味:

   --localstatedir
          locate データベースの場所を FHS
          コンプライアンスが定めているディレクトリ
          /var/lib/locate に変更します。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするなら以下を実行します。
make check

   パッケージをインストールします。
make install

   LFS ブートスクリプトパッケージでは、いくつかのスクリプトが
   find を利用しています。 /usr
   ディレクトリはブート処理の初めでは認識できないため、このプログラムはル
   ートパーティションに置く必要があります。 同じく updatedb
   スクリプトは明示的なパスを修正する必要があります。
mv -v /usr/bin/find /bin
sed -i 's/find:=${BINDIR}/find:=\/bin/' /usr
/bin/updatedb

6.42.2. Findutils の構成

   インストールプログラム: bigram, code, find,
   frcode, locate, oldfind, updatedb,
   xargs
   インストールディレクトリ: /usr/lib/findutils

概略説明

   bigram

   かつて利用されていたコマンドで locate
   データベースを生成します。

   code

   かつて利用されていたコマンドで locate
   データベースを生成します。 これは frcode の前身です。

   find

   指定された条件に合致するファイルを、指定されたディレクトリツリー内から
   検索します。

   frcode

   updatedb
   コマンドから呼び出され、ファイル名の一覧を圧縮します。 これは前置圧縮
   (front-compression)
   を行うもので、データベースサイズを 1/4 から 1/5
   に減らします。

   locate

   ファイル名データベースを検索して、指定された文字列を含むもの、または検
   索パターンに合致するものを表示します。

   oldfind

   find の古い版であり、find
   とは異なるアルゴリズムを用いています。

   updatedb

   locate データベースを更新します。
   これはすべてのファイルシステムを検索します。
   (検索非対象とする設定がない限りは、マウントされているすべてのファイル
   システムを対象とします。)
   そして検索されたファイル名をデータベースに追加します。

   xargs

   指定されたコマンドに対してファイル名の一覧を受け渡して実行します。

6.43. Flex-2.5.37

   Flex
   パッケージは、字句パターンを認識するプログラムを生成するユーティリティ
   を提供します。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 39 MB

6.43.1. Flex のインストール

   まずは縮退テスト (regression test)
   に関しての修正を行います。
patch -Np1 -i ../flex-2.5.37-bison-2.6.1-1.p
atch

   Flex をコンパイルするための準備をします。
./configure --prefix=/usr --mandir=/usr/shar
e/man --infodir=/usr/share/info

   パッケージをコンパイルします。
make

   コンパイル結果をテストするために以下を実行します。(約 0.5
   SBU)
make -k check

   最新の bison
   との互換性がないことから、失敗するテストが二つあります。

   パッケージをインストールします。
make install

   他のパッケージの中には lex ライブラリが /usr/lib
   ディレクトリにあるものとして動作しています。
   これに対応するためシンボリックリンクを作成します。
ln -sv libfl.a /usr/lib/libl.a

   プログラムの中には flex コマンドが用いられず、その前身である
   lex コマンドを実行しようとするものがあります。
   そういったプログラムへ対応するために lex
   という名のラッパースクリプトを生成します。 このスクリプトは lex
   のエミュレーションモードとして flex を実行します。
cat > /usr/bin/lex << "EOF"
#!/bin/sh
# Begin /usr/bin/lex

exec /usr/bin/flex -l "$@"

# End /usr/bin/lex
EOF
chmod -v 755 /usr/bin/lex

   必要ならドキュメントファイル flex.pdf をインストールします。
mkdir -v /usr/share/doc/flex-2.5.37
cp    -v doc/flex.pdf /usr/share/doc/flex-2.
5.37

6.43.2. Flex の構成

   インストールプログラム: flex, lex
   インストールライブラリ: libfl.a, libfl_pic.a

概略説明

   flex

   テキスト内のパターンを認識するためのプログラムを生成するツール。
   これは多彩なパターン検索の規則構築を可能とします。
   これを利用することで特別なプログラムの生成が不要となります。

   lex

   lex のエミュレーションモードとして flex
   を実行するスクリプト。

   libfl.a

   flex ライブラリ。

6.44. Gettext-0.18.1.1

   Gettext パッケージは国際化を行うユーティリティを提供します。
   各種プログラムに対して NLS (Native Language
   Support) を含めてコンパイルすることができます。
   つまり各言語による出力メッセージが得られることになります。
   概算ビルド時間: 2.3 SBU
   必要ディスク容量: 180 MB

6.44.1. Gettext のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' gettext-*/*/stdio.i
n.h

   Gettext をコンパイルするための準備をします。
./configure --prefix=/usr \
            --docdir=/usr/share/doc/gettext-
0.18.1.1

   パッケージをコンパイルします。
make

   コンパイル結果をテストするなら (3 SBU
   程度の処理時間を要しますが) 以下を実行します。
make check

   パッケージをインストールします。
make install

6.44.2. Gettext の構成

   インストールプログラム: autopoint,
   config.charset, config.rpath,
   envsubst, gettext, gettext.sh,
   gettextize, hostname, msgattrib,
   msgcat, msgcmp, msgcomm, msgconv,
   msgen, msgexec, msgfilter, msgfmt,
   msggrep, msginit, msgmerge,
   msgunfmt, msguniq, ngettext,
   recode-sr-latin, xgettext
   インストールライブラリ: libasprintf.{a,so},
   libgettextlib.so,
   libgettextpo.{a,so},
   libgettextsrc.so,
   preloadable_libintl.so
   インストールディレクトリ: /usr/lib/gettext,
   /usr/share/doc/gettext-0.18.1.1,
   /usr/share/gettext

概略説明

   autopoint

   Gettext 標準のインフラストラクチャーファイル
   (infrastructure file)
   をソースパッケージ内にコピーします。

   config.charset

   システム依存の、キャラクターエンコーディングのエイリアス対応表を出力し
   ます。

   config.rpath

   システムに依存する変数一覧を出力します。
   その変数とは、実行モジュールにおける共有ライブラリの検索パスをどのよう
   に設定するかを示すものです。

   envsubst

   環境変数をシェル書式の文字列として変換します。

   gettext

   メッセージカタログ内の翻訳文を参照し、メッセージをユーザーの利用言語に
   変換します。

   gettext.sh

   主に gettext におけるシェル関数ライブラリとして機能します。

   gettextize

   パッケージの国際化対応を始めるにあたり、標準的な Gettext
   関連ファイルを、指定されたパッケージのトップディレクトリにコピーします
   。

   hostname

   さまざまな書式のネットワークホスト名を表示します。

   msgattrib

   翻訳カタログ内のメッセージの属性に応じて、そのメッセージを抽出します。
   またメッセージの属性を操作します。

   msgcat

   指定された .po ファイルを連結します。

   msgcmp

   二つの .po ファイルを比較して、同一の msgid
   による文字定義が両者に含まれているかどうかをチェックします。

   msgcomm

   指定された .po ファイルにて共通のメッセージを検索します。

   msgconv

   翻訳カタログを別のキャラクターエンコーディングに変換します。

   msgen

   英語用の翻訳カタログを生成します。

   msgexec

   翻訳カタログ内の翻訳文すべてに対してコマンドを適用します。

   msgfilter

   翻訳カタログ内の翻訳文すべてに対してフィルター処理を適用します。

   msgfmt

   翻訳カタログからバイナリメッセージカタログを生成します。

   msggrep

   指定された検索パターンに合致する、あるいは指定されたソースファイルに属
   する翻訳カタログの全メッセージを出力します。

   msginit

   新規に .po ファイルを生成します。
   その時にはユーザーの環境設定に基づいてメタ情報を初期化します。

   msgmerge

   二つの翻訳ファイルを一つにまとめます。

   msgunfmt

   バイナリメッセージカタログを翻訳テキストに逆コンパイルします。

   msguniq

   翻訳カタログ中に重複した翻訳がある場合にこれを統一します。

   ngettext

   出力メッセージをユーザーの利用言語に変換します。
   特に複数形のメッセージを取り扱います。

   recode-sr-latin

   セルビア語のテキストに対し、キリル文字からラテン文字にコード変換します
   。

   xgettext

   指定されたソースファイルから、翻訳対象となるメッセージ行を抽出して、翻
   訳テンプレートとして生成します。

   libasprintf

   autosprintf クラスを定義します。 これは C++
   プログラムにて利用できる C
   言語書式の出力ルーチンを生成するものです。 <string> 文字列と
   <iostream> ストリームを利用します。

   libgettextlib

   さまざまな Gettext
   プログラムが利用している共通的ルーチンを提供するプライベートライブラリ
   です。 これは一般的な利用を想定したものではありません。

   libgettextpo

   .po ファイルの出力に特化したプログラムを構築する際に利用します。
   Gettext が提供する標準的なアプリケーション
   (msgcomm、msgcmp、msgattrib、msgen)
   などでは処理出来ないものがある場合に、このライブラリを利用します。

   libgettextsrc

   さまざまな Gettext
   プログラムが利用している共通的ルーチンを提供するプライベートライブラリ
   です。 これは一般的な利用を想定したものではありません。

   preloadable_libintl

   LD_PRELOAD が利用するライブラリ。
   翻訳されていないメッセージを収集 (log) する libintl
   をサポートします。

6.45. Groff-1.21

   Groff
   パッケージはテキストを処理して整形するプログラムを提供します。
   概算ビルド時間: 0.5 SBU
   必要ディスク容量: 83 MB

6.45.1. Groff のインストール

   Groff はデフォルトの用紙サイズを設定する環境変数 PAGE
   を参照します。 米国のユーザーであれば PAGE=letter
   と設定するのが適当です。 その他のユーザーなら PAGE=A4
   とするのが良いかもしれません。
   このデフォルト用紙サイズはコンパイルにあたって設定されます。
   「A4」なり「letter」なりの値は /etc/papersize
   ファイルにて設定することも可能です。

   Groff をコンパイルするための準備をします。
PAGE=<paper_size> ./configure --prefix=/usr

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

   xman
   のようなドキュメント関連プログラムが正しく動作するように、以下のような
   シンボリックリンクを作成します。
ln -sv eqn /usr/bin/geqn
ln -sv tbl /usr/bin/gtbl

6.45.2. Groff の構成

   インストールプログラム: addftinfo, afmtodit,
   chem, eqn, eqn2graph, gdiffmk, geqn
   (eqn へのリンク), grap2graph, grn,
   grodvi, groff, groffer, grog,
   grolbp, grolj4, grops, grotty, gtbl
   (tbl へのリンク), hpftodit, indxbib,
   lkbib, lookbib, mmroff, neqn,
   nroff, pdfroff, pfbtops, pic,
   pic2graph, post-grohtml, preconv,
   pre-grohtml, refer, roff2dvi,
   roff2html, roff2pdf, roff2ps,
   roff2text, roff2x, soelim, tbl,
   tfmtodit, troff
   インストールディレクトリ: /usr/lib/groff,
   /usr/share/doc/groff-1.21,
   /usr/share/groff

概略説明

   addftinfo

   troff のフォントファイルを読み込んで groff
   システムが利用する付加的なフォントメトリック情報を追加します。

   afmtodit

   groff と grops が利用するフォントファイルを生成します。

   chem

   化学構造図 (chemical structure diagrams)
   を生成するための Groff プロセッサー。

   eqn

   troff の入力ファイル内に埋め込まれている記述式をコンパイルして
   troff が解釈できるコマンドとして変換します。

   eqn2graph

   troff の EQN (数式) を、刈り込んだ (crop した)
   イメージに変換します。

   gdiffmk

   groff、nroff、troff
   の入力ファイルを比較して、その差異を出力します。

   geqn

   eqn へのリンク。

   grap2graph

   grap ダイアグラムを、刈り込んだ (crop した)
   ビットマップイメージに変換します。

   grn

   gremlin 図を表すファイルを処理するための groff
   プリプロセッサー。

   grodvi

   TeX の dvi フォーマットを生成するための groff
   ドライバープログラム。

   groff

   groff 文書整形システムのためのフロントエンド。 通常は
   troff
   プログラムを起動し、指定されたデバイスに適合したポストプロセッサーを呼
   び出します。

   groffer

   groff ファイルや man ページを X 上や TTY
   端末上に表示します。

   grog

   入力ファイルを読み込んで、印刷時には groff
   コマンドオプションのどれが必要かを推定します。 コマンドオプションは
   -e、-man、-me、-mm、-ms、-p、-s のいずれかです。
   そしてそのオプションを含んだ groff コマンドを表示します。

   grolbp

   Canon CAPSL プリンター (LBP-4 または LBP-8
   シリーズのレーザープリンター) に対する groff
   ドライバープログラム。

   grolj4

   HP LaserJet 4 プリンターにて利用される PCL5
   フォーマットの出力を生成する groff のドライバープログラム。

   grops

   GNU troff の出力を PostScript に変換します。

   grotty

   GNU troff
   の出力を、タイプライター風のデバイスに適した形式に変換します。

   gtbl

   tbl へのリンク。

   hpftodit

   HP のタグ付けが行われたフォントメトリックファイルから、groff
   -Tlj4 コマンドにて利用されるフォントファイルを生成します。

   indxbib

   指定されたファイル内に示される参考文献データベース
   (bibliographic database)
   に対しての逆引きインデックス (inverted index)
   を生成します。 これは refer、lookbib、lkbib
   といったコマンドが利用します。

   lkbib

   指定されたキーを用いて参考文献データベースを検索し、合致したすべての情
   報を表示します。

   lookbib

   (標準入力が端末であれば)
   標準エラー出力にプロンプトを表示して、標準入力から複数のキーワードを含
   んだ一行を読み込みます。
   そして指定されたファイルにて示される参考文献データベース内に、そのキー
   ワードが含まれるかどうかを検索します。
   キーワードが含まれるものを標準出力に出力します。入力がなくなるまでこれ
   を繰り返します。

   mmroff

   groff 用の単純なプリプロセッサー。

   neqn

   数式を ASCII (American Standard Code
   for Information Interchange)
   形式で出力します。

   nroff

   groff を利用して nroff
   コマンドをエミュレートするスクリプト。

   pdfroff

   groff を利用して pdf 文書ファイルを生成します。

   pfbtops

   .pfb フォーマットの PostScript フォントを ASCII
   フォーマットに変換します。

   pic

   troff または TeX
   の入力ファイル内に埋め込まれた図の記述を、troff または TeX
   が処理できるコマンドの形式に変換します。

   pic2graph

   PIC ダイアグラムを、刈り込んだ (crop した)
   イメージに変換します。

   post-grohtml

   GNU troff の出力を HTML に変換します。

   preconv

   入力ファイルのエンコーディングを GNU troff
   が取り扱うものに変換します。

   pre-grohtml

   GNU troff の出力を HTML に変換します。

   refer

   ファイル内容を読み込んで、そのコピーを標準出力へ出力します。
   ただし引用文を表す .[ と .]
   で囲まれた行、および引用文をどのように処理するかを示したコマンドを意味
   する .R1 と .R2 で囲まれた行は、コピーの対象としません。

   roff2dvi

   roff ファイルを DVI フォーマットに変換します。

   roff2html

   roff ファイルを HTML フォーマットに変換します。

   roff2pdf

   roff ファイルを PDF フォーマットに変換します。

   roff2ps

   roff ファイルを ps ファイルに変換します。

   roff2text

   roff ファイルをテキストファイルに変換します。

   roff2x

   roff ファイルを他のフォーマットに変換します。

   soelim

   入力ファイルを読み込んで .so ファイル
   の形式で記述されている行を、記述されている ファイル
   だけに置き換えます。

   tbl

   troff 入力ファイル内に埋め込まれた表の記述を troff
   が処理できるコマンドの形式に変換します。

   tfmtodit

   コマンド groff -Tdvi
   を使ってフォントファイルを生成します。

   troff

   Unix の troff コマンドと高い互換性を持ちます。 通常は
   groff コマンドを用いて本コマンドが起動されます。 groff
   コマンドは、プリプロセッサー、ポストプロセッサーを、適切な順で適切なオ
   プションをつけて起動します。

6.46. Xz-5.0.4

   Xz パッケージは、ファイルの圧縮、伸張 (解凍)
   を行うプログラムを提供します。 これは lzma
   フォーマットおよび新しい xz 圧縮フォーマットを取り扱います。 xz
   コマンドによりテキストファイルを圧縮すると、従来の gzip
   コマンドや bzip2 コマンドに比べて、高い圧縮率を実現できます。
   概算ビルド時間: 0.3 SBU
   必要ディスク容量: 18 MB

6.46.1. Xz のインストール

   Xz をコンパイルするための準備をします。
./configure --prefix=/usr --libdir=/lib --do
cdir=/usr/share/doc/xz-5.0.4

   パッケージをコンパイルします。
make

   ビルド結果をテストする場合は以下を実行します。
make check

   パッケージをインストールします。
make pkgconfigdir=/usr/lib/pkgconfig install

6.46.2. Xz の構成

   インストールプログラム: lzcat (xz へのリンク),
   lzcmp (xzdiff へのリンク), lzdiff
   (xzdiff へのリンク), lzegrep (xzgrep
   へのリンク), lzfgrep (xzgrep へのリンク),
   lzgrep (xzgrep へのリンク), lzless
   (xzless へのリンク), lzma (xz へのリンク),
   lzmadec, lzmainfo, lzmore (xzmore
   へのリンク), unlzma (xz へのリンク), unxz,
   (xz へのリンク), xz, xzcat (xz へのリンク),
   xzcmp (xzdiff へのリンク), xzdec,
   xzdiff, xzegrep (xzgrep へのリンク),
   xzfgrep (xzgrep へのリンク), xzgrep,
   xzless, xzmore
   インストールライブラリ: liblzma.{a,so}
   インストールディレクトリ: /usr/include/lzma,
   /usr/share/doc/xz-5.0.4

概略説明

   lzcat

   ファイルを伸張 (解凍) し標準出力へ出力します。

   lzcmp

   LZMA 圧縮されたファイルに対して cmp を実行します。

   lzdiff

   LZMA 圧縮されたファイルに対して diff を実行します。

   lzegrep

   LZMA 圧縮されたファイルに対して egrep を実行します。

   lzfgrep

   LZMA 圧縮されたファイルに対して fgrep を実行します。

   lzgrep

   LZMA 圧縮されたファイルに対して grep を実行します。

   lzless

   LZMA 圧縮されたファイルに対して less を実行します。

   lzma

   LZMA フォーマットによりファイルの圧縮と伸張 (解凍)
   を行います。

   lzmadec

   LZMA 圧縮されたファイルを高速に伸張 (解凍)
   するコンパクトなプログラムです。

   lzmainfo

   LZMA
   圧縮されたファイルのヘッダーに保持されている情報を表示します。

   lzmore

   LZMA 圧縮されたファイルに対して more を実行します。

   unlzma

   LZMA フォーマットされたファイルを伸張 (解凍) します。

   unxz

   XZ フォーマットされたファイルを伸張 (解凍) します。

   xz

   XZ フォーマットによりファイルの圧縮と伸張 (解凍) を行います。

   xzcat

   ファイルの伸張 (解凍) を行い標準出力へ出力します。

   xzcmp

   XZ 圧縮されたファイルに対して cmp を実行します。

   xzdec

   XZ 圧縮されたファイルを高速に伸張 (解凍)
   するコンパクトなプログラムです。

   xzdiff

   XZ 圧縮されたファイルに対して diff を実行します。

   xzegrep

   XZ 圧縮されたファイルに対して egrep を実行します。

   xzfgrep

   XZ 圧縮されたファイルに対して fgrep を実行します。

   xzgrep

   XZ 圧縮されたファイルに対して grep を実行します。

   xzless

   XZ 圧縮されたファイルに対して less を実行します。

   xzmore

   XZ 圧縮されたファイルに対して more を実行します。

   liblzma*

   Lempel-Ziv-Markov
   のチェーンアルゴリズムを利用し、損失なくブロックソートによりデータ圧縮
   を行う機能を提供するライブラリです。

6.47. GRUB-2.00

   GRUB パッケージは GRand Unified
   Bootloader を提供します。
   概算ビルド時間: 0.7 SBU
   必要ディスク容量: 112 MB

6.47.1. GRUB のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' grub-core/gnulib/st
dio.in.h

   GRUB をコンパイルするための準備をします。
./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --disable-grub-emu-usb \
            --disable-efiemu       \
            --disable-werror

   --disable-werror オプションは、最新の flex
   によって警告が出力されても、ビルドを成功させるためのものです。
   その他の --disable スイッチは LFS
   においては必要のない機能やテストを最小限とするためのものです。

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

   GRUB を使ってシステムのブート起動設定を行う方法については
   [670]8.4.「GRUB
   を用いたブートプロセスの設定」で説明しています。

6.47.2. GRUB の構成

   インストールプログラム: grub-bin2h,
   grub-bios-setup, grub-editenv,
   grub-fstest, grub-install,
   grub-kbdcomp, grub-menulst2cfg,
   grub-mkconfig, grub-mkdevicemap,
   grub-mkimage, grub-mklayout,
   grub-mknetdir,
   grub-mkpasswd-pbkdf2,
   grub-mkrelpath, grub-mkrescue,
   grub-mkstandalone, grub-ofpathname,
   grub-probe, grub-reboot,
   grub-script-check,
   grub-set-default, grub-setup,
   grub-sparc64-setup
   インストールディレクトリ: /usr/lib/grub,
   /etc/grub.d, /usr/share/grub,
   /boot/grub

概略説明

   grub-bin2h

   バイナリファイルを C ヘッダーファイルに変換します。

   grub-bios-setup

   grub-install に対するヘルパープログラム。

   grub-editenv

   環境ブロック (environment block)
   を編集するツール。

   grub-fstest

   ファイルシステムドライバーをデバッグするツール。

   grub-install

   指定したドライブに GRUB をインストールします。

   grub-kbdcomp

   xkb レイアウトを GRUB
   が認識できる他の書式に変換するスクリプト。

   grub-menulst2cfg

   GRUB Legacy の menu.lstを GRUB 2
   にて利用される grub.cfg に変換します。

   grub-mkconfig

   GRUB の設定ファイルを生成します。

   grub-mkdevicemap

   デバイスマップファイルを自動的に生成します。

   grub-mkimage

   GRUB のブートイメージ (bootable image)
   を生成します。

   grub-mklayout

   GRUB のキーボードレイアウトファイルを生成します。

   grub-mknetdir

   GRUB のネットブートディレクトリを生成します。

   grub-mkpasswd-pbkdf2

   ブートメニューにて利用する、PBKDF2
   により暗号化されたパスワードを生成します。

   grub-mkrelpath

   システムのパスをルートからの相対パスとします。

   grub-mkrescue

   フロッピーディスクや CDROM/DVD 用の GRUB
   のブートイメージを生成します。

   grub-mkstandalone

   スタンドアロンイメージを生成します。

   grub-ofpathname

   GRUB デバイスのパスを出力するヘルパープログラム。

   grub-probe

   指定されたパスやデバイスに対するデバイス情報を検証 (probe)
   します。

   grub-reboot

   デフォルトのブートメニューを設定します。
   これは次にブートした時だけ有効なものです。

   grub-script-check

   GRUB の設定スクリプトにおける文法をチェックします。

   grub-set-default

   デフォルトのブートメニューを設定します。

   grub-setup

   デバイスからのブートを行うためにイメージファイルをセットアップします。

   grub-sparc64-setup

   grub-setup に対するヘルパープログラム。

6.48. Less-444

   Less パッケージはテキストファイルビューアーを提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 3.8 MB

6.48.1. Less のインストール

   Less をコンパイルするための準備をします。
./configure --prefix=/usr --sysconfdir=/etc

   configure オプションの意味:

   --sysconfdir=/etc
          本パッケージによって作成されるプログラムが /etc
          ディレクトリにある設定ファイルを参照するように指示します
          。

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

6.48.2. Less の構成

   インストールプログラム: less, lessecho,
   lesskey

概略説明

   less

   ファイルビューアーまたはページャー。
   指示されたファイルの内容を表示します。
   表示中にはスクロール、文字検索、移動が可能です。

   lessecho

   Unix システム上のファイル名において * や ? といったメタ文字
   (meta-characters) を展開するために必要となります。

   lesskey

   less におけるキー割り当てを設定するために利用します。

6.49. Gzip-1.5

   Gzip パッケージはファイルの圧縮、伸長 (解凍)
   を行うプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 19.7 MB

6.49.1. Gzip のインストール

   Gzip をコンパイルするための準備をします。
./configure --prefix=/usr --bindir=/bin

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

   ルートファイルシステム上に置く必要のないプログラムを移動させます。
mv -v /bin/{gzexe,uncompress,zcmp,zdiff,zegr
ep} /usr/bin
mv -v /bin/{zfgrep,zforce,zgrep,zless,zmore,
znew} /usr/bin

6.49.2. Gzip の構成

   インストールプログラム: gunzip, gzexe, gzip,
   uncompress, zcat, zcmp, zdiff,
   zegrep, zfgrep, zforce, zgrep,
   zless, zmore, znew

概略説明

   gunzip

   gzip により圧縮されたファイルを解凍します。

   gzexe

   自動解凍形式の実行ファイルを生成します。

   gzip

   Lempel-Ziv (LZ77)
   方式により指定されたファイルを圧縮します。

   uncompress

   圧縮されたファイルを解凍します。

   zcat

   gzip により圧縮されたファイルを解凍して標準出力へ出力します。

   zcmp

   gzip により圧縮されたファイルに対して cmp を実行します。

   zdiff

   gzip により圧縮されたファイルに対して diff を実行します。

   zegrep

   gzip により圧縮されたファイルに対して egrep を実行します。

   zfgrep

   gzip により圧縮されたファイルに対して fgrep を実行します。

   zforce

   指定されたファイルが gzip
   により圧縮されている場合に、強制的に拡張子 .gz を付与します。
   こうすることで gzip は再度の圧縮を行わないようになります。
   これはファイル転送によってファイル名が切り詰められてしまった場合に活用
   することができます。

   zgrep

   gzip により圧縮されたファイルに対して grep を実行します。

   zless

   gzip により圧縮されたファイルに対して less を実行します。

   zmore

   gzip により圧縮されたファイルに対して more を実行します。

   znew

   compress フォーマットの圧縮ファイルを gzip
   フォーマットのファイルとして再圧縮します。 つまり .Z から .gz
   への変換を行います。

6.50. IPRoute2-3.5.1

   IPRoute2 パッケージは IPV4
   ベースの基本的または応用的ネットワーク制御を行うプログラムを提供します
   。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 7.3 MB

6.50.1. IPRoute2 のインストール

   本パッケージにて提供している arpd プログラムは Berkeley
   DB に依存しています。 arpd はベースとする Linux
   システムにとって普通は必要となりません。 そこで Berkeley
   DB への依存を取り除くために、以下の sed コマンドを実行します。
   arpd プログラムを必要とする場合は BLFS ブックの
   [671]http://www.linuxfromscratch.or
   g/blfs/view/svn/server/databases.ht
   ml#db に示される Berkeley DB
   の構築手順に従ってください。
sed -i '/^TARGETS/s@arpd@@g' misc/Makefile
sed -i /ARPD/d Makefile
sed -i 's/arpd.8//' man/man8/Makefile

   パッケージをコンパイルします。
make DESTDIR=

   make オプションの意味:

   DESTDIR=
          このオプションにより IPRoute2
          の実行モジュール類を適切なディレクトリにインストールしま
          す。 デフォルトでは DESTDIR は /usr
          ディレクトリに設定されています。

   このパッケージにテストスイートはありますが、このテストの前提条件からす
   ると chroot
   環境のもとでは信頼のあるテスト結果を得ることには無理があります。 もし
   LFS
   システムを構築した後にテストスイートを実施したいなら、カーネル設定にお
   いて /proc/config.gz
   CONFIG_IKCONFIG_PROC ("General
   setup" -> "Enable access to .config
   through /proc/config.gz")
   のサポートを有効にしてカーネルをビルドしてください。
   そしてサブディレクトリ testsuite/ にて 'make
   alltests' を実行してください。

   パッケージをインストールします。
make DESTDIR=              \
     MANDIR=/usr/share/man \
     DOCDIR=/usr/share/doc/iproute2-3.5.1 in
stall

6.50.2. IPRoute2 の構成

   インストールプログラム: ctstat (lnstat へのリンク),
   genl, ifcfg, ifstat, ip, lnstat,
   nstat, routef, routel, rtacct,
   rtmon, rtpr, rtstat (lnstat へのリンク),
   ss, tc
   インストールディレクトリ: /etc/iproute2,
   /lib/tc,
   /usr/share/doc/iproute2-3.5.1,
   /usr/lib/tc

概略説明

   ctstat

   接続ステータスの表示ユーティリティ。

   genl

   ifcfg

   ip コマンドに対するシェルスクリプトラッパー。
   [672]http://www.skbuff.net/iputils/
   にて提供されている iputils パッケージの arping
   プログラムと rdisk プログラムを利用します。

   ifstat

   インターフェースの統計情報を表示します。
   インターフェースによって送受信されたパケット量が示されます。

   ip

   主となる実行モジュールで、複数の機能性を持ちます。

   ip link <デバイス名>
   はデバイスのステータスを参照し、またステータスの変更を行います。

   ip addr
   はアドレスとその属性を参照し、新しいアドレスの追加、古いアドレスの削除
   を行います。

   ip neighbor は、隣接ルーター (neighbor)
   の割り当てや属性を参照し、隣接ルーターの項目追加や古いものの削除を行い
   ます。

   ip rule は、ルーティングポリシー (routing
   policy) を参照し、変更を行います。

   ip route は、ルーティングテーブル (routing
   table) を参照し、ルーティングルール (routing
   table rule) を変更します。

   ip tunnel は、IP トンネル (IP tunnel)
   やその属性を参照し、変更を行います。

   ip maddr は、マルチキャストアドレス (multicast
   address) やその属性を参照し、変更を行います。

   ip mroute は、マルチキャストルーティング
   (multicast routing) の設定、変更、削除を行います。

   ip monitor
   は、デバイスの状態、アドレス、ルートを継続的に監視します。

   lnstat

   Linux のネットワーク統計情報を提供します。 これはかつての
   rtstat プログラムを汎用的に機能充足を図ったプログラムです。

   nstat

   ネットワーク統計情報を表示します。

   routef

   ip route のコンポーネント。
   これはルーティングテーブルをクリアします。

   routel

   ip route のコンポーネント。
   これはルーティングテーブルの一覧を表示します。

   rtacct

   /proc/net/rt_acct の内容を表示します。

   rtmon

   ルート監視ユーティリティー。

   rtpr

   ip -o コマンドにより出力される内容を読みやすい形に戻します。

   rtstat

   ルートステータスの表示ユーティリティー。

   ss

   netstat コマンドと同じ。 アクティブな接続を表示します。

   tc

   トラフィック制御プログラム (Traffic Controlling
   Executable)。 これは QOS (Quality Of
   Service) と COS (Class Of Service)
   を実装するプログラムです。

   tc qdisc は、キューイング規則 (queueing
   discipline) の設定を行います。

   tc class は、キューイング規則スケジューリング
   (queueing discipline scheduling)
   に基づくクラスの設定を行います。

   tc estimator は、ネットワークフローを見積もります。

   tc filter は、QOS/COS
   パケットのフィルタリング設定を行います。

   tc policy は、QOS/COS ポリシーの設定を行います。

6.51. Kbd-1.15.3

   Kbd パッケージは、キーテーブル (key-table)
   ファイル、コンソールフォント、キーボードユーティリティを提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 20 MB

6.51.1. Kbd のインストール

   loadkeys
   に対してファイル名を与えずに実行するとエラーになります。
   以下のパッチによりこれを修正します。
patch -Np1 -i ../kbd-1.15.3-upstream_fixes-1
.patch

   バックスペース (backspace) キーとデリート
   (delete) キーは Kbd
   パッケージのキーマップ内では一貫した定義にはなっていません。
   以下のパッチは i386 用のキーマップについてその問題を解消します。
patch -Np1 -i ../kbd-1.15.3-backspace-1.patc
h

   パッチを当てればバックスペースキーの文字コードは 127
   となり、デリートキーはよく知られたエスケープコードを生成することになり
   ます。

   gettext-0.18.1.1
   を用いた際にスペイン語の翻訳メッセージがビルドができないため、このバグ
   を修正します。
sed -i '/guardado\ el/s/\(^.*en\ %\)\(.*\)/\
14\$\2/' po/es.po

   無用なプログラム resizecons とその man
   ページを削除します。 (これは 32 ビット x86
   においてのみのプログラムで、ビデオモードファイルを提供するために古い
   svgalib を利用しています。 linux-2.6
   以前より作られたことから最近の KMS との互換性がありません。
   通常は setfont がコンソールサイズを適切に取り扱います。)

   提供されている configure.ac は aclocal.m4
   よりもタイムスタンプが新しいものになっています。 したがって make
   によって autotools が実行されると configure
   を更新されてしまうことになります。 そこで configure.ac
   の日付と時刻を変更します。
   ここではシステム日付を用いるものであり、あらゆるタイムゾーンにとって十
   分に古い日付を採用できます。
sed -i 's/\(RESIZECONS_PROGS=\)yes/\1no/' co
nfigure &&
sed -i 's/resizecons.8 //' man/man8/Makefile
.in &&
touch -d '2011-05-07 08:30' configure.ac

   Kbd をコンパイルするための準備をします。
./configure --prefix=/usr --datadir=/lib/kbd

   configure オプションの意味:

   --datadir=/lib/kbd
          このオプションによりキーボードレイアウトのデータを
          /usr/share/kbd
          ディレクトリではなく、ルートパーティションとなるようにし
          ます。

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make install

注記

   ベラルーシ語のような言語において Kbd
   パッケージは正しいキーマップを提供せず、ISO-8859-5
   エンコーディングで CP1251
   キーマップであるものとして扱われます。
   そのような言語ユーザーは個別に正しいキーマップをダウンロードして設定す
   る必要があります。

   LFS-ブートスクリプトパッケージの中には
   kbd_mode、loadkeys、openvt、setfont
   に依存しているものがあります。 システム起動時の初期段階において
   /usr
   ディレクトリは参照不能であるため、上の実行モジュールはルートパーティシ
   ョンに置く必要があります。
mv -v /usr/bin/{kbd_mode,loadkeys,openvt,set
font} /bin

   必要ならドキュメントをインストールします。
mkdir -v /usr/share/doc/kbd-1.15.3
cp -R -v doc/* \
         /usr/share/doc/kbd-1.15.3

6.51.2. Kbd の構成

   インストールプログラム: chvt, deallocvt,
   dumpkeys, fgconsole, getkeycodes,
   kbd_mode, kbdrate, loadkeys,
   loadunimap, mapscrn, openvt,
   psfaddtable (psfxtable へのリンク),
   psfgettable (psfxtable へのリンク),
   psfstriptable (psfxtable へのリンク),
   psfxtable, setfont, setkeycodes,
   setleds, setmetamode,
   showconsolefont, showkey,
   unicode_start, unicode_stop
   インストールディレクトリ: /lib/kbd

概略説明

   chvt

   現在表示されている仮想端末を切り替えます。

   deallocvt

   未使用の仮想端末への割り当てを開放します。

   dumpkeys

   キーボード変換テーブル (keyboard translation
   table) の情報をダンプします。

   fgconsole

   アクティブな仮想端末数を表示します。

   getkeycodes

   カーネルのスキャンコード-キーコード
   (scancode-to-keycode)
   マッピングテーブルを表示します。

   kbd_mode

   キーボードモードの表示または設定を行います。

   kbdrate

   キーボードのリピート速度 (repeat rate) と遅延時間
   (delay rate) を設定します。

   loadkeys

   キーボード変換テーブル (keyboard translation
   tables) をロードします。

   loadunimap

   カーネルのユニコード-フォント (unicode-to-font)
   マッピングテーブルをロードします。

   mapscrn

   かつてのプログラムです。
   これはユーザー定義の文字マッピングテーブルをコンソールドライバーにロー
   ドするために利用します。 現在では setfont を利用します。

   openvt

   新しい仮想端末 (virtual terminal; VT)
   上でプログラムを起動します。

   psfaddtable

   psfxtable へのリンク。

   psfgettable

   psfxtable へのリンク。

   psfstriptable

   psfxtable へのリンク。

   psfxtable

   コンソールフォント用のユニコード文字テーブルを取り扱います。

   setfont

   EGA (Enhanced Graphic Adapter)
   フォントや VGA (Video Graphics Array)
   フォントを変更します。

   setkeycodes

   カーネルのスキャンコード-キーコード
   (scancode-to-keycode)
   マッピングテーブルの項目をロードします。
   キーボード上に特殊キーがある場合に利用します。

   setleds

   キーボードフラグや LED (Light Emitting
   Diode) を設定します。

   setmetamode

   キーボードのメタキー (meta-key) 設定を定義します。

   showconsolefont

   現在設定されている EGA/VGA
   コンソールスクリーンフォントを表示します。

   showkey

   キーボード上にて押下されたキーのスキャンコード、キーコード、ASCII
   コードを表示します。

   unicode_start

   キーボードとコンソールをユニコードモードにします。
   キーマップファイルが ISO-8859-1
   エンコーディングで書かれている場合にのみこれを利用します。
   他のエンコーディングの場合、このプログラムの出力結果は正しいものになり
   ません。

   unicode_stop

   キーボードとコンソールをユニコードモードから戻します。

6.52. Kmod-9

   Kmod
   パッケージは、カーネルモジュールをロードするためのライブラリやユーティ
   リティーを提供します。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 30 MB

6.52.1. Kmod のインストール

   x86
   ホスト上にてテストスイートを実行する際に問題が発生するため、これを修正
   するパッチを適用します。
patch -Np1 -i ../kmod-9-testsuite-1.patch

   Kmod をコンパイルするための準備をします。
./configure --prefix=/usr       \
            --bindir=/bin       \
            --libdir=/lib       \
            --sysconfdir=/etc   \
            --with-xz           \
            --with-zlib

   configure オプションの意味:

   lib* と --with-*
          これらのオプションは、Kmod
          が圧縮されたカーネルモジュールを取り扱えるようにするもの
          です。 シェル変数は、pkg-config
          が無くても、xz や zlib
          のヘッダーあるいはライブラリを見出せるようにするために必
          要になります。

   パッケージをコンパイルします。
make

   コンパイル結果をテストする場合は以下を実行します。
make check

   パッケージをインストールします。 また
   Module-Init-Tools
   パッケージとの互換性を保つためにシンボリックリンクを生成します。
   Module-Init-Tools パッケージは、これまで Linux
   カーネルモジュールを取り扱っていたものです。
make pkgconfigdir=/usr/lib/pkgconfig install

for target in depmod insmod modinfo modprobe
 rmmod; do
  ln -sv ../bin/kmod /sbin/$target
done

ln -sv kmod /bin/lsmod

6.52.2. Kmod の構成

   インストールプログラム: depmod (kmod へのリンク),
   insmod (kmod へのリンク), kmod,
   kmod-nolib, lsmod (kmod へのリンク),
   modinfo (kmod へのリンク), modprobe
   (kmod へのリンク), rmmod (kmod へのリンク)
   インストールライブラリ: /lib/kmod.so

概略説明

   depmod

   存在しているモジュール内に含まれるシンボル名に基づいて、モジュールの依
   存関係を記述したファイル (dependency file)
   を生成します。 これは modprobe
   が、必要なモジュールを自動的にロードするために利用します。

   insmod

   稼動中のカーネルに対してロード可能なモジュールをインストールします。

   kmod

   カーネルモジュールのロード、アンロードを行います。

   libkmod

   このライブラリは、カーネルモジュールのロード、アンロードを行う他のプロ
   グラムが利用します。

   lsmod

   その時点でロードされているモジュールを一覧表示します。

   modinfo

   カーネルモジュールに関連付いたオブジェクトファイルを調べて、出来る限り
   の情報を表示します。

   modprobe

   depmod によってモジュールの依存関係を記述したファイル
   (dependency file) が生成されます。
   これを使って関連するモジュールを自動的にロードします。

   rmmod

   稼動中のカーネルからモジュールをアンロードします。

6.53. Libpipeline-1.2.1

   Libpipeline
   パッケージは、サブプロセスのパイプラインを柔軟かつ便利に取り扱うライブ
   ラリを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 7.4 MB

6.53.1. Libpipeline のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' gnulib/lib/stdio.in
.h

   Libpipeline をコンパイルするための準備をします。
PKG_CONFIG_PATH=/tools/lib/pkgconfig ./confi
gure --prefix=/usr

   configure オプションの意味:

   PKG_CONFIG_PATH
          この環境変数は
          [673]5.13.「Check-0.9.8」にて構築し
          たテストライブラリのメタデータを収容するディレクトリを指
          定するものです。

   パッケージをコンパイルします。
make

   ビルド結果をテストする場合は以下を実行します。
make check

   パッケージをインストールします。
make install

6.53.2. Libpipeline の構成

   インストールライブラリ: libpipeline.so

概略説明

   libpipeline

   このライブラリは、サブプロセス間のパイプラインを安全に構築するために利
   用されます。

6.54. Make-3.82

   Make
   パッケージは、パッケージ類をコンパイルするためのプログラムを提供します
   。
   概算ビルド時間: 0.4 SBU
   必要ディスク容量: 11.3 MB

6.54.1. Make のインストール

   まずアップストリームによる修正を適用します。
patch -Np1 -i ../make-3.82-upstream_fixes-2.
patch

   Make をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

6.54.2. Make の構成

   インストールプログラム: make

概略説明

   make

   パッケージの構成要素に対して、どれを(再)コンパイルするかを自動判別し
   、対応するコマンドを実行します。

6.55. Man-DB-2.6.2

   Man-DB パッケージは man
   ページを検索したり表示したりするプログラムを提供します。
   概算ビルド時間: 0.5 SBU
   必要ディスク容量: 27 MB

6.55.1. Man-DB のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' gnulib/lib/stdio.in
.h

   Man-DB をコンパイルするための準備をします。
./configure --prefix=/usr
     \
            --libexecdir=/usr/lib
     \
            --docdir=/usr/share/doc/man-db-2
.6.2 \
            --sysconfdir=/etc
     \
            --disable-setuid
     \
            --with-browser=/usr/bin/lynx
     \
            --with-vgrind=/usr/bin/vgrind
     \
            --with-grap=/usr/bin/grap

   configure オプションの意味:

   --disable-setuid
          これは man プログラムが man ユーザーに対して
          setuid を実行しないようにします。

   --with-...
          この三つのオプションはデフォルトで利用するプログラムを指
          定します。 lynx はテキストベースの Web
          ブラウザーです。 (BLFS
          でのインストール手順を参照してください。) vgrind
          はプログラムソースを Groff
          の入力形式に変換します。 grap は Groff
          文書においてグラフを組版するために利用します。
          vgrind と grap は man
          ページを見るだけであれば必要ありません。 これらは
          LFS や BLFS には含まれません。
          もし利用したい場合は LFS
          の構築を終えた後に自分でインストールしてください。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには、以下を実行します。
make check

   パッケージをインストールします。
make install

6.55.2. LFS における英語以外のマニュアルページ

   以下に示す表は /usr/share/man/<ll>
   配下にインストールされる man
   ページとそのエンコーディングを示します。 Man-DB は man
   ページが UTF-8 エンコーディングかどうかを正しく認識します。

   表 6.1. 8 ビット man ページのキャラクターエンコーディング
   言語 (コード) エンコーディング 言語 (コード) エンコーディング
   デンマーク語 (da) ISO-8859-1 クロアチア語 (hr)
   ISO-8859-2
   ドイツ語 (de) ISO-8859-1 ハンガリー語 (hu)
   ISO-8859-2
   英語 (en) ISO-8859-1 日本語 (ja) EUC-JP
   スペイン語 (es) ISO-8859-1 韓国語 (ko)
   EUC-KR
   エストニア語 (et) ISO-8859-1 リトアニア語 (lt)
   ISO-8859-13
   フィンランド語 (fi) ISO-8859-1 ラトビア語 (lv)
   ISO-8859-13
   フランス語 (fr) ISO-8859-1 マケドニア語 (mk)
   ISO-8859-5
   アイルランド語 (ga) ISO-8859-1 ポーランド語 (pl)
   ISO-8859-2
   ガリシア語 (gl) ISO-8859-1 ルーマニア語 (ro)
   ISO-8859-2
   インドネシア語 (id) ISO-8859-1 ロシア語 (ru)
   KOI8-R
   アイスランド語 (is) ISO-8859-1 スロバキア語 (sk)
   ISO-8859-2
   イタリア語 (it) ISO-8859-1 スロベニア語 (sl)
   ISO-8859-2
   ノルウェー語 ブークモール (Norwegian Bokmal;
   nb) ISO-8859-1 セルビア Latin
   (sr@latin) ISO-8859-2
   オランダ語 (nl) ISO-8859-1 セルビア語 (sr)
   ISO-8859-5
   ノルウェー語 ニーノシュク (Norwegian Nynorsk;
   nn) ISO-8859-1 トルコ語 (tr) ISO-8859-9
   ノルウェー語 (no) ISO-8859-1 ウクライナ語 (uk)
   KOI8-U
   ポルトガル語 (pt) ISO-8859-1 ベトナム語 (vi)
   TCVN5712-1
   スウェーデン語 (sv) ISO-8859-1 中国語 簡体字
   (Simplified Chinese) (zh_CN) GBK
   ベラルーシ語 (be) CP1251 中国語 簡体字
   (Simplified Chinese), シンガポール
   (zh_SG) GBK
   ブルガリア語 (bg) CP1251 中国語 繁体字
   (Traditional Chinese), 香港 (zh_HK)
   BIG5HKSCS
   チェコ語 (cs) ISO-8859-2 中国語 繁体字
   (Traditional Chinese) (zh_TW) BIG5
   ギリシア語 (el) ISO-8859-7

注記

   上に示されていない言語によるマニュアルページはサポートされません。

6.55.3. Man-DB の構成

   インストールプログラム: accessdb, apropos
   (whatis へのリンク), catman, lexgrog,
   man, mandb, manpath, whatis,
   zsoelim
   インストールディレクトリ: /usr/lib/man-db,
   /usr/share/doc/man-db

概略説明

   accessdb

   whatis データベースの内容をダンプして読みやすい形で出力します。

   apropos

   whatis
   データベースを検索して、指定した文字列を含むシステムコマンドの概略説明
   を表示します。

   catman

   フォーマット済マニュアルページを生成、更新します。

   lexgrog

   指定されたマニュアルページについて、一行のサマリー情報を表示します。

   man

   指定されたマニュアルページを整形して表示します。

   mandb

   whatis データベースを生成、更新します。

   manpath

   $MANPATH の内容を表示します。 あるいは ($MANPATH
   が設定されていない場合は) man.conf
   内の設定とユーザー設定に基づいて適切な検索パスを表示します。

   whatis

   whatis
   データベースを検索して、指定されたキーワードを含むシステムコマンドの概
   略説明を表示します。

   zsoelim

   ファイルの内容を読み込んで、.so file
   の形で書かれている記述行を、その file の内容に置き換えます。

6.56. Patch-2.6.1

   Patch
   パッケージは「パッチ」ファイルを適用することにより、ファイルの修正、生
   成を行うプログラムを提供します。 「パッチ」ファイルは diff
   プログラムにより生成されます。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 3.4 MB

6.56.1. Patch のインストール

   ed
   プログラムを必要とするテストスイートの実行を行わないよう、パッチを適用
   します。
patch -Np1 -i ../patch-2.6.1-test_fix-1.patc
h

   Patch をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make -k check

   パッケージをインストールします。
make install

6.56.2. Patch の構成

   インストールプログラム: patch

概略説明

   patch

   パッチファイルに従って対象ファイルを修正します。 パッチファイルは通常
   diff コマンドによって修正前後の違いが列記されているものです。
   そのような違いを対象ファイルに適用することで patch
   はパッチを適用したファイルを生成します。

6.57. Sysklogd-1.5

   Sysklogd
   パッケージは、例えばカーネルが異常発生時に出力するログのような、システ
   ムログメッセージを取り扱うプログラムを提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 0.6 MB

6.57.1. Sysklogd のインストール

   パッケージをコンパイルします。
make

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make BINDIR=/sbin install

6.57.2. Sysklogd の設定

   以下を実行して /etc/syslog.conf
   ファイルを生成します。
cat > /etc/syslog.conf << "EOF"
# Begin /etc/syslog.conf

auth,authpriv.* -/var/log/auth.log
*.*;auth,authpriv.none -/var/log/sys.log
daemon.* -/var/log/daemon.log
kern.* -/var/log/kern.log
mail.* -/var/log/mail.log
user.* -/var/log/user.log
*.emerg *

# End /etc/syslog.conf
EOF

6.57.3. Sysklogd の構成

   インストールプログラム: klogd, syslogd

概略説明

   klogd

   カーネルメッセージを受け取り出力するシステムデーモン。

   syslogd

   システムプログラムが出力するログ情報を出力します。
   出力されるログ情報には少なくとも処理日付、ホスト名が出力されます。
   また通常はプログラム名も出力されます。
   ただこれはログ出力デーモンがどれだけ信頼のおけるものであるかに依存する
   情報です。

6.58. Sysvinit-2.88dsf

   Sysvinit
   パッケージは、システムの起動、実行、シャットダウンを制御するプログラム
   を提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 1.4 MB

6.58.1. Sysvinit のインストール

   ランレベルが変更される時 (例えばシステムが停止する時) init
   コマンドは各種のプロセスに対して停止シグナル (termination
   signals) を送信します。 ただしその対象は init
   プログラム自身が起動したプロセスであり、新たなランレベルでは起動しない
   プロセスです。 一方で init コマンドが出力するメッセージは
   「Sending processes the TERM signal」
   (プロセスに対して TERM シグナルを送信します) というものです。
   このメッセージは、その時点にて稼動中の全プロセスに対してシグナルを送信
   しているかのように誤解してしまいます。
   これを正すためにソースを修正して 「Sending processes
   configured via /etc/inittab the
   TERM signal」 (/etc/inittab
   で設定されているプロセスに対して TERM シグナルを送信します)
   というメッセージに置き換えます。
sed -i 's@Sending processes@& configured via
 /etc/inittab@g' src/init.c

   wall コマンドおよび mountpoint は
   Util-linux
   パッケージにおいてメンテナンスされており、既にインストールが出来ていま
   す。 そこで Sysvinit
   が提供するこれらのコマンドはインストールせず、その man
   ページもインストールしないようにします。
sed -i -e 's/utmpdump wall/utmpdump/' \
       -e '/= mountpoint/d' \
       -e 's/mountpoint.1 wall.1//' src/Make
file

   パッケージをコンパイルします。
make -C src

   このパッケージにテストスイートはありません。

   パッケージをインストールします。
make -C src install

6.58.2. Sysvinit の構成

   インストールプログラム: bootlogd,
   fstab-decode, halt, init, killall5,
   last, lastb (last へのリンク), mesg,
   pidof (killall5 へのリンク), poweroff
   (halt へのリンク), reboot (halt へのリンク),
   runlevel, shutdown, sulogin,
   telinit (init へのリンク), utmpdump

概略説明

   bootlogd

   ブート時のメッセージをログファイルに出力します。

   fstab-decode

   fstab 形式の (fstab-encoded の)
   引数とともにコマンドを実行します。

   halt

   ランレベルが既に 0 ではない通常の起動状態の場合に shutdown
   をオプション -h をつけて実行します。
   そしてカーネルに対してシステム停止を指示します。
   システムが停止される状況は /var/log/wtmp
   ファイルに記録されます。

   init

   カーネルがハードウェアを初期化した後に、最初に起動するプロセスです。
   ブート処理がこのプロセスに引き継がれ、指示されたプロセスをすべて起動し
   ていきます。

   killall5

   プロセスすべてに対してシグナルを送信します。
   ただし自分のセッション内の起動プロセスは除きます。
   つまり本コマンドを実行したスクリプトは停止されません。

   last

   ユーザーの最新のログイン (ログアウト) の情報を表示します。 これは
   /var/log/wtmp ファイルの終わりから調べているものです。
   またシステムブート、シャットダウン、ランレベルの変更時の情報も示します
   。

   lastb

   ログインに失敗した情報を表示します。 これは
   /var/log/btmp に記録されています。

   mesg

   現在のユーザーの端末に対して、他のユーザーがメッセージ送信できるかどう
   かを制御します。

   pidof

   指定されたプログラムの PID を表示します。

   poweroff

   カーネルに対してシステムの停止を指示し、コンピューターの電源を切ります
   。(halt を参照してください。)

   reboot

   カーネルに対してシステムの再起動を指示します。(halt
   を参照してください。)

   runlevel

   現在のランレベルと直前のランレベルを表示します。 最新のランレベルは
   /var/run/utmp ファイルに記録されています。

   shutdown

   システムの終了を安全に行います。
   その際にはプロセスすべてへのシグナル送信を行い、ログインユーザーへの通
   知も行います。

   sulogin

   root ユーザーでのログインを行います。 通常は init
   が起動するもので、システムがシングルユーザーモードで起動する際に利用さ
   れます。

   telinit

   init に対してランレベルの変更を指示します。

   utmpdump

   指定されたログファイル内の情報を分かりやすく表示します。

6.59. Tar-1.26

   Tar パッケージはアーカイブプログラムを提供します。
   概算ビルド時間: 2.4 SBU
   必要ディスク容量: 34 MB

6.59.1. Tar のインストール

   本パッケージと Glibc-2.16.0
   との互換性がないため、これを修正します。
sed -i -e '/gets is a/d' gnu/stdio.in.h

   Tar をコンパイルするための準備をします。
FORCE_UNSAFE_CONFIGURE=1  \
./configure --prefix=/usr \
            --bindir=/bin \
            --libexecdir=/usr/sbin

   configure オプションの意味:

   FORCE_UNSAFE_CONFIGURE=1
          このオプションは、mknod に対するテストを root
          ユーザーにて実行するようにします。 一般にこのテストを
          root
          ユーザーで実行することは危険なこととされますが、ここでは
          部分的にビルドしたシステムでテストするものであるため、オ
          ーバーライドすることで支障はありません。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするために以下を実行します。(約 1 SBU)
make check

   パッケージをインストールします。
make install
make -C doc install-html docdir=/usr/share/d
oc/tar-1.26

6.59.2. Tar の構成

   インストールプログラム: rmt, tar
   Installed directory:
   /usr/share/doc/tar-1.26

概略説明

   rmt

   プロセス間通信のコネクションを通じて磁気テープドライブを遠隔操作します
   。

   tar

   アーカイブの生成、アーカイブからのファイル抽出、アーカイブの内容一覧表
   示を行います。 アーカイブは tarball とも呼ばれます。

6.60. Texinfo-4.13a

   Texinfo パッケージは info
   ページへの読み書き、変換を行うプログラムを提供します。
   概算ビルド時間: 0.2 SBU
   必要ディスク容量: 24 MB

6.60.1. Texinfo のインストール

   Texinfo をコンパイルするための準備をします。
./configure --prefix=/usr

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make check

   パッケージをインストールします。
make install

   必要なら TeX
   システムに属するコンポーネント類をインストールします。
make TEXMF=/usr/share/texmf install-tex

   make パラメーターの意味:

   TEXMF=/usr/share/texmf
          Makefile 変数である TEXMF に TeX
          ツリーのルートディレクトリを設定します。 これは後に
          TeX パッケージをインストールするための準備です。

   ドキュメントシステム Info は、
   メニュー項目の一覧を単純なテキストファイルに保持しています。
   そのファイルは /usr/share/info/dir にあります。
   残念ながら数々のパッケージの Makefile
   は、既にインストールされている info
   ページとの同期を取る処理を行わない場合があります。
   /usr/share/info/dir
   の再生成を必要とするなら、以下のコマンドを実行してこれを実現します。
cd /usr/share/info
rm -v dir
for f in *
do install-info $f dir 2>/dev/null
done

6.60.2. Texinfo の構成

   インストールプログラム: info, infokey,
   install-info, makeinfo,
   pdftexi2dvi, texi2dvi, texi2pdf,
   texindex
   インストールディレクトリ: /usr/share/texinfo

概略説明

   info

   info ページを見るために利用します。 これは man
   ページに似ていますが、単に利用可能なコマンドラインオプションを説明する
   だけのものではなく、おそらくはもっと充実しています。 例えば man
   bison と info bison を比較してみてください。

   infokey

   Info
   のカスタマイズ情報を設定したソースファイルをバイナリ形式にコンパイルし
   ます。

   install-info

   info ページをインストールします。 info
   索引ファイルにある索引項目も更新します。

   makeinfo

   指定された Texinfo ソースファイルを Info
   ページ、プレーンテキスト、HTML ファイルに変換します。

   pdftexi2dvi

   指定された Texinfo ドキュメントファイルを PDF
   (Portable Document Format)
   ファイルに変換します。

   texi2dvi

   指定された Texinfo
   ドキュメントファイルを、デバイスに依存しない印刷可能なファイルに変換し
   ます。

   texi2pdf

   指定された Texinfo ドキュメントファイルを PDF
   (Portable Document Format)
   ファイルに変換します。

   texindex

   Texinfo 索引ファイルの並び替えを行います。

6.61. Udev-188 (systemd-188 から抽出)

   Udev
   パッケージはデバイスノードの動的生成を行うプログラムを提供します。
   Udev は systemd
   にマージされ開発されていますが、systemd の大半は LFS
   との互換性がありません。 ここでは必要最小限の udev
   ファイルをビルドしインストールするものとします。
   概算ビルド時間: 0.1 SBU
   必要ディスク容量: 17.4 MB

6.61.1. Udev のインストール

注記

   本パッケージは他に比べると多少異なっています。 はじめに
   systemd-188.tar.xz
   からパッケージのソースを取り出しますが、インストールするのは udev
   です。 systemd
   ディレクトリに移動してから、これ以降に示す手順に従ってください。

   udev-lfs という Tar アーカイブファイルには Udev
   パッケージをビルドする際の LFS 独自のファイルが含まれています。
   以下のようにしてこのファイルを systemd
   ソースディレクトリに展開します。
tar -xvf ../udev-lfs-188-3.tar.bz2

   パッケージをコンパイルします。
make -f udev-lfs-188/Makefile.lfs

   パッケージをインストールします。
make -f udev-lfs-188/Makefile.lfs install

   最後に恒常的なネットワーク udev ルールを設定します。
   この作業の詳細は[674]7.2.1.「
   ネットワークインターフェースに対する固定名称の作成
   」にて説明しています。 本章のはじめにて説明しているように、/sys
   と /proc は chroot
   環境にてマウントされている必要があります。
   これは以下のスクリプトを実行する際に必要となります。
bash udev-lfs-188/init-net-rules.sh

6.61.2. Udev の構成

   インストールプログラム: accelerometer, ata_id,
   cdrom_id, collect, mtd_probe,
   scsi_id, v4l_id, udevadm, udevd
   インストールライブラリ: libudev.so
   インストールディレクトリ: /etc/udev, /lib/udev,
   /lib/firmware, /usr/share/doc/udev

概略説明

   ata_id

   ATA ドライブに対するユニークな文字列と追加情報
   (uuid、ラベル) を Udev に提供します。

   cdrom_id

   CD-ROM ドライブや DVD-ROM ドライブの情報を Udev
   に提供します。

   collect

   現在の uevent の ID と (すべての対象 uevent
   に対する) ID のリストを与えることで、現在の ID
   を登録し、すべての対象 ID が既に登録済みであるかどうかを示します。

   scsi_id

   特定のデバイスに対する SCSI INQUIRY
   コマンド送信の結果として得られるデータに基づく、ユニークな SCSI
   識別子を Udev に対して提供します。

   udevadm

   汎用的な Udev 管理ツール。 udevd デーモンの制御、Udev
   データベースデータの提供、uevent の監視、uevent
   の完了までの待機、Udev 設定のテスト、指定デバイスに対する
   uevent の起動、といったことを行います。

   udevd

   ネットワークソケット上の uevent を待ち受けるデーモン。
   デバイスを生成し、その uevent
   に対応する外部プログラムを起動します。

   libudev

   Udev デバイス情報のインターフェースライブラリ。

   /etc/udev

   Udev
   設定ファイル、デバイスのパーミッション、デバイス命名規則を定めます。

6.62. Vim-7.3

   Vim パッケージは強力なテキストエディターを提供します。
   概算ビルド時間: 1.1 SBU
   必要ディスク容量: 96 MB

Vim の代替ソフトウェア

   もし Emacs、Joe、Nano など他のエディターを用いたい場合は
   [675]http://www.linuxfromscratch.or
   g/blfs/view/svn/postlfs/editors.htm
   l に示される手順に従ってインストールしてください。

6.62.1. Vim のインストール

   設定ファイル vimrc がインストールされるデフォルトディレクトリを
   /etc に変更します。
echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >
> src/feature.h

   Vim をコンパイルするための準備をします。
./configure --prefix=/usr --enable-multibyte

   configure オプションの意味:

   --enable-multibyte
          このスイッチは、マルチバイトエンコーディングによるファイ
          ルの編集をサポートする指示を行います。
          マルチバイト文字を用いるロケールにとってはこれが必要です
          。 例えば Fedora Core のようにデフォルトで
          UTF-8 を採用している Linux
          ディストリビューションにおいては、新規に生成するテキスト
          ファイルを編集できるようにするために、このオプションを指
          定することが有用です。

   パッケージをコンパイルします。
make

   コンパイル結果をテストするには以下を実行します。
make test

   このテストスイートは数多くのバイナリデータを端末画面上に出力します。
   これは端末画面の設定によっては問題を引き起こします。
   これを避けるには出力をリダイレクトしてログファイルに出力するようにして
   ください。 テストが成功すれば、最後に "ALL DONE"
   と表示されます。

   パッケージをインストールします。
make install

   たいていのユーザーは vim ではなく vi を使うようです。 vi
   を入力しても vim
   が実行されるように、実行モジュールに対するシンボリックリンクを作成しま
   す。 さらに指定された言語による man
   ページへのシンボリックリンクも作成します。
ln -sv vim /usr/bin/vi
for L in  /usr/share/man/{,*/}man1/vim.1; do
    ln -sv vim.1 $(dirname $L)/vi.1
done

   デフォルトでは Vim のドキュメントが /usr/share/vim
   にインストールされます。
   以下のようなシンボリックリンクを生成することで
   /usr/share/doc/vim-7.3
   へアクセスしてもドキュメントが参照できるようにし、他のパッケージが配置
   するドキュメントの場所と整合を取ります。
ln -sv ../vim/vim73/doc /usr/share/doc/vim-7
.3

   LFS システムに対して X ウィンドウシステムをインストールする場合
   X のインストールの後で Vim を再コンパイルする必要があります。
   Vim には GUI 版があり X
   や他のライブラリがインストールされていて 初めて構築できるためです。
   この作業の詳細については Vim のドキュメントと BLFS ブックの
   [676]http://www.linuxfromscratch.or
   g/blfs/view/svn/postlfs/editors.htm
   l#postlfs-editors-vim に示されている Vim
   のインストール説明のページを参照してください。

6.62.2. Vim の設定

   デフォルトで vim は Vi 非互換モード
   (vi-incompatible mode) で起動します。
   他のエディターを使ってきたユーザーにとっては、よく分からないものかもし
   れません。 以下の設定における「nocompatible」(非互換)
   は、Vi の新しい機能を利用することを意味しています。
   もし「compatible」(互換)
   モードに変更したい場合は、この設定ファイルの冒頭にて行っておくことが必
   要です。
   このモード設定は他の設定を置き換えるものとなることから、まず初めに行っ
   ておかなければならないものだからです。 以下のコマンドを実行して
   vim の設定ファイルを生成します。
cat > /etc/vimrc << "EOF"
" Begin /etc/vimrc

set nocompatible
set backspace=2
syntax on
if (&term == "iterm") || (&term == "putty")
  set background=dark
endif

" End /etc/vimrc
EOF

   set nocompatible と設定しておくと vi
   互換モードでの動作に比べて有用な動作となります。
   (これがデフォルトになっています。)
   その設定の記述から「no」の文字を取り除けば、旧来の vi
   コマンドの動作となります。 set backspace=2
   を設定しておくと、行を超えてもバックスペースキーによる編集が可能となり
   ます。
   またインデントが自動的に行われ、コマンド起動時には自動的に挿入モードと
   なります。 syntax on パラメーターを指定すれば vim
   の文法ハイライト (syntax highlighting)
   機能が有効になります。 最後にある if 文は、set
   background=dark
   を指定した場合に、特定の端末エミュレーター上において vim
   が背景色を誤って認識しないようにするためのものです。
   エミュレーターの背景色が黒色であった場合に、より適切なハイライトが実現
   できます。

   この他に利用できるオプションについては、以下のコマンドを実行することで
   出力される説明を参照してください。
vim -c ':options'

注記

   Vim がインストールするスペルファイル (spell files)
   はデフォルトでは英語に対するものだけです。
   必要とする言語のスペルファイルをインストールするなら
   [677]ftp://ftp.vim.org/pub/vim/runt
   ime/spell/ から、特定の言語、エンコーディングによる
   *.spl ファイル、またオプションとして *.sug
   ファイルをダウンロードしてください。 そしてそれらのファイルを
   /usr/share/vim/vim73/spell/
   ディレクトリに保存してください。

   スペルファイルを利用するには /etc/vimrc
   ファイルにて、例えば以下のような設定が必要になります。
set spelllang=en,ru
set spell

   詳しくは、上で説明した URL にて提供されている README
   ファイルを参照してください。

6.62.3. Vim の構成

   インストールプログラム: ex (vim へのリンク), rview
   (vim へのリンク), rvim (vim へのリンク), vi
   (vim へのリンク), view (vim へのリンク), vim,
   vimdiff (vim へのリンク), vimtutor, xxd
   インストールディレクトリ: /usr/share/vim

概略説明

   ex

   vim を ex モードで起動します。

   rview

   view の機能限定版。
   シェルは起動できず、サスペンドも行うことはできません。

   rvim

   vim の機能限定版。
   シェルは起動できず、サスペンドも行うことはできません。

   vi

   vim へのリンク。

   view

   vim を読み込み専用モード (read-only mode)
   で起動します。

   vim

   エディター。

   vimdiff

   vim
   により、同一ファイルにおける２つまたは３つの版を同時に編集し、差異を表
   示します。

   vimtutor

   vim の基本的なキー操作とコマンドについて教えてくれます。

   xxd

   指定されたファイルの内容を 16進数ダンプとして変換します。
   逆の変換も行うことができるため、バイナリパッチにも利用されます。

6.63. デバッグシンボルについて

   プログラムやライブラリの多くは、デフォルトではデバッグシンボルを含めて
   コンパイルされています。 (gcc の -g
   オプションが用いられています。)
   デバッグ情報を含めてコンパイルされたプログラムやライブラリは、デバッグ
   時にメモリアドレスが参照できるだけでなく、処理ルーチンや変数の名称も知
   ることができます。

   しかしそういったデバッグ情報は、プログラムやライブラリのファイルサイズ
   を極端に大きくします。
   以下にデバッグシンボルが占める割合の例を示します。
     * デバッグシンボルを含んだ bash の実行ファイル： 1200
       KB
     * デバッグシンボルを含まない bash の実行ファイル： 480
       KB
     * デバッグシンボルを含んだ Glibc と GCC
       の関連ファイル (/lib と /usr/lib): 87
       MB
     * デバッグシンボルを含まない Glibc と GCC
       の関連ファイル: 16MB

   利用するコンパイラーや C
   ライブラリの違いによって、生成されるファイルのサイズは異なります。
   デバッグシンボルを含む、あるいは含まないサイズを比較した場合、その差は
   2倍から 5倍の違いがあります。

   プログラムをデバッグするユーザーはそう多くはありません。
   デバッグシンボルを削除すればディスク容量はかなり節減できます。
   次節ではプログラムやライブラリからデバッグシンボルを取り除く
   (strip する) 方法を示します。

6.64. 再度のストリップ

   対象ユーザーがプログラマーではなく、プログラム類をデバッグするような使
   い方をしないのであれば、実行ファイルやライブラリに含まれるデバッグシン
   ボルを削除しても構いません。 そうすれば 90 MB
   ものサイズ削減を図ることができます。
   たとえデバッグできなくなっても困らないはずです。

   以下に示すコマンドは、いとも簡単なものです。
   ただし入力つづりは簡単に間違いやすいので、もし誤った入力をするとシステ
   ムを利用不能にしてしまいます。 したがって strip
   コマンドを実行する前に、現時点の LFS
   システムのバックアップを取っておくことをお勧めします。

   ストリップを実行する前には、ストリップしようとしている実行ファイルが実
   行中でないことを十分確認してください。 また
   [678]6.4.「Chroot 環境への移行」に示したコマンドにより
   chroot
   環境に入っているかどうか定かでない場合は、いったんログアウトしてくださ
   い。
logout

   再度 chroot 環境に入ります。
chroot $LFS /tools/bin/env -i \
    HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    /tools/bin/bash --login

   以下により実行バイナリやライブラリを安全にストリップします。
/tools/bin/find /{,usr/}{bin,lib,sbin} -type
 f \
  -exec /tools/bin/strip --strip-debug '{}'
';'

   ファイルフォーマットが認識できないファイルがいくつも警告表示されますが
   、無視して構いません。
   この警告は、処理したファイルが実行モジュールではなくスクリプトファイル
   であることを示しています。

6.65. 仕切り直し

   それまで入っていた chroot 環境からいったん抜け出て、以下の
   chroot コマンドにより入り直します。
chroot "$LFS" /usr/bin/env -i \
    HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
    PATH=/bin:/usr/bin:/sbin:/usr/sbin \
    /bin/bash --login

   上を実行するのは /tools ディレクトリがもう必要ないからです。
   ですから /tools
   ディレクトリが一切無くてよいなら削除しても構いません。

注記

   /tools
   ディレクトリを削除すると、ツールチェーンのテストに用いていた
   Tcl、Expect、DejaGNU も削除することになります。
   後々これらのプログラムを用いるなら、再度コンパイルとインストールを行う
   必要があります。 BLFS ブックにてその手順を説明しているので
   [679]http://www.linuxfromscratch.or
   g/blfs/ を参照してください。

   仮想カーネルファイルシステムを、手動により、あるいはリブートによりアン
   マウントした場合は chroot
   環境に入る前にそれらがマウントされていることを確認してください。
   その作業手順は[680]6.2.2.「/dev
   のマウントと有効化」と[681]6.2.3.「仮想カーネルファイルシス
   テムのマウント」で説明しています。

第7章 ブートスクリプトの設定

7.1. はじめに

   この章では、設定ファイルやブートスクリプトについて説明します。
   まずはネットワークの設定に必要となる全般的な設定ファイルについて説明し
   ます。
     * [682]7.2.「全般的なネットワークの設定」
     * [683]7.3.「/etc/hosts ファイルの設定」

   次にデバイス設定を適切に行う方法について説明します。
     * [684]7.4.「LFS
       システムにおけるデバイスとモジュールの扱い」
     * [685]7.5.「デバイスへのシンボリックリンクの生成」

   その次の節では、ブートプロセスにて必要となる LFS
   システムのスクリプトについて、そのインストールや設定方法を示します。
   スクリプトのほとんどは修正する必要がありませんが、一部に追加修正を要す
   るものもあります。
   それはハードウェアに依存する情報を取り扱うためです。

   System
   V系のスクリプトが広く用いられていて比較的単純であることから、本書でも
   これを利用します。 これとは別の方法として BSD
   系の初期化スクリプトがあり
   [686]http://www.linuxfromscratch.or
   g/hints/downloads/files/bsd-init.tx
   t にて説明されています。 また LFS
   メーリングリストで「depinit」、「upstart」、「syste
   md」という語を検索してみれば、さらに別の方法が示されていますので確認
   してください。

   初期化スクリプトに関して別の方法をとるのであれば、本章は読み飛ばしてく
   ださい。

   ブートスクリプトの一覧は [687]付録 D に示しています。
     * [688]7.6.「LFS-ブートスクリプト-20120901
       」
     * [689]7.7.「ブートスクリプトはどのようにして動くのか」
     * [690]7.8.「システムのホスト名の設定」
     * [691]7.9.「Setclock スクリプトの設定」
     * [692]7.10.「Linux コンソールの設定」
     * [693]7.11.「Sysklogd スクリプトの設定」

   最後に、ユーザーログが出力される際に利用されるスクリプトや設定ファイル
   について概略を示します。
     * [694]7.13.「Bash シェルの初期起動ファイル」
     * [695]7.14.「/etc/inputrc
       ファイルの生成」

7.2. 全般的なネットワークの設定

   本節はネットワークカードを設定する場合にのみ作業を行っていきます。

   ネットワークカードを利用しないのであれば、ネットワークカードに関する設
   定は、おそらくすべて不要なはずです。
   そのような場合は、ランレベルディレクトリ
   (/etc/rc.d/rc*.d) から、シンボリックリンク
   network を削除してください。 これは
   [696]7.6.「LFS-ブートスクリプト-20120901」
   にてブートスクリプトをインストールした後に行ってください。

7.2.1. ネットワークインターフェースに対する固定名称の作成

   設定を行うべきネットワークインターフェースが、システム内にただ一つであ
   るなら、本節に示す内容は任意となります。
   設定を行ったとしても間違いにはなりません。
   ラップトップＰＣでのワイヤレスネットワークやケーブル接続のネットワーク
   においては、たいていは本節における設定が必要となるでしょう。

   Udev
   やモジュラー化されたネットワークドライバーにおいて、ネットワークインタ
   ーフェースの番号の割振りは再起動により変更されます。
   ドライバーモジュールの読み込みが並列で行われるためランダムになるからで
   す。 例えば Intel 製と Realtek
   製の二つのネットワークカードを持つコンピューターにおいて、 Intel
   製が eth0、Realtek 製が eth1 となったとします。
   しかし時にはシステムの再起動によって番号割り振りが逆転することもありま
   す。 これを避けるには Udev
   ルールを生成して、ネットワークカードの MAC
   アドレスに基づいて固定的に名称を定める方法があります。

   このルールは、前章の udev (systemd)
   におけるビルド手順にて事前生成されています。
   /etc/udev/rules.d/70-persistent-net
   .rules
   を確認すれば、どんな名前がどのネットワークデバイスに割り当てられている
   かが分かります。
cat /etc/udev/rules.d/70-persistent-net.rule
s

注記

   ネットワークカードに対して手動で MAC アドレスを割り当てた場合や
   Xen
   のような仮想環境における場合などにおいて、ネットワークルールファイルが
   生成されないことがあります。
   これはアドレスの割り当てが確定されないためです。
   こういった場合は次節に進んでください。

   このファイルの先頭にはコメントが数行あり、続いてそれぞれの NIC
   に対する行があります。 NIC
   ごとの記述では一行めがコメントで、そのハードウェア ID
   が記されています。 (PCI カードである場合、PCI
   ベンダとデバイス ID が記述されます。)
   またドライバーが検出できている場合には、カッコ書きでドライバー名も示さ
   れます。 ハードウェア ID
   もドライバー名も、インターフェースに対して与えられる名称とは無関係で、
   単に分かりやすくするために記されているにすぎません。 二行めは
   Udev ルールであり、その NIC
   を定め、名称を割り当てている記述です。

   Udev
   ルールはいくつかのキー項目で構成され、それぞれがカンマで区切られるか、
   場合によっては空白文字で区切られています。
   このキー項目とその内容は以下のようになります。
     * SUBSYSTEM=="net" -
       ネットワークカードではないデバイスは無視することを指示します。
     * ACTION=="add" - uevent の add
       イベントではないものは無視することを指示します。
       (uevent の "remove" イベントや
       "change"
       イベントも発生しますが、これらはネットワークインターフェースの
       名前を変更するものではありません。)
     * DRIVERS=="?*" - Udev に対して VLAN
       やブリッジサブインターフェース (bridge
       sub-interfaces) を無視することを指示します。
       (サブインターフェースにはドライバーがないためです。)
       サブインターフェースに名前が割り当てられたとすると、親デバイス
       の名前と衝突してしまうため、サブインターフェースの名前割り当て
       はスキップされます。
     * ATTR{address} - このキーの値は NIC の
       MAC アドレスを表します。
     * ATTR{type}=="1" -
       特定のワイヤレスドライバーでは複数の仮想インターフェースが生成
       されますが、そのうちの主となるインターフェースにのみルールが合
       致するようにします。
       二つめ以降のインターフェースに対する処理は、VLAN
       やブリッジサブインターフェースがスキップされるのと同じくスキッ
       プされます。
       名前割り当てが行われてしまうと名前衝突を起こすためです。
     * KERNEL=="eth*" -
       複数のネットワークインターフェースを有するマシンを取り扱うため
       のルールを加えます。 このルールでは全インターフェースに同一の
       MAC アドレスが用いられます。 (PS3
       などがそういったマシンになります。)
       各インターフェースに対して個別の命名が行われたとすると
       Udev はそれぞれを別のものとして取り扱います。
       これはたいていの Linux From Scratch
       ユーザーにとって必要ありません。
       ただそうなったとしても問題はありません。
     * NAME - Udev
       がインターフェースに対して割り当てる名前をキーの値として指定し
       ます。

   NAME に定義される値が重要です。
   どのネットワークカードにどんな名前が割り当てられているかをよく確認して
   ください。 そして以下において設定ファイルを生成する際には NAME
   に定義されている名称を利用してください。

7.2.2. ネットワークインターフェースに対する設定ファイルの生成

   どのネットワークインターフェースが起動したり停止したりするかは
   /etc/sysconfig/
   ディレクトリ配下のファイルの指定によります。
   このディレクトリには、設定を行ないたい各ネットワークインターフェースに
   対するファイルを準備します。
   例えばネットワークインターフェースの名が「xyz」である場合
   ifconfig.xyz というファイルとします。
   「xyz」は管理者が識別できるデバイス名、例えば eth0
   などとなります。
   このファイルにはネットワークインターフェースの属性、つまり IP
   アドレスやサブネットマスクなどを定義します。 ファイルベース名は
   ifconfig とすることが必要です。

   以下のコマンドは、eth0 デバイスに対して固定 IP
   アドレスを設定するファイルを生成する例です。
cd /etc/sysconfig/
cat > ifconfig.eth0 << "EOF"
ONBOOT=yes
IFACE=eth0
SERVICE=ipv4-static
IP=192.168.1.1
GATEWAY=192.168.1.2
PREFIX=24
BROADCAST=192.168.1.255
EOF

   各変数の値は各ファイルごとに適切なものに設定してください。

   ONBOOT
   変数を「yes」に設定した場合、システム起動時にネットワークスクリプト
   がネットワークインターフェースカード (network
   interface card; NIC) を起動します。
   「yes」以外に設定すると、ネットワークスクリプトからの NIC
   の起動がなくなり、NIC は自動では起動しなくなります。
   ネットワークインターフェースは ifup や ifdown
   といったコマンドを使って、起動や停止を行うことができます。

   IFACE 変数は、インターフェース名を定義します。 例えば eth0
   といったものです。
   これはネットワークデバイスの設定を行うすべてのファイルにて必要な定義で
   す。

   SERVICE 変数はIP アドレスの取得方法を指定します。
   LFS-ブートスクリプトは IP
   アドレス割り当て方法をモジュール化しています。 そして
   /lib/services/
   ディレクトリに追加でファイルを生成すれば、他の IP
   アドレス割り当て方法をとることもできます。 通常は DHCP
   (Dynamic Host Configuration
   Protocol) において利用されるものです。 これについては
   BLFS ブックにて説明しています。

   GATEWAY 変数は、デフォルトゲートウェイが存在するならその IP
   アドレスを指定します。
   存在しない場合は、の変数設定を行っている一行をコメントにします。

   PREFIX
   変数はサブネットマスクにて用いられるビット数を指定します。 IP
   アドレスの各オクテット (octet) は 8 ビットで構成されます。
   例えばサブネットマスクが 255.255.255.0
   である場合、ネットワーク番号 (network number)
   を特定するには最初の三つのオクテット (24ビット)
   が用いられることを意味します。 もし 255.255.255.240
   であるなら、最初の 28 ビットということになります。 24
   ビットを超えるプレフィックスは、通常は DSL
   やケーブルを用いたインターネットサービスプロバイダー
   (Internet Service Provider; ISP)
   がよく利用しています。 上の例 (PREFIX=24)
   では、サブネットマスクは 255.255.255.0 となります。
   PREFIX 変数の値は、ネットワーク環境に応じて変更してください。
   これが省略された場合は、デフォルトの 24 が用いられます。

   より詳しくは ifup の man ページを参照してください。

7.2.3. /etc/resolv.conf ファイルの生成

   インターネットへの接続を行う場合には、ドメイン名サービス
   (domain name service; DNS)
   による名前解決を必要とします。 これによりインターネットドメイン名を
   IP アドレスに、あるいはその逆の変換を行います。 これを行うには
   ISP やネットワーク管理者が指定する DNS サーバーの割り振り
   IP アドレスを /etc/resolv.conf
   ファイルに設定します。 以下のコマンドによりこのファイルを生成します。
cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf

domain <Your Domain Name>
nameserver <IP address of your primary names
erver>
nameserver <IP address of your secondary nam
eserver>

# End /etc/resolv.conf
EOF

   domain ステートメントは省略するか、search
   ステートメントで代用することが可能です。 詳しくは
   resolv.conf の man ページを参照してください。

   <IP address of the nameserver>
   (ネームサーバーの IP アドレス) の部分には、DNS
   が割り振る適切な IP アドレスを記述します。 IP
   アドレスの設定は複数行う場合もあります。(代替構成を必要とするなら二次
   サーバーを設けることでしょう。)
   一つのサーバーのみで十分な場合は、二つめの nameserver
   の行は削除します。 ローカルネットワークにおいてはルーターの IP
   アドレスを設定することになるでしょう。

注記

   Google Public IPv4 DNS アドレスは
   8.8.8.8 と 8.8.4.4 です。

7.3. /etc/hosts ファイルの設定

   ネットワークカードの準備ができたら完全修飾ドメイン名
   (fully-qualified domain name; FQDN)
   とそのエイリアス名を決定して /etc/hosts
   ファイルに記述します。 記述書式は以下のとおりです。
IP_address myhost.example.org aliases

   インターネットに公開されていないコンピューターである場合
   (つまり登録ドメインであったり、あらかじめ IP
   アドレスが割り当てられていたりする場合。
   普通のユーザーはこれを持ちません。) IP
   アドレスはプライベートネットワーク IP アドレスの範囲で指定します。
   以下がそのアドレス範囲です。
Private Network Address Range      Normal Pr
efix
10.0.0.1 - 10.255.255.254           8
172.x.0.1 - 172.x.255.254           16
192.168.y.1 - 192.168.y.254         24

   x は 16 から 31、y は 0 から 255 の範囲の数値です。

   IP アドレスの例は 192.168.11.1 となります。 また
   FQDN の例としては lfs.example.org となります。

   ネットワークカードを用いない場合でも FQDN
   の記述は行ってください。
   特定のプログラムが動作する際に必要となることがあるからです。

   以下のようにして /etc/hosts ファイルを生成します。
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (network card version)

127.0.0.1 localhost
<192.168.1.1> <HOSTNAME.example.org> [alias1
] [alias2 ...]

# End /etc/hosts (network card version)
EOF

   <192.168.1.1> や
   <HOSTNAME.example.org>
   の部分は利用状況に応じて書き換えてください。 (ネットワーク管理者から
   IP
   アドレスを指定されている場合や、既存のネットワーク環境に接続する場合な
   ど。) エイリアスの記述 (alias1, alias2 )
   は省略しても構いません。

   ネットワークカードを設定しない場合は、以下のようにして
   /etc/hosts ファイルを生成します。
cat > /etc/hosts << "EOF"
# Begin /etc/hosts (no network card version)

127.0.0.1 <HOSTNAME.example.org> <HOSTNAME>
localhost

# End /etc/hosts (no network card version)
EOF

7.4. LFS システムにおけるデバイスとモジュールの扱い

   [697]第6章にて Udev パッケージをインストールしました。
   このパッケージがどのように動作するかの詳細を説明する前に、デバイスを取
   り扱うかつての方法について順を追って説明していきます。

   Linux
   システムは一般に、スタティックなデバイス生成方法を採用していました。
   この方法では /dev のもとに膨大な量の
   (場合によっては何千にもおよぶ) デバイスノードが生成されます。
   現実に存在するハードウェアデバイスが存在するかどうかに関わらずです。
   これは MAKEDEV スクリプトを通じて生成されます。
   このスクリプトからは mknod
   プログラムが呼び出されますが、その呼び出しは、この世に存在するありとあ
   らゆるデバイスのメジャー/マイナー番号を用いて行われます。

   Udev
   による方法では、カーネルが検知したデバイスだけがデバイスノードとなりま
   す。
   デバイスノードはシステムが起動するたびに生成されることになるので、
   devtmpfs ファイルシステム上に保存されます。
   (devtmpfs
   は仮想ファイルシステムであり、メモリ上に置かれます。)
   デバイスノードの情報はさほど多くないので、消費するメモリ容量は無視でき
   るほど少ないものです。

7.4.1. 開発経緯

   2000年2月に新しいファイルシステム devfs がカーネル
   2.3.46
   に導入され、2.4系の安定版カーネルにて利用できるようになりました。
   このファイルシステムはカーネルのソース内に含まれ実現されていましたが、
   デバイスを動的に生成するこの手法は、主要なカーネル開発者の十分な支援は
   得られませんでした。

   devfs
   が採用した手法で問題になるのは、主にデバイスの検出、生成、命名の方法で
   す。 特にデバイスの命名方法がおそらく最も重大な問題です。
   一般的に言えることとして、デバイス名が変更可能であるならデバイス命名の
   規則はシステム管理者が考えることであって、特定の開発者に委ねるべきこと
   ではありません。 また devfs
   にはその設計に起因した競合の問題があるため、根本的にカーネルを修正しな
   ければ解消できる問題ではありません。
   そこで長い間、保守されることがなかったために非推奨
   (deprecated) として位置づけられ、最終的に
   2006年6月にはカーネルから取り除かれました。

   開発版の 2.5 系カーネルと、後にリリースされた安定版のカーネル
   2.6 系を経て、新しい仮想ファイルシステム sysfs
   が登場しました。 sysfs
   が実現したのは、システムのハードウェア設定をユーザー空間のプロセスとし
   て表に出したことです。 ユーザー空間での設定を可視化したことによって
   devfs
   が為していたことを、ユーザー空間にて現実に見ることが可能になったわけで
   す。

7.4.2. Udev の実装

7.4.2.1. Sysfs ファイルシステム

   sysfs ファイルシステムについては上で簡単に触れました。
   sysfs
   はどのようにしてシステム上に存在するデバイスを知るのか、そしてどのデバ
   イス番号が利用されるのか。 そこが知りたいところです。
   カーネルに直接組み込まれて構築されたドライバーでは、対象のオブジェクト
   がカーネルによって検出されたものとしてそのオブジェクトを sysfs
   に登録します。
   モジュールとしてコンパイルされたドライバーでは、その登録がモジュールの
   ロード時に行われます。 sysfs ファイルシステムが (/sys
   に) マウントされると、組み込みのドライバーによって sysfs
   に登録されたデータは、ユーザー空間のプロセスと
   (デバイスノードの修正を含む) さまざまな処理を行う udevd
   にて利用可能となります。

7.4.2.2. Udev ブートスクリプト

   初期起動スクリプト /etc/rc.d/init.d/udev
   は、Linux のブート時にデバイスノードの生成を受け持ちます。
   このスクリプトは /sbin/hotplug のデフォルトから
   uevent ハンドラを取り除きます。
   この時点でカーネルは、他の実行モジュールを呼び出す必要がないからです。
   そのかわりに、カーネルが起動する uevent をネットリンクソケット
   (netlink socket) 上で待ち受けます。
   そしてブートスクリプトが /lib/udev/devices
   内にある静的なデバイスノードをすべて /dev にコピーします。
   デバイスやディレクトリ、シンボリックリンクがこの時点で利用可能になって
   いないと、システム起動の初期段階において動的デバイスを扱う処理が動作し
   ないためです。 あるいは udevd
   自身がそれを必要とするからでもあります。
   /lib/udev/devices
   内に静的なデバイスノードを生成することで、動的デバイスを取り扱うことが
   できないデバイスも動作させることができます。
   こうしてブートスクリプトは Udev デーモン、つまり udevd
   を起動し、それがどのような uevent
   であっても対応できるものとなります。
   最後にブートスクリプトはカーネルに対して、すべてのデバイスにおいて既に
   登録されている uevent を再起動させ、udevd
   がそれを待ち受けるものとなります。

   初期起動スクリプト
   /etc/rc.d/init.d/udev_retry
   は、サブシステムに対するイベントの再起動を行ないます。
   そのサブシステムとはファイルシステムに依存するもので、mountfs
   が実行されるまでマウントされません。 (特に /usr や /var
   がこれに該当します。) mountfs
   スクリプトの後にこのスクリプトが実行されるので、(イベントが再起動され
   るものであれば) 二度目には成功します。 このスクリプトは
   /etc/sysconfig/udev_retry
   ファイルにより設定が可能で、コメントを除く記述項目はすべてサブシステム
   名を表わし、二度目の起動時のリトライ対象となります。
   (デバイスのサブシステムを知るには udevadm info
   --attribute-walk を実行します。)

7.4.2.3. デバイスノードの生成

   udev の最近のバージョンより udevd はデバイスファイルを
   /dev には作らなくなりました。 このかわりに devtmpfs
   ファイルシステムを通じて、カーネルが制御していくものになりました。
   デバイスノードを登録しようとするドライバーは (デバイスコア経由で)
   devtmpfs を通じて登録を行います。 devtmpfs
   のインスタンスが /dev
   上にマウントされると、デバイスノードには固定的な名称、パーミッション、
   所有者の情報が設定され生成されます。

   その後にカーネルは udevd に対して uevent を送信します。
   udevd は、/etc/udev/rules.d,
   /lib/udev/rules.d,
   /run/udev/rules.d
   の各ディレクトリ内にあるファイルの設定ルールに従って、デバイスノードに
   対するシンボリックリンクを生成したり、
   パーミッション、所有者、グループの情報を変更したり、内部的な
   udevd データベースの項目を修正したりします。

   上の三つのディレクトリ内にて指定されるルールは、LFS
   ブートスクリプトパッケージと同様の方法で番号づけされており、三つのディ
   レクトリの内容は一つにまとめられます。 デバイスノードの生成時に
   udevd がそのルールを見つけ出せなかった時は、devtmpfs
   が利用される際の初期のパーミッションと所有者の情報のままとなります。

7.4.2.4. モジュールのロード

   モジュールとしてコンパイルされたデバイスドライバーの場合、デバイス名の
   別名が作り出されています。 その別名は modinfo
   プログラムを使えば確認することができます。
   そしてこの別名は、モジュールがサポートするバス固有の識別子に関連づけら
   れます。 例えば snd-fm801 ドライバーは、ベンダーID
   0x1319 とデバイスID 0x0801 の PCI
   ドライバーをサポートします。
   そして「pci:v00001319d00000801sv*sd*bc0
   4sc01i*」というエイリアスがあります。
   たいていのデバイスでは、sysfs
   を通じてドライバーがデバイスを扱うものであり、ドライバーのエイリアスを
   バスドライバーが提供します。
   /sys/bus/pci/devices/0000:00:0d.0/m
   odalias
   ファイルならば「pci:v00001319d00000801sv000
   01319sd00001319bc04sc01i00」という文字列を含
   んでいるはずです。 Udev が提供するデフォルトの生成規則によって
   udevd から /sbin/modprobe
   が呼び出されることになり、その際には uevent に関する環境変数
   MODALIAS の設定内容が利用されます。 (この環境変数の内容は
   sysfs 内の modalias ファイルの内容と同じはずです。)
   そしてワイルドカードが指定されているならそれが展開された上で、エイリア
   ス文字列に合致するモジュールがすべてロードされることになります。

   上の例で forte ドライバーがあったとすると、snd-fm801
   の他にそれもロードされてしまいます。
   これは古いものでありロードされて欲しくないものです。
   不要なドライバーのロードを防ぐ方法については後述しているので参照してく
   ださい。

   カーネルは、ネットワークプロトコル、ファイルシステム、NLS
   サポートといった各種モジュールも、要求に応じてロードすることもできます
   。

7.4.2.5. ホットプラグ可能な/ダイナミックなデバイスの扱い

   USB (Universal Serial Bus) で MP3
   プレイヤーを接続しているような場合、カーネルは現在そのデバイスが接続さ
   れているということを認識しており、uevent
   が生成済の状態にあります。 その uevent は上で述べたように
   udevd が取り扱うことになります。

7.4.3. モジュールロードとデバイス生成の問題

   自動的にデバイスが生成される際には、いくつか問題が発生します。

7.4.3.1. カーネルモジュールが自動的にロードされない問題

   Udev
   がモジュールをロードできるためには、バス固有のエイリアスがあって、バス
   ドライバーが sysfs
   に対して適切なエイリアスを提供していることが必要です。
   そうでない場合は、別の手段を通じてモジュールのロードを仕組まなければな
   りません。 Linux-3.5.2 においての Udev
   は、INPUT、IDE、PCI、USB、SCSI、SERIO、Fire
   Wire の各デバイスに対するドライバーをロードします。
   それらのデバイスドライバーが適切に構築されているからです。

   目的のデバイスドライバーが Udev
   に対応しているかどうかは、modinfo
   コマンドに引数としてモジュール名を与えて実行します。 /sys/bus
   ディレクトリ配下にあるそのデバイス用のディレクトリを見つけ出して、mo
   dalias ファイルが存在しているかどうかを見ることで分かります。

   sysfs に modalias
   ファイルが存在しているなら、そのドライバーはデバイスをサポートし、デバ
   イスとの直接のやり取りが可能であることを表します。
   ただしエイリアスを持っていなければ、それはドライバーのバグです。
   その場合は Udev
   に頼ることなくドライバーをロードするしかありません。
   そしてそのバグが解消されるのを待つしかありません。

   /sys/bus ディレクトリ配下の対応するディレクトリ内に
   modalias
   ファイルがなかったら、これはカーネル開発者がそのバス形式に対する
   modalias のサポートをまだ行っていないことを意味します。
   Linux-3.5.2 では ISA バスがこれに該当します。
   最新のカーネルにて解消されることを願うしかありません。

   Udev は snd-pcm-oss のような「ラッパー
   (wrapper)」ドライバーや loop
   のような、現実のハードウェアに対するものではないドライバーは、ロードす
   ることができません。

7.4.3.2. カーネルモジュールが自動的にロードされず Udev
もロードしようとしない問題

   「ラッパー
   (wrapper)」モジュールが単に他のモジュールの機能を拡張するだけ
   のものであるなら (例えば snd-pcm-oss は snd-pcm
   の機能拡張を行うもので、OSS
   アプリケーションに対してサウンドカードを利用可能なものにするだけのもの
   であるため) modprobe
   の設定によってラッパーモジュールを先にロードし、その後でラップされるモ
   ジュールがロードされるようにします。 これは以下のように
   /etc/modprobe.d/<filename>.conf
   ファイル内にて「softdep」の記述行を加えることで実現します。
softdep snd-pcm post: snd-pcm-oss

   「softdep」コマンドは pre: を付与することもでき、あるいは
   pre: と post: の双方を付与することもできます。
   その記述方法や機能に関する詳細は man ページ
   modprobe.d(5) を参照してください。

   問題のモジュールがラッパーモジュールではなく、単独で利用できるものであ
   れば、 modules
   ブートスクリプトを編集して、システム起動時にこのモジュールがロードされ
   るようにします。 これは /etc/sysconfig/modules
   ファイルにて、そのモジュール名を単独の行に記述することで実現します。
   この方法はラッパーモジュールに対しても動作しますが、この場合は次善策と
   なります。

7.4.3.3. Udev が不必要なモジュールをロードする問題

   不必要なモジュールはこれをビルドしないことにするか、あるいは
   /etc/modprobe.d/blacklist.conf
   ファイルにブラックリスト (blacklist)
   として登録してください。 例えば forte
   モジュールをブラックリストに登録するには以下のようにします。
blacklist forte

   ブラックリストに登録されたモジュールは modprobe
   コマンドを使えば手動でロードすることもできます。

7.4.3.4. Udev
が不正なデバイスを生成する、または誤ったシンボリックリンクを生成する問題

   デバイス生成規則が意図したデバイスに合致していないと、この状況が往々に
   して起こります。 例えば生成規則の記述が不十分であった場合、SCSI
   ディスク (本来望んでいるデバイス)
   と、それに対応づいたものとしてベンダーが提供する SCSI
   ジェネリックデバイス (これは誤ったデバイス)
   の両方に生成規則が合致してしまいます。
   記述されている生成規則を探し出して正確に記述してください。 その際には
   udevadm info コマンドを使って情報を確認してください。

7.4.3.5. Udev 規則が不審な動きをする問題

   この問題は、一つ前に示したものが別の症状となって現れたものかもしれませ
   ん。 そのような理由でなく、生成規則が正しく sysfs
   の属性を利用しているのであれば、それはカーネルの処理タイミングに関わる
   問題であって、カーネルを修正すべきものです。 今の時点では、該当する
   sysfs
   の属性の利用を待ち受けるような生成規則を生成し、/etc/udev/r
   ules.d/10-wait_for_sysfs.rules
   ファイルにそれを追加することで対処できます。
   (/etc/udev/rules.d/10-wait_for_sysf
   s.rules ファイルがなければ新規に生成します。)
   もしこれを実施してうまくいった場合は LFS
   開発メーリングリストにお知らせください。

7.4.3.6. Udev がデバイスを生成しない問題

   ここでは以下のことを前提としています。
   まずドライバーがカーネル内に静的に組み入れられて構築されているか、ある
   いは既にモジュールとしてロードされていること。 そして Udev
   が異なった名前のデバイスを生成していないことです。

   Udev
   がデバイスノード生成のために必要となる情報を知るためには、カーネルドラ
   イバーが sysfs
   に対して属性データを提供していなければなりません。
   これはカーネルツリーの外に配置されるサードパーティ製のドライバーであれ
   ば当たり前のことです。 したがって /lib/udev/devices
   において、適切なメジャー、マイナー番号を用いた静的なデバイスノードを生
   成してください。 (カーネルのドキュメント devices.txt
   またはサードパーティベンダーが提供するドキュメントを参照してください。
   ) この静的デバイスノードは、udev ブートスクリプトによって
   /dev にコピーされます。

7.4.3.7. 再起動後にデバイスの命名順がランダムに変わってしまう問題

   これは Udev の設計仕様に従って発生するもので、uevent
   の扱いとモジュールのロードが平行して行われるためです。
   このために命名順が予期できないものになります。
   これを「固定的に」することはできません。
   ですからカーネルがデバイス名を固定的に定めるようなことを求めるのではな
   く、シンボリックリンクを用いた独自の生成規則を作り出して、そのデバイス
   の固定的な属性を用いた固定的な名前を用いる方法を取ります。
   固定的な属性とは例えば、Udev によってインストールされるさまざまな
   *_id という名のユーティリティが出力するシリアル番号などです。
   設定例については
   [698]7.5.「デバイスへのシンボリックリンクの生成」や
   [699]7.2.「全般的なネットワークの設定」を参照してください。

7.4.4. 参考情報

   さらに参考になるドキュメントが以下のサイトにあります：
     * devfs のユーザー空間での実装方法
       [700]http://www.kroah.com/linux
       /talks/ols_2003_udev_paper/Repr
       int-Kroah-Hartman-OLS2003.pdf
     * sysfs ファイルシステム
       [701]http://www.kernel.org/pub/
       linux/kernel/people/mochel/doc/
       papers/ols-2005/mochel.pdf
     * より詳細なドキュメントへのリンク
       [702]http://www.kernel.org/pub/
       linux/utils/kernel/hotplug/udev
       .html

7.5. デバイスへのシンボリックリンクの生成

7.5.1. CD-ROM のシンボリックリンク

   後にインストールしていくソフトウェア (例えばメディアプレーヤーなど)
   では、/dev/cdrom や /dev/dvd
   といったシンボリックリンクを必要とするものがあります。
   これらはそれぞれ CD-ROM、DVD-ROM を指し示しています。
   こういったシンボリックリンクは /etc/fstab
   ファイルに設定しておくのが便利です。 Udev
   が提供するスクリプトファイルで、ルールファイル (rules
   files) を生成するものがあります。
   そのルールファイルは、各デバイスの性能に応じてシンボリックファイルを構
   成します。
   もっともこのスクリプトファイルを利用する際には、二つ存在する動作モード
   のいずれを用いるかを決めなければなりません。

   一つは「パス (by-path)」モードです。 これは USB
   デバイスやファームウェアデバイスに対してデフォルトで利用されます。
   これによって作り出されるルールは CD や DVD
   デバイスに対して物理パスが用いられます。 二つめは「ID
   (by-id)」モードです。 デフォルトで IDE や SCSI
   デバイスに利用されます。 このモードで作り出されるルールは CD や
   DVD デバイス自身が持つ識別文字列が用いられます。 パスは Udev
   の path_id スクリプトによって決定します。 一方、識別文字列は
   ata_id プログラムまたは scsi_id
   プログラムによってハードウェアから読み出されます。
   ata_id、scsi_id
   のいずれであるかは、そのデバイスによって決まります。

   二つの方法にはそれぞれに利点があります。
   どちらの方法が適切であるかは、デバイスがどのように変更されるかによりま
   す。 デバイスに対する物理パス
   (そのデバイスが接続しているポートやスロット)
   を変更したい場合、例えば IDE ポートや USB
   コネクタを切り替えたいような場合、「ID
   (by-id)」モードを使うべきです。
   一方、デバイスの識別文字列を変えたい場合、つまりデバイスが故障したため
   に、同等の性能の新しいデバイスを同一コネクタに接続しようとする場合は、
   「パス (by-path)」モードを使うべきです。

   いずれの変更の可能性もあるならば、より変更の可能性の高いケースに従って
   モードを選ぶべきです。

重要項目

   外部接続のデバイス (例えば USB 接続の CD ドライブなど)
   はパス (by-path) モードを用いるべきではありません。
   そのようなデバイスは接続するたびに外部ポートが新しくなり、物理パスが変
   わってしまうためです。
   こういった外部接続のデバイスを物理パスで認識させ Udev
   ルールを構成した場合は、あらゆるデバイスがこの問題を抱えることになりま
   す。 これは CD や DVD ドライブだけに限った話ではありません。

   Udev スクリプトが利用しているキーの値を確認したい場合は /sys
   ディレクトリ配下を確認します。 例えば CD-ROM
   デバイスについては /sys/block/hdd を確認します。
   そして以下のようなコマンドを実行します。
udevadm test /sys/block/hdd

   出力結果には *_id
   というプログラム名を示した行がたくさん表示されます。 「ID
   (by-id)」モードは ID_SERIAL
   値が存在して空でなければこれを利用します。 そうでない時は
   ID_MODEL と ID_REVISION を利用します。 「パス
   (by-path)」モードは ID_PATH の値を利用します。

   デフォルトモードが利用状況に合わない場合は、/lib/udev/rul
   es.d/75-cd-aliases-generator.rules
   ファイルに対して以下のように修正を行います。 mode
   の部分は「by-id」か「by-path」に置き換えます。
sed -i -e 's/"write_cd_rules"/"write_cd_rule
s mode"/' \
    /lib/udev/rules.d/75-cd-aliases-generato
r.rules

   ここでルールファイルやシンボリックリンクを作成する必要はありません。
   この時点ではホストの /dev ディレクトリに対して LFS
   システムに向けてのバインドマウント (bind-mounted)
   を行っており、ホスト上にシンボリックリンクが存在していると仮定している
   からです。 ルールファイルとシンボリックリンクは LFS
   システムを初めてブートした時に生成されます。

   もっとも CD-ROM
   デバイスが複数あると、ブート時に生成されるシンボリックリンクが、ホスト
   利用時に指し示されていたものとは異なる場合が発生します。
   デバイスの検出順は予測できないものだからです。 LFS
   システムを初めて起動した時の割り当ては、たぶん固定的に行われるはずです
   。 つまりこのことは、ホストシステムと LFS
   システムの双方で、シンボリックリンクが同じデバイスを指し示すことが必要
   である場合にのみ問題となります。 これが必要であるなら、生成されている
   /etc/udev/rules.d/70-persistent-cd.
   rules ファイルを起動後に調査して (おそらくは編集して)
   割り当てられたシンボリックリンクが望むものになっているかどうかを確認し
   てください。

7.5.2. 重複するデバイスの取り扱い方

   [703]7.4.「LFS
   システムにおけるデバイスとモジュールの扱い」で説明したように、/dev
   内に同一機能を有するデバイスがあったとすると、その検出順は本質的にラン
   ダムです。 例えば USB 接続のウェブカメラと TV
   チューナーがあったとして、/dev/video0
   がウェブカメラを、また /dev/video1
   がチューナーをそれぞれ参照していたとしても、システム起動後はその順が逆
   になることがあります。
   サウンドカードやネットワークカードを除いた他のハードウェアであれば、U
   dev
   ルールを適切に記述することで、固定的なシンボリックリンクを作り出すこと
   ができます。 ネットワークカードについては、別途
   [704]7.2.「全般的なネットワークの設定」にて説明しています。
   またサウンドカードの設定方法は [705]BLFS
   にて説明しています。

   利用しているデバイスに上の問題の可能性がある場合 (お使いの
   Linux
   ディストリビューションではそのような問題がなかったとしても)
   /sys/class ディレクトリや /sys/block
   ディレクトリ配下にある対応ディレクトリを探してください。
   ビデオデバイスであれば
   /sys/class/video4linux/videoX
   といったディレクトリです。
   そしてそのデバイスを一意に特定する識別情報を確認してください。
   (通常はベンダー名、プロダクトID、シリアル番号などです。)
udevadm info -a -p /sys/class/video4linux/vi
deo0

   シンボリックリンクを生成するルールを作ります。
cat > /etc/udev/rules.d/83-duplicate_devs.ru
les << "EOF"

# Persistent symlinks for webcam and tuner
KERNEL=="video*", ATTRS{idProduct}=="1910",
ATTRS{idVendor}=="0d81", \
    SYMLINK+="webcam"
KERNEL=="video*", ATTRS{device}=="0x036f", A
TTRS{vendor}=="0x109e", \
    SYMLINK+="tvtuner"

EOF

   こうしたとしても /dev/video0 と /dev/video1
   はチューナーとウェブカメラのいずれかをランダムに指し示すことに変わりあ
   りません。 (したがって直接このデバイス名を使ってはなりません。)
   しかしシンボリックリンク /dev/tvtuner と
   /dev/webcam は常に正しいデバイスを指し示すようになります。

7.6. LFS-ブートスクリプト-20120901

   LFS-ブートスクリプトパッケージは LFS
   システムの起動、終了時に利用するスクリプトを提供します。
   概算ビルド時間: 0.1 SBU 以下
   必要ディスク容量: 260 KB

7.6.1. LFS ブートスクリプト のインストール

   パッケージをインストールします。
make install

7.6.2. LFS ブートスクリプト の構成

   インストールスクリプト: checkfs, cleanfs,
   console, functions, halt, ifdown,
   ifup, localnet, modules, mountfs,
   mountkernfs, network, rc, reboot,
   sendsignals, setclock, static,
   swap, sysctl, sysklogd, template,
   udev, udev_retry
   インストールディレクトリ: /etc/rc.d,
   /etc/init.d (シンボリックリンク),
   /etc/sysconfig, /lib/services,
   /lib/lsb (シンボリックリンク)

概略説明

   checkfs

   ファイルシステムがマウントされる前にその整合性をチェックします。
   (ただしジャーナルファイルシステムとネットワークベースのファイルシステ
   ムは除きます。)

   cleanfs

   リブートの際に不要となるファイルを削除します。 例えば
   /var/run/ ディレクトリや /var/lock/
   ディレクトリの配下にあるファイルです。 /var/run/utmp
   ファイルは再生成されます。 また
   /etc/nologin、/fastboot、/forcefsck
   がおそらく存在しており、これらは削除されます。

   console

   必要となるキーボードレイアウトに対しての正しいキーマップテーブルをロー
   ドします。 同時にスクリーンフォントもセットします。

   functions

   共通的な関数を提供します。
   例えばエラーやステータスのチェックなどであり、これはブートスクリプトの
   多くが利用します。

   halt

   システムを停止します。

   ifdown

   ネットワークデバイスを停止します。

   ifup

   ネットワークデバイスを初期化します。

   localnet

   システムのホスト名とローカルループバックデバイスを設定します。

   modules

   /etc/sysconfig/modules
   にて一覧設定されているカーネルモジュールをロードします。
   その際には引数が指定され利用されます。

   mountfs

   ファイルシステムをすべてマウントします。 ただし noauto
   が設定されているものやネットワークベースのファイルシステムは除きます。

   mountkernfs

   仮想カーネルファイルシステムをマウントします。 例えば proc
   などです。

   network

   ネットワークカードなどのネットワークインターフェースを設定します。
   そして (可能であれば) デフォルトゲートウェイを設定します。

   rc

   ランレベルを制御するマスタースクリプト。
   他のブートスクリプトを一つずつ実行します。
   その際には実行されるシンボリックの名前によって実行順序を決定します。

   reboot

   システムを再起動します。

   sendsignals

   システムが再起動または停止する前に、プロセスすべてが停止していることを
   確認します。

   setclock

   ハードウェアクロックが UTC
   時刻に設定されていなければ、カーネルクロックをローカル時刻としてリセッ
   トします。

   static

   ネットワークインターフェースに対して固定 IP (Internet
   Protocol)
   アドレスを割り当てるために必要となる機能を提供します。

   swap

   スワップファイルやスワップパーティションを有効または無効にします。

   sysctl

   /etc/sysctl.conf
   ファイルが存在している場合、実行中のカーネルに対してシステム設定値をロ
   ードします。

   sysklogd

   システムログデーモンおよびカーネルログデーモンの起動と停止を行います。

   template

   他のデーモン用としてブートスクリプトを生成するためのテンプレート。

   udev

   /dev ディレクトリを準備して Udev を起動します。

   udev_retry

   Udev の uevent が失敗した場合にこれを再実行します。
   そして必要に応じて、生成されたルールファイルを /dev/.udev
   から /etc/udev/rules.d へコピーします。

7.7. ブートスクリプトはどのようにして動くのか

   Linux では SysVinit という特別なブート機能があり
   ランレベル (run-levels) という考え方に基づいています。
   ランレベルの扱いはシステムによって異なりますので、ある Linux
   において動作しているからといって LFS
   においても全く同じように動くわけではありません。 LFS
   では独自の方法でこれを取り入れることにします。
   ただし標準として受け入れられるような方法を取ります。

   SysVinit (これ以降は「init」と表現します)
   はランレベルという仕組みにより動作します。 ランレベルには7つのレベル
   (0 から 6) があります。
   (実際にはランレベルはそれ以上あるのですが、特殊な場合であって普通は利
   用されません。 詳しくは init(8) を参照してください。)
   各レベルは、コンピューターの起動時における処理動作に対応づいており、デ
   フォルトのランレベルは 3 となっています。
   ランレベルの詳細を以下に説明します。

   0: コンピューターの停止
   1: シングルユーザーモード
   2: マルチユーザーモード、ネットワークなし
   3: マルチユーザーモード、ネットワークあり
   4: 将来の拡張用として予約されています。 3 と同じものとして扱われ
   ます。
   5: 4 と同様。通常 (X の xdm や KDE の kdm のよ
   うな) GUI ログインに用いられます。
   6: コンピューターの再起動

7.7.1. Sysvinit の設定

   カーネルの初期化にあたって最初に起動するプログラムは、コマンドラインか
   ら指定されるものか、あるいはデフォルトでは init です。
   このプログラムは初期設定ファイル /etc/inittab
   を読み込みます。 そのファイルは以下のようにして生成します。
cat > /etc/inittab << "EOF"
# Begin /etc/inittab

id:3:initdefault:

si::sysinit:/etc/rc.d/init.d/rc S

l0:0:wait:/etc/rc.d/init.d/rc 0
l1:S1:wait:/etc/rc.d/init.d/rc 1
l2:2:wait:/etc/rc.d/init.d/rc 2
l3:3:wait:/etc/rc.d/init.d/rc 3
l4:4:wait:/etc/rc.d/init.d/rc 4
l5:5:wait:/etc/rc.d/init.d/rc 5
l6:6:wait:/etc/rc.d/init.d/rc 6

ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r
 now

su:S016:once:/sbin/sulogin

1:2345:respawn:/sbin/agetty --noclear tty1 9
600
2:2345:respawn:/sbin/agetty tty2 9600
3:2345:respawn:/sbin/agetty tty3 9600
4:2345:respawn:/sbin/agetty tty4 9600
5:2345:respawn:/sbin/agetty tty5 9600
6:2345:respawn:/sbin/agetty tty6 9600

# End /etc/inittab
EOF

   この初期化ファイルに関することは inittab の man
   ページにて説明されています。 LFS において重要となるコマンドは
   rc です。 初期化ファイルは rc
   コマンドに対してスクリプトの実行を指示します。 実行されるスクリプトは
   /etc/rc.d/rcsysinit.d ディレクトリにて S
   で始まるスクリプトです。 そしてその後に
   /etc/rc.d/rc?.d ディレクトリにて、同じく S
   で始まるスクリプトも実行されます。 ここで ?
   は、初期化を行う際の数値を示します。

   扱いやすさを考慮して、rc スクリプトは
   /lib/lsb/init-functions
   ディレクトリにあるライブラリ群を読み込む形にしています。
   このライブラリは、さらにオプションで設定ファイル
   /etc/sysconfig/rc.site を読み込みます。
   本節以降に説明している、各種の設定ファイルにおけるパラメーターは、上の
   ファイルにて設定することもできます。
   上のファイルは、システム上のパラメーターを１つのファイルに集約して設定
   できるようになっています。

   デバッグがしやすいように、各ライブラリの関数スクリプトは、すべて
   /run/var/bootlog にログを出力するようになっています。
   /run ディレクトリは tmpfs
   であることから、/run/var/bootlog
   ファイルはブート前後にて恒常的なファイルではありません。
   ただしブート処理の最後には、恒常的なファイルである
   /var/log/boot.log に情報が出力されます。

7.7.2. ランレベルの変更

   ランレベルを変更するには init <runlevel>
   を実行します。 <runlevel> はランレベルを示す数字です。
   例えばコンピューターを再起動するには init 6
   コマンドを実行します。 これは reboot
   コマンドのエイリアスとなっています。 同様に init 0 は
   halt のエイリアスです。

   /etc/rc.d
   ディレクトリの配下には複数のサブディレクトリがあります。
   そのディレクトリ名は rc?.d のようになっています。 (?
   はランレベルの数字を表します。) また rcsysinit.d
   というサブディレクトリもあります。
   それらサブディレクトリ内には数多くのシンボリックリンクがあります。
   シンボリックリンクの先頭一文字には K や S
   が用いられ、続いて二桁の数値文字がつけられています。 K
   はサービスの停止 (kill)、S はサービスの起動 (start)
   を意味します。 二桁の数字はスクリプトの起動順を定めるもので、00
   から 99 までが割振られ、小さな数字から順に実行されます。 init
   コマンドによってランレベルが変更される時は、そのランレベルに応じて必要
   なサービスが起動するか停止することになります。

   スクリプトファイルは /etc/rc.d/init.d
   ディレクトリにあります。
   実際の処理はここにあるファイルが用いられます。
   これらに対してはシンボリックリンクが用意されています。 サービスの起動
   (S で始まる) と停止 (K で始まる) を行うシンボリックリンクは
   /etc/rc.d/init.d
   ディレクトリにあるスクリプトを指し示しています。
   このようにしているのは、各スクリプトが start、 stop、
   restart、 reload、 status
   といったさまざまなパラメーターにより呼び出されるためです。 K
   の名前を持つシンボリックリンクが起動されるということは stop
   パラメーターをつけて該当するスクリプトが実行されるということです。
   同様に S の名前を持つシンボリックリンクが起動されるということは
   start パラメーターをつけて呼び出されるということになります。

   上の説明には例外があります。 rc0.d ディレクトリと rc6.d
   ディレクトリにある、S
   で始まるシンボリックリンクはサービスを何も起動させません。 stop
   パラメーターが与えられ、何らかのサービスを停止します。
   ユーザーがシステムを再起動したり停止したりする際には、サービスを起動さ
   せる必要はないわけで、システムを停止するだけで済むからです。

   スクリプトに対するパラメーターは以下のとおりです。

   start
          サービスを起動します。

   stop
          サービスを停止します。

   restart
          サービスをいったん停止し再起動します。

   reload
          サービスの設定ファイルを更新します。
          設定ファイルが変更されたものの、サービスの再起動は必要で
          はない場合に利用します。

   status
          サービスがどの PID 値で動いているかを表示します。

   ブート機能を動作させる方法は自由に取り決めて設定して構いません。
   このシステムはつまるところあなた自身のシステムだからです。
   上に示したファイル類はブート機能を定めた一例に過ぎません。

7.8. システムのホスト名の設定

   localnet
   スクリプトの行う作業の１つが、システムのホスト名を定めることです。
   この設定は /etc/sysconfig/network
   ファイルにて行います。

   以下のコマンドにより /etc/sysconfig/network
   ファイルを生成しホスト名を定めます。
echo "HOSTNAME=<lfs>" > /etc/sysconfig/netwo
rk

   <lfs> の部分はコンピューターに与える名称に置き換えてください。
   ここには完全修飾ドメイン名 (Fully Qualified
   Domain Name; FQDN) を記述しないでください。 それは
   /etc/hosts ファイルにて設定します。

7.9. Setclock スクリプトの設定

   setclock
   スクリプトはハードウェアクロックから時刻を読み取ります。
   ハードウェアクロックは BIOS クロック、あるいは CMOS
   (Complementary Metal Oxide
   Semiconductor) クロックとしても知られているものです。
   ハードウェアクロックが UTC に設定されていると setclock
   スクリプトは /etc/localtime
   ファイルを参照して、ハードウェアクロックの示す時刻をローカル時刻に変換
   します。 /etc/localtime ファイルは hwclock
   プログラムに対して、ユーザーがどのタイムゾーンに位置するかを伝えます。
   ハードウェアクロックが UTC
   に設定されているかどうかを知る方法はないので、手動で設定を行う必要があ
   ります。

   setclock スクリプトは udev
   によって起動されます。この時というのはブート時であり、カーネルがハード
   ウェアを検出する時です。
   停止パラメータを与えて手動でこのスクリプトを実行することもできます。
   その場合 CMOS クロックに対してシステム時刻が保存されます。

   ハードウェアクロックが UTC に設定されているかどうか忘れた場合は
   hwclock --localtime --show
   を実行すれば確認できます。
   このコマンドにより、ハードウェアクロックに基づいた現在時刻が表示されま
   す。
   その時刻が手元の時計と同じ時刻であれば、ローカル時刻として設定されてい
   るわけです。 一方それがローカル時刻でなかった場合は、おそらくは
   UTC に設定されているからでしょう。 hwclock
   によって示された時刻からタイムゾーンに応じた一定時間を加減してみてくだ
   さい。 例えばタイムゾーンが MST であった場合、これは GMT
   -0700 なので、7時間を加えればローカル時刻となります。

   ハードウェアクロックが UTC
   時刻として設定されていない場合は、以下に示す変数 UTC の値を 0
   (ゼロ) にしてください。

   以下のコマンドを実行して /etc/sysconfig/clock
   ファイルを新規に作成します。
cat > /etc/sysconfig/clock << "EOF"
# Begin /etc/sysconfig/clock

UTC=1

# Set this to any options you might need to
give to hwclock,
# such as machine hardware clock type for Al
phas.
CLOCKPARAMS=

# End /etc/sysconfig/clock
EOF

   LFS において時刻の取り扱い方を示した分かりやすいヒントが
   [706]http://www.linuxfromscratch.or
   g/hints/downloads/files/time.txt
   にあります。 そこではタイムゾーン、UTC、環境変数 TZ
   などについて説明しています。

注記

   CLOCKPARAMS と UTC パラメーターは
   /etc/sysconfig/rc.site
   ファイルにて設定することもできます。

7.10. Linux コンソールの設定

   この節ではブートスクリプト console
   の設定方法について説明します。
   このスクリプトはキーボードマップ、コンソールフォント、カーネルログレベ
   ルを設定します。 非アスキー文字
   (例えば著作権、ポンド記号、ユーロ記号など) を使わず、キーボードが
   US 配列であるなら、本節は読み飛ばしてください。 console
   ブートスクリプトの設定ファイルが存在しない場合
   (あるいはこれと同等の設定が rc.site にない場合)
   は、このスクリプトは何も行いません。

   console スクリプトは、設定情報を
   /etc/sysconfig/console
   ファイルから読み込みます。
   まずは利用するキーボードマップとスクリーンフォントを定めます。
   さまざまな言語に応じた設定方法については
   [707]http://www.tldp.org/HOWTO/HOWT
   O-INDEX/other-lang.html を参照してください。
   よく分からない場合は /lib/kbd
   ディレクトリを見て、正しいキーマップとスクリーンフォントを探してくださ
   い。 マニュアルページ loadkeys(1) と
   setfont(8)
   を見て、これらのプログラムに対する適切な引数を決定してください。

   /etc/sysconfig/console ファイルの各行には、変数
   = "値" という記述を行います。
   そして変数には以下に示すものが利用可能です。

   LOGLEVEL
          この変数は、コンソールに出力されるカーネルメッセージのロ
          グレベルを指定するもので dmesg
          コマンドにより設定されます。 有効な設定値は "1"
          (メッセージ出力なし) から "8"
          まであり、デフォルトは "7" です。

   KEYMAP
          この変数は loadkeys
          プログラムに対する引数を指定します。
          このプログラムは「es」などのキーマップをロードします。
          この変数がセットされていない場合、ブートスクリプトは
          loadkeys
          プログラムを実行せず、デフォルトのカーネルキーマップが用
          いられます。

   KEYMAP_CORRECTIONS
          この変数は (あまり利用されませんが) loadkeys
          プログラムを二度目に呼び出す際の引数を指定します。
          普通のキーマップでは十分な設定にならない時の微調整を行う
          ために利用します。
          例えばユーロ記号がキーマップの中に含まれておらずこれを付
          け加える場合には、この変数に対して「euro2」を設定し
          ます。

   FONT
          この変数は setfont
          プログラムへの引数を指定します。
          一般にこの変数にはフォント名、「-m」、アプリケーション
          キャラクターマップ (application
          character map) を順に指定します。
          例えばフォントとして
          「lat1-16」、アプリケーションキャラクターマップと
          して「8859-1」を指定する場合、この変数には「lat
          1-16 -m 8859-1」を設定します。
          (これは米国にて適当な設定となります。) UTF-8
          モードの場合、カーネルは UTF-8 キーマップ内の 8
          ビットキーコードを変換するためにアプリケーションキャラク
          ターマップを利用します。 したがって "-m"
          パラメーターには、キーマップ内キーコードのエンコーディン
          グを指定する必要があります。

   UNICODE
          コンソールを UTF-8
          モードにするには、この変数を「1」、「yes」、「tru
          e」のいずれかに指定します。 UTF-8
          ベースのロケールであればこの設定を行います。
          そうでないロケールにおいて設定するのは不適切です。

   LEGACY_CHARSET
          キーボードレイアウトの多くに対して、Kbd
          パッケージは標準的な Unicode
          キーマップを提供していません。 この変数にて UTF-8
          ではないキーマップのエンコーディングが指定されていたら
          console ブートスクリプトは利用可能な UTF-8
          キーマップに変換します。

   以下はいくつかの設定例です。
     * Unicode を用いない設定では、普通は KEYMAP
       変数と FONT 変数のみを定めます。
       例えばポーランド語の設定であれば以下のようになります。
cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

KEYMAP="pl2"
FONT="lat2a-16 -m 8859-2"

# End /etc/sysconfig/console
EOF

     * 上で述べたように、普通のキーマップの設定に対して多少の修正を必
       要とする場合もあります。
       以下の例はドイツ語のキーマップにユーロ記号を加える例です。
cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

KEYMAP="de-latin1"
KEYMAP_CORRECTIONS="euro2"
FONT="lat0-16 -m 8859-15"

# End /etc/sysconfig/console
EOF

     * 以下は Unicode を用いたブルガリア語の設定例です。
       通常のキーマップが存在しているものと仮定しています。
cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

UNICODE="1"
KEYMAP="bg_bds-utf8"
FONT="LatArCyrHeb-16"

# End /etc/sysconfig/console
EOF

     * 上の例においては 512 個のグリフを持つ
       LatArCyrHeb-16 フォントを利用しています。
       この場合、フレームバッファーを利用していなければ Linux
       コンソール上に鮮やかな色づけを行うことは出来なくなります。
       フレームバッファーがない状態で文字フォントを変更することなく色
       づけを適切に行いたい場合は、以下に示すように 256
       個のグリフを持った、この言語に固有のフォントを用いる方法もあり
       ます。
cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

UNICODE="1"
KEYMAP="bg_bds-utf8"
FONT="cyr-sun16"

# End /etc/sysconfig/console
EOF

     * 以下の例では ISO-8859-15 から UTF-8
       へのキーマップ変換の自動化 (keymap
       autoconversion) を指定し、Unicode
       におけるデッドキー (dead keys)
       を有効にするものです。
cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

UNICODE="1"
KEYMAP="de-latin1"
KEYMAP_CORRECTIONS="euro2"
LEGACY_CHARSET="iso-8859-15"
FONT="LatArCyrHeb-16 -m 8859-15"

# End /etc/sysconfig/console
EOF

     * キーマップにデッドキー (dead keys)
       を持つものがあります。
       そのキー自身は文字を意味するものではなく、次のキー入力による文
       字に対するアクセント記号をつける目的のものなどです。
       または複合的な入力規則を定義するもの、例えば「Ctrl+.、A
       、E を入力することで Æ を得るもの」があります。
       Linux-3.5.2
       ではキーマップに応じてデッドキーや複合的な入力規則を解釈します
       。
       ただしこれが正しく動作するのは、元の文字がマルチバイトではない
       場合に限ります。
       このような欠点は西欧のキーマップでは問題にはなりません。
       アクセント記号なら、アクセント記号がついていない ASCII
       文字を使ったり、ASCII
       文字を二つ使って工夫したりするからです。 しかし UTF-8
       モードでは問題になります。
       例えばギリシャ語にて「alpha」の文字の上にアクセント記号を
       付けたい場合が問題です。 これを解決するには、一つには
       UTF-8 の利用を諦めることであり、もう一つは X
       ウィンドウシステムを使うことで、そのような入力処理の制約を解消
       することです。
     * 中国語、日本語、韓国語などを利用する場合 Linux
       コンソールにはそれらの文字を表示できません。
       この言語を利用するユーザーは X
       ウィンドウシステムを使ってください。
       そこで用いるフォントは、必要となるコード範囲の文字を有しており
       、入力メソッドも用意されています。(例えば SCIM
       は数多くの言語入力をサポートしています。)

注記

   /etc/sysconfig/console ファイルは Linux
   のテキストコンソール上の言語設定を行うだけです。 X
   ウィンドウシステム、SSH
   セッション、シリアルコンソールでのキーボードレイアウトや端末フォントの
   設定とは無関係です。
   それらに対しては、上に列記した最後の二項目における制約は適用されません
   。

日本語訳情報

   日本の方であれば「日本語106キーボード」をほぼ間違いなくお使いかと思
   いますので KEYMAP
   変数には「jp106」を設定することになるでしょう。 FONT
   変数について訳者は十分な知識がありません。
   ここに何を設定すべきか分からない (調べていない)
   ため、何も設定しないでいる状態です。 訳者は LFS システム構築後は
   SSH
   接続によりシステムアクセスしており、その場合ここでのフォントの設定がど
   うであろうと (おそらく) 無関係であるため、あまり気にせずにいます。
   何か情報を頂けるようであればご教示よろしくお願いいたします。

   訳者が行っている設定は以下のとおりです。
cat > /etc/sysconfig/console << "EOF"
# Begin /etc/sysconfig/console

KEYMAP="jp106"

# End /etc/sysconfig/console
EOF

7.11. Sysklogd スクリプトの設定

   sysklogd スクリプトは syslogd
   プログラムをパラメーター -m 0 で実行します。 このオプションは
   syslogd がデフォルトで
   20分おきにログファイルに対して周期的にタイムスタンプを書き込む機能を
   無効にします。 この機能を有効にしたい場合は
   /etc/sysconfig/rc.site
   ファイルを新たに作るか既存のものを編集して、SYSKLOGD_PARM
   S 変数を必要な値に設定してください。
   例えばすべてのパラメーターを無効にする場合は、変数値をヌル値とします。
SYSKLOGD_PARMS=

   詳しくは man syslogd を入力して man
   ページを参照してください。

7.12. rc.site ファイル

   オプションファイル /etc/sysconfig/rc.site
   は、各ブートスクリプトにて自動的に設定される内容を含んでいます。
   /etc/sysconfig/ ディレクトリにおける
   hostname, console, clock
   の各ファイルにて値の設定を行うこともできます。
   関係する変数が、これらのファイルと rc.site
   の双方に存在する場合、スクリプトにて指定されたファイル内の値が優先され
   ます。

   rc.site
   では、起動時におけるその他の機能をカスタマイズするためのパラメーターも
   含まれています。 変数 IPROMPT
   を設定すると、起動するブートスクリプトを選択することができます。
   この他のオプションについては、このファイル内にてコメントとして記述され
   ています。 このファイルのデフォルト版は以下のとおりです。
# rc.site
# Optional parameters for boot scripts.

# Distro Information
# These values, if specified here, override
the defaults
#DISTRO="Linux From Scratch" # The distro na
me
#DISTRO_CONTACT="lfs-dev@linuxfromscratch.or
g" # Bug report address
#DISTRO_MINI="LFS" # Short name used in file
names for distro config

# Define custom colors used in messages prin
ted to the screen

# Please consult `man console_codes` for mor
e information
# under the "ECMA-48 Set Graphics Rendition"
 section
#
# Warning: when switching from a 8bit to a 9
bit font,
# the linux console will reinterpret the bol
d (1;) to
# the top 256 glyphs of the 9bit font.  This
 does
# not affect framebuffer consoles

# These values, if specified here, override
the defaults
#BRACKET="\\033[1;34m" # Blue
#FAILURE="\\033[1;31m" # Red
#INFO="\\033[1;36m"    # Cyan
#NORMAL="\\033[0;39m"  # Grey
#SUCCESS="\\033[1;32m" # Green
#WARNING="\\033[1;33m" # Yellow

# Use a colored prefix
# These values, if specified here, override
the defaults
#BMPREFIX="     "
#SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL}"
#FAILURE_PREFIX="${FAILURE}*****${NORMAL}"
#WARNING_PREFIX="${WARNING} *** ${NORMAL}"

# Interactive startup
#IPROMPT="yes" # Whether to display the inte
ractive boot prompt
#itime="3"    # The amount of time (in secon
ds) to display the prompt

# The total length of the distro welcome str
ing, without escape codes
#wlen=$(echo "Welcome to ${DISTRO}" | wc -c
)
#welcome_message="Welcome to ${INFO}${DISTRO
}${NORMAL}"

# The total length of the interactive string
, without escape codes
#ilen=$(echo "Press 'I' to enter interactive
 startup" | wc -c )
#i_message="Press '${FAILURE}I${NORMAL}' to
enter interactive startup"

# Set scripts to skip the file system check
on reboot
#FASTBOOT=yes

# Skip reading from the console
#HEADLESS=yes

# Skip cleaning /tmp
#SKIPTMPCLEAN=yes

# For setclock
#UTC=1
#CLOCKPARAMS=

# For consolelog
#LOGLEVEL=5

# For network
#HOSTNAME=mylfs

# Delay between TERM and KILL signals at shu
tdown
#KILLDELAY=3

# Optional sysklogd parameters
#SYSKLOGD_PARMS="-m 0"

# Console parameters
#UNICODE=1
#KEYMAP="de-latin1"
#KEYMAP_CORRECTIONS="euro2"
#FONT="lat0-16 -m 8859-15"
#LEGACY_CHARSET=


7.13. Bash シェルの初期起動ファイル

   シェルプログラムである /bin/bash
   (これ以降は単に「シェル」と表現します)
   は、初期起動ファイルをいくつも利用して環境設定を行います。
   個々のファイルにはそれぞれに目的があり、ログインや対話環境をさまざまに
   制御します。 /etc
   ディレクトリにあるファイルは一般にグローバルな設定を行います。
   これに対応づいたファイルがユーザーのホームディレクトリにある場合は、グ
   ローバルな設定を上書きします。

   対話型ログインシェルは /bin/login プログラムを利用して
   /etc/passwd
   ファイルを読み込み、ログインが成功することで起動します。
   同じ対話型でも非ログインシェルの場合は
   [prompt]$/bin/bash
   のようなコマンドラインからの入力を経て起動します。
   非対話型のシェルはシェルスクリプト動作中に実行されます。
   非対話型であるのは、スクリプトの実行の最中にユーザーからの入力を待つこ
   とがないためです。

   より詳しい情報は info bash の Bash Startup
   Files and Interactive Shells
   の節を参照してください。

   /etc/profile ファイルと ~/.bash_profile
   ファイルは、対話型のログインシェルとして起動した時に読み込まれます。

   本節の終わりに示す /etc/profile
   ファイルは言語を設定するために必要となる環境変数を定義します。
   これを設定することによって以下の内容が定められます。
     * プログラムの出力結果を指定した言語で得ることができます。
     * キャラクターを英字、数字、その他のクラスに分類します。
       この設定は、英語以外のロケールにおいて、コマンドラインに非アス
       キー文字が入力された場合に bash
       が正しく入力を受け付けるために必要となります。
     * 各国ごとに正しくアルファベット順が並ぶようにします。
     * 適切なデフォルト用紙サイズを設定します。
     * 通貨、日付、時刻を正しい書式で出力するように設定します。

   以下において <ll> と示しているものは、言語を表す２文字の英字
   (例えば 「en」) に、また <CC> は、国を表す２文字の英字
   (例えば 「GB」) にそれぞれ置き換えてください。
   <charmap> は、選択したロケールに対応したキャラクターマップ
   (charmap) に置き換えてください。
   オプションの修飾子として「@euro」といった記述もあります。

   以下のコマンドを実行すれば Glibc
   が取り扱うロケールを一覧で見ることができます。
locale -a

   キャラクターマップにはエイリアスがいくつもあります。
   例えば「ISO-8859-1」は「iso8859-1」や「iso885
   91」として記述することもできます。
   ただしアプリケーションによってはエイリアスを正しく取り扱うことができな
   いものがあります。 (「UTF-8」
   の場合、「UTF-8」と書かなければならず、これを「utf8」としては
   ならない場合があります。)
   そこでロケールに対する正規の名称を選ぶのが最も無難です。
   正規の名称は以下のコマンドを実行すれば分かります。 ここで
   <locale name> は locale -a
   コマンドの出力から得られたロケールを指定します。
   (本書の例では「en_GB.iso88591」としています。)
LC_ALL=<locale name> locale charmap

   「en_GB.iso88591」ロケールの場合、上のコマンドの出力は以
   下となります。
ISO-8859-1

   出力された結果が「en_GB.ISO-8859-1」に対するロケール設
   定として用いるべきものです。
   こうして探し出したロケールは動作確認しておくことが重要です。 Bash
   の起動ファイルに記述するのはその後です。
LC_ALL=<locale name> locale language
LC_ALL=<locale name> locale charmap
LC_ALL=<locale name> locale int_curr_symbol
LC_ALL=<locale name> locale int_prefix

   上のコマンドを実行すると、言語名やロケールに応じたキャラクターエンコー
   ディングが出力されます。
   また通貨や各国ごとの国際電話番号プレフィックスも出力されます。
   コマンドを実行した際に以下のようなメッセージが表示されたら、第6章にて
   ロケールをインストールしていないか、あるいはそのロケールが Glibc
   のデフォルトのインストールではサポートされていないかのいずれかです。
locale: Cannot set LC_* to default locale: N
o such file or directory

   このエラーが発生したら localedef
   コマンドを使って、目的とするロケールをインストールするか、別のロケール
   を選ぶ必要があります。 これ以降の説明では Glibc
   がこのようなエラーを生成していないことを前提に話を進めます。

   LFS
   には含まれない他のパッケージにて、指定したロケールをサポートしていない
   ものがあります。 例えば X ライブラリ (X
   ウィンドウシステムの一部)
   では、内部ファイルに指定されたキャラクターマップ名に合致しないロケール
   を利用した場合に、以下のようなメッセージを出力します。
Warning: locale not supported by Xlib, local
e set to C

   Xlib
   ではキャラクターマップはたいてい、英大文字とダッシュ記号を用いて表現さ
   れます。 例えば "iso88591" ではなく
   "ISO-8859-1" となります。
   ロケール設定におけるキャラクターマップ部分を取り除いてみれば、適切なロ
   ケール設定を見出すことができます。 これはまた locale
   charmap
   コマンドを使って、設定を変えてみてロケールを指定してみれば確認できます
   。 例えば "de_DE.ISO-8859-15@euro"
   という設定を "de_DE@euro" に変えてみて Xlib
   がそのロケールを認識するかどうか確認してみてください。

   これ以外のパッケージでも、パッケージが求めるものとは異なるロケール設定
   がなされた場合に、適切に処理されないケースがあります。
   (そして必ずしもエラーメッセージが表示されない場合もあります。)
   そういったケースでは、利用している Linux
   ディストリビューションがどのようにロケール設定をサポートしているかを調
   べてみると、有用な情報が得られるかもしれません。

   適切なロケール設定が決まったら /etc/profile
   ファイルを生成します。
cat > /etc/profile << "EOF"
# Begin /etc/profile

export LANG=<ll>_<CC>.<charmap><@modifiers>

# End /etc/profile
EOF

   ロケール設定の「C」(デフォルト)
   と「en_US」(米国の英語利用ユーザーに推奨) は異なります。
   「C」は US-ASCII 7 ビットキャラクターセットを用います。
   もし最上位ビットがセットされたキャラクターがあれば不適当なものとして取
   り扱います。 例えば ls
   コマンドにおいてクエスチョン記号が表示されることがあるのはこのためです
   。 また Mutt や Pine
   などにより電子メールが送信される際に、そういった文字は RFC
   には適合しないメールとして送信されます。 送信された文字は「不明な
   8ビット (unknown 8-bit)」として示されます。 そこで
   8ビット文字を必要としない場合には「C」ロケールを指定してください。

   UTF-8
   ベースのロケールは多くのプログラムにおいてサポートされていません。
   この問題については
   [708]http://www.linuxfromscratch.or
   g/blfs/view/svn/introduction/locale
   -issues.html
   にて説明しており、可能なものは解決を図っていこうとしているところです。

7.14. /etc/inputrc ファイルの生成

   inputrc
   ファイルはキーボードに応じたキーボードマップを定めます。
   このファイルは入力に関連するライブラリ Readline
   が利用するもので、このライブラリは Bash
   などのシェルから呼び出されます。

   ユーザー固有のキーボードマップを必要となるのはまれなので、以下の
   /etc/inputrc
   ファイルによって、ログインユーザーすべてに共通するグローバルな定義を生
   成します。
   各ユーザーごとにこのデフォルト定義を上書きする必要が出てきた場合は、ユ
   ーザーのホームディレクトリに .inputrc
   ファイルを生成して、修正マップを定義することもできます。

   inputrc ファイルの設定方法については info bash
   により表示される Readline Init File
   の節に詳しい説明があります。 info readline
   にも有用な情報があります。

   以下はグローバルな inputrc ファイルの一般的な定義例です。
   コメントをつけて各オプションを説明しています。
   コメントはコマンドと同一行に記述することはできません。
   以下のコマンドを実行してこのファイルを生成します。
cat > /etc/inputrc << "EOF"
# Begin /etc/inputrc
# Modified by Chris Lynn <roryo@roryo.dynup.
net>

# Allow the command prompt to wrap to the ne
xt line
set horizontal-scroll-mode Off

# Enable 8bit input
set meta-flag On
set input-meta On

# Turns off 8th bit stripping
set convert-meta Off

# Keep the 8th bit for display
set output-meta On

# none, visible or audible
set bell-style none

# All of the following map the escape sequen
ce of the value
# contained in the 1st argument to the readl
ine specific functions
"\eOd": backward-word
"\eOc": forward-word

# for linux console
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": beginning-of-history
"\e[6~": end-of-history
"\e[3~": delete-char
"\e[2~": quoted-insert

# for xterm
"\eOH": beginning-of-line
"\eOF": end-of-line

# for Konsole
"\e[H": beginning-of-line
"\e[F": end-of-line

# End /etc/inputrc
EOF

第8章 LFS システムのブート設定

8.1. はじめに

   ここからは LFS システムをブート可能にしていきます。 この章では
   fstab ファイルを作成し、LFS システムのカーネルを構築します。
   また GRUB のブートローダーをインストールして LFS
   システムの起動時にブートローダーを選択できるようにします。

8.2. /etc/fstab ファイルの生成

   /etc/fstab
   ファイルは、種々のプログラムがファイルシステムのマウント状況を確認する
   ために利用するファイルです。
   ファイルシステムがデフォルトでどこにマウントされ、それがどういう順序で
   あるか、マウント前に (整合性エラーなどの)
   チェックを行うかどうか、という設定が行われます。
   新しいファイルシステムに対する設定は以下のようにして生成します。
cat > /etc/fstab << "EOF"
# Begin /etc/fstab

# file system  mount-point  type     options
             dump  fsck
#
                   order

/dev/<xxx>     /            <fff>    default
s            1     1
/dev/<yyy>     swap         swap     pri=1
             0     0
proc           /proc        proc     nosuid,
noexec,nodev 0     0
sysfs          /sys         sysfs    nosuid,
noexec,nodev 0     0
devpts         /dev/pts     devpts   gid=5,m
ode=620      0     0
tmpfs          /run         tmpfs    default
s            0     0
devtmpfs       /dev         devtmpfs mode=07
55,nosuid    0     0

# End /etc/fstab
EOF

   <xxx>、 <yyy>、 <fff>
   の部分はシステムに合わせて正しい記述に書き換えてください。 例えば
   hda2、hda5、ext3 といったものです。
   上のファイルの6行分の記述内容の詳細は man 5 fstab
   により確認してください。

   MS-DOS や Windows において利用されるファイルシステム
   (例えば
   vfat、ntfs、smbfs、cifs、iso9660、udf)
   では、ファイル名称内に用いられた非アスキー文字を正しく認識させるために
   、マウントオプションとして「iocharset」を指定することが必要と
   なります。
   オプションに設定する値は利用するロケールとすることが必要で、カーネルが
   理解できる形でなければなりません。
   またこれを動作させるために、対応するキャラクタセット定義 (File
   systems ->Native Language Support
   にあります)
   をカーネルに組み入れるか、モジュールとしてビルドすることが必要です。
   vfat や smbfs
   ファイルシステムを用いるなら、さらに「codepage」オプションも必
   要です。 このオプションには、国情報に基づいて MS-DOS
   にて用いられるコードページ番号をセットします。 例えば USB
   フラッシュドライブをマウントし ru_RU.KOI8-R
   をセットするユーザーであれば /etc/fstab
   ファイルの設定は以下のようになります。
noauto,user,quiet,showexec,iocharset=koi8r,c
odepage=866

   ru_RU.UTF-8 をセットするなら以下のように変わります。
noauto,user,quiet,showexec,iocharset=utf8,co
depage=866

注記

   後者の設定では、カーネルが以下のようなメッセージを出力します。
FAT: utf8 is not a recommended IO charset fo
r FAT filesystems,
    filesystem will be case sensitive!

   否定的な設定を勧めるメッセージですが、これは無視して構いません。
   「iocharset」オプションに他の設定を行ったとしても UTF-8
   ロケールでは結局はファイル名の表示を正しく処理できないためです。

   ファイルシステムによっては codepage と iocharset
   のデフォルト値をカーネルにおいて設定することもできます。
   カーネルにおいて対応する設定は「Default NLS
   Option」(CONFIG_NLS_DEFAULT)、「Defaul
   t Remote NLS
   Option」(CONFIG_SMB_NLS_DEFAULT)、「De
   fault codepage for
   FAT」(CONFIG_FAT_DEFAULT_CODEPAGE)、「
   Default iocharset for
   FAT」(CONFIG_FAT_DEFAULT_IOCHARSET)
   です。 なお ntfs
   ファイルシステムに対しては、カーネルのコンパイル時に設定する項目はあり
   ません。

   特定のハードディスクにおいて ext3
   ファイルシステムでの電源供給不足時の信頼性を向上させることができます。
   これは /etc/fstab での定義においてマウントオプション
   barrier=1 を指定します。
   ハードディスクがこのオプションをサポートしているかどうかは
   [709]hdparm を実行することで確認できます。
   例えば以下のコマンドを実行します。
hdparm -I /dev/sda | grep NCQ

   何かが出力されたら、このオプションがサポートされていることを意味します
   。

   論理ボリュームマネージャー (Logical Volume
   Management; LVM) に基づいたパーティションでは
   barrier オプションは利用できません。

8.3. Linux-3.5.2

   Linux パッケージは Linux カーネルを提供します。
   概算ビルド時間: 1.0 - 5.0 SBU
   必要ディスク容量: 540 - 800 MB

8.3.1. カーネル のインストール

   カーネルの構築は、カーネルの設定、コンパイル、インストールの順に行って
   いきます。
   本書が行っているカーネル設定の方法以外については、カーネルソースツリー
   内にある README ファイルを参照してください。

   コンパイルするための準備として以下のコマンドを実行します。
make mrproper

   これによりカーネルソースが完全にクリーンなものになります。
   カーネル開発チームは、カーネルコンパイルするなら、そのたびにこれを実行
   することを推奨しています。 tar
   コマンドにより伸張しただけのソースではクリーンなものにはなりません。

   メニュー形式のインターフェースによりカーネルを設定します。
   カーネルの設定方法に関する一般的な情報が
   [710]http://www.linuxfromscratch.or
   g/hints/downloads/files/kernel-conf
   iguration.txt にあるので参照してください。 BLFS
   では LFS
   が取り扱わない各種パッケージに対して、必要となるカーネル設定項目を説明
   しています。
   [711]http://www.linuxfromscratch.or
   g/blfs/view/svn/longindex.html#kern
   el-config-index を参照してください。

注記

   udev
   の最近の更新に合わせて、以下のカーネル設定項目が選択されていることを確
   認してください。
Device Drivers  --->
  Generic Driver Options  --->
     Maintain a devtmpfs filesystem to mount
 at /dev

make LANG=<host_LANG_value> LC_ALL= menuconf
ig

   make パラメーターの意味:

   LANG=<host_LANG_value> LC_ALL=
          これはホストのロケール設定を指示するものです。
          この設定は UTF-8
          での表示設定がされたテキストコンソールにて
          menuconfig の ncurses
          による行表示を適切に行うために必要となります。

          <host_LANG_value> の部分は、ホストの
          $LANG 変数の値に置き換えてください。
          ホストにてその値が設定されていない場合は $LC_ALL
          あるいは $LC_CTYPE の値を設定してください。

   上のコマンドではなく、状況によっては make oldconfig
   を実行することが適当な場合もあります。
   詳細についてはカーネルソース内の README
   ファイルを参照してください。

   カーネル設定は行わずに、ホストシステムにあるカーネル設定ファイル
   .config をコピーして利用することもできます。
   そのファイルが存在すればの話です。 その場合は linux-3.5.2
   ディレクトリにそのファイルをコピーしてください。
   もっともこのやり方はお勧めしません。
   設定項目をメニューから探し出して、カーネル設定を一から行っていくことが
   望ましいことです。

   カーネルイメージとモジュールをコンパイルします。
make

   カーネルモジュールを利用する場合 /etc/modprobe.d
   ディレクトリ内での設定を必要とします。
   モジュールやカーネル設定に関する情報は [712]7.4.「LFS
   システムにおけるデバイスとモジュールの扱い」や
   linux-3.5.2/Documentation
   ディレクトリにあるカーネルドキュメントを参照してください。 また
   modprobe.conf(5) も有用です。

   カーネル設定においてモジュールを利用することにした場合、モジュールをイ
   ンストールします。
make modules_install

   カーネルのコンパイルが終わったら、インストールの完了に向けてあと少し作
   業を行います。 /boot
   ディレクトリにいくつかのファイルをコピーします。

   カーネルイメージへのパスは、利用しているプラットフォームによってさまざ
   まです。 そのファイル名は、好みにより自由に変更して構いません。
   ただし vmlinuz という語は必ず含めてください。
   これにより、次節で説明するブートプロセスを自動的に設定するために必要な
   ことです。 以下のコマンドは x86 アーキテクチャーの場合の例です。
cp -v arch/x86/boot/bzImage /boot/vmlinuz-3.
5.2-lfs-7.2

   System.map はカーネルに対するシンボルファイルです。
   このファイルはカーネル API
   の各関数のエントリポイントをマッピングしています。
   同様に実行中のカーネルのデータ構成のアドレスを保持します。
   このファイルは、カーネルに問題があった場合にその状況を調べる手段として
   利用できます。 マップファイルをインストールするには以下を実行します。
cp -v System.map /boot/System.map-3.5.2

   カーネル設定ファイル .config は、上で実行した make
   menuconfig によって生成されます。
   このファイル内には、今コンパイルしたカーネルの設定項目の情報がすべて保
   持されています。
   将来このファイルを参照する必要が出てくるかもしれないため、このファイル
   を保存しておきます。
cp -v .config /boot/config-3.5.2

   Linux カーネルのドキュメントをインストールします。
install -d /usr/share/doc/linux-3.5.2
cp -r Documentation/* /usr/share/doc/linux-3
.5.2

   カーネルのソースディレクトリは所有者が root
   ユーザーになっていません。 我々は chroot 環境内の root
   ユーザーとなってパッケージを展開してきましたが、展開されたファイル類は
   パッケージ開発者が用いていたユーザー ID、グループ ID
   が適用されています。 このことは普通はあまり問題になりません。
   というのもパッケージをインストールした後のソースファイルは、たいていは
   削除するからです。 一方 Linux
   のソースファイルは、削除せずに保持しておくことがよく行われます。
   このことがあるため開発者の用いたユーザーIDが、インストールしたマシン
   内の誰かの ID に割り当たった状態となりえます。
   その人はカーネルソースを自由に書き換えてしまう権限を持つことになるわけ
   です。

   カーネルのソースファイルを保持しておくつもりなら
   linux-3.5.2 ディレクトリにおいて chown -R 0:0
   を実行しておいてください。 これによりそのディレクトリの所有者は
   root ユーザーとなります。

警告

   カーネルを説明する書の中には、カーネルのソースディレクトリに対してシン
   ボリックリンク /usr/src/linux
   の生成を勧めているものがあります。 これはカーネル 2.6
   系以前におけるものであり LFS システム上では生成してはなりません
   。 ベースとなる LFS
   システムを構築し、そこに新たなパッケージを追加していこうとした際に、そ
   のことが問題となるからです。

警告

   さらに include ディレクトリにあるヘッダーファイルは、必ず
   Glibc のコンパイルによって得られるものでなければならず、つまりは
   Linux カーネルの tarball
   によって提供されるものでなければなりません。
   したがってカーネルヘッダーによって上書きされてしまうのは避けなければな
   りません。

8.3.2. Linux モジュールのロード順の設定

   USB ドライバーをモジュールとして構築した場合は
   /etc/modprobe.d/usb.conf
   ファイルを生成する必要があります。 USB ドライバーには
   ehci_hcd、ohci_hcd、uhci_hcd があります。
   これらのロード順は正しく行う必要があります。 ehci_hcd は
   ohci_hcd や uhci_hcd
   よりも先にロードしなければなりません。
   これを行わないとブート時に警告メッセージが出力されます。

   以下のコマンドを実行して
   /etc/modprobe.d/usb.conf
   ファイルを生成します。
install -v -m755 -d /etc/modprobe.d
cat > /etc/modprobe.d/usb.conf << "EOF"
# Begin /etc/modprobe.d/usb.conf

install ohci_hcd /sbin/modprobe ehci_hcd ; /
sbin/modprobe -i ohci_hcd ; true
install uhci_hcd /sbin/modprobe ehci_hcd ; /
sbin/modprobe -i uhci_hcd ; true

# End /etc/modprobe.d/usb.conf
EOF

8.3.3. Linux の構成

   インストールファイル: config-3.5.2,
   vmlinux-3.5.2-lfs-7.2-3.5.2,
   System.map-3.5.2
   インストールディレクトリ: /lib/modules,
   /usr/share/doc/linux-3.5.2

概略説明

   config-3.5.2

   カーネルの設定をすべて含みます。

   vmlinux-3.5.2-lfs-7.2

   Linux システムのエンジンです。
   コンピューターを起動した際には、オペレーティングシステム内にて最初にロ
   ードされるものです。
   カーネルはコンピューターのハードウェアを構成するあらゆるコンポーネント
   を検知して初期化します。
   そしてそれらのコンポーネントをツリー階層のファイルとして、ソフトウェア
   が利用できるようにします。 ただひとつの CPU
   からマルチタスクを処理するマシンとして、あたかも多数のプログラムが同時
   稼動しているように仕向けます。

   System.map-3.5.2

   アドレスとシンボルのリストです。
   カーネル内のすべての関数とデータ構成のエントリポイントおよびアドレスを
   示します。

8.4. GRUB を用いたブートプロセスの設定

8.4.1. はじめに

警告

   GRUB の設定を誤ってしまうと、CD-ROM
   のような他のデバイスからもブートできなくなってしまいます。 読者の
   LFS
   システムをブート可能とするためには、本節の内容は必ずしも必要ではありま
   せん。 読者が利用している現在のブートローダー、例えば
   Grub-Legacy, GRUB2, LILO
   などの設定を修正することが必要かもしれません。

   コンピューターが利用不能に (ブート不能に)
   なってしまうこともあります。 そんな事態に備えてコンピューターを「復旧
   (resucue)」するブートディスクの生成を必ず行ってください。
   ブートデバイスを用意していない場合は作成してください。
   以降に示す手順を実施するために、必要に応じて BLFS ブックを参照し
   [713]libisoburn にある xorriso
   をインストールしてください。
cd /tmp &&
grub-mkrescue --output=grub-img.iso &&
xorriso -as cdrecord -v dev=/dev/cdrw blank=
as_needed grub-img.iso

8.4.2. GRUB の命名規則

   GRUB ではドライブやパーティションに対して (hdn,m)
   といった書式の命名法を採用しています。 n はハードドライブ番号、m
   はパーティション番号を表します。
   ハードドライブ番号はゼロから数え始めます。
   一方パーティション番号は、基本パーティションであれば１から、拡張パーテ
   ィションであれば５から数え始めます。
   かつてのバージョンでは共にゼロから数え始めていましたが、今はそうではな
   いので注意してください。 例えば sda1 は GRUB では
   (hd0,1) と表記され、sdb3 は (hd1,3)
   と表記されます。 Linux システムでの取り扱いとは違って GRUB
   では CD-ROM ドライブをハードドライブとしては扱いません。
   例えば CD が hdb であり、２番めのハードドライブが hdc
   であった場合、２番めのハードドライブは (hd1) と表記されます。

   ディスクデバイスを GRUB
   がどのような名称で取り扱うかを確認する場合は以下を実行してください。
grub-mkdevicemap --device-map=device.map
cat device.map

8.4.3. 設定作業

   GRUB
   は、ハードディスク上の最初の物理トラックにデータを書き出します。
   この領域は、どのファイルシステムにも属していません。
   ここに配置されているプログラムは、ブートパーティションにある GRUB
   モジュールにアクセスします。 モジュールのデフォルト位置は
   /boot/grub/ です。

   ブートパーティションをどこにするかは各人に委ねられていて、それによって
   設定方法が変わります。
   推奨される1つの手順としては、ブートパーティションとして独立した小さな
   (100MB 程度のサイズの) パーティションを設けることです。
   こうしておくと、この後に LFS
   であろうが商用ディストリビューションであろうが、システム導入する際に同
   一のブートファイルを利用することが可能です。
   つまりどのようなブートシステムからでもアクセスが可能となります。
   この方法をとるなら、新たなパーティションをマウントした上で、現在
   /boot ディレクトリにある全ファイルを (例えば前節にてビルドした
   Linux カーネルも)
   新しいパーティションに移動させる必要があります。
   そしていったんパーティションをアンマウントし、再度 /boot
   としてマウントしなおすことになります。
   これを行った後は/etc/fstab を適切に書き換えてください。

   現時点での LFS パーティションでも問題なく動作します。
   ただし複数システムを取り扱うための設定は、より複雑になります。

   ここまでの情報に基づいて、ルートパーティションの名称を
   (あるいはブートパーティションを別パーティションとするならそれも含めて
   ) 決定します。 以下では例として、ルートパーティション
   (あるいは別立てのブートパーティション) が sda2
   であるとします。

   以下を実行して GRUB ファイル類を /boot/grub
   にインストールし、ブートトラックを構築します。

警告

   以下に示すコマンドを実行すると、現在のブートローダーを上書きします。
   上書きするのが不適当であるならコマンドを実行しないでください。
   例えばマスターブートレコード (Master Boot Record;
   MBR)
   を管理するサードパーティ製のブートマネージャーソフトウェアを利用してい
   る場合などがこれに該当します。
grub-install /dev/sda

8.4.4. 設定ファイルの生成

   /boot/grub/grub.cfg ファイルを生成します。
cat > /boot/grub/grub.cfg << "EOF"
# Begin /boot/grub/grub.cfg
set default=0
set timeout=5

insmod ext2
set root=(hd0,2)

menuentry "GNU/Linux, Linux 3.5.2-lfs-7.2" {
        linux   /boot/vmlinuz-3.5.2-lfs-7.2
root=/dev/sda2 ro
}
EOF

注記

   GRUB
   にとってカーネルファイル群は、配置されるパーティションからの相対位置と
   なります。 したがって /boot
   パーティションを別に作成している場合は、上記の linux の行から
   /boot の記述を取り除いてください。 また set root
   行でのブートパーティションの指定も、正しく設定する必要があります。

   GRUB
   は大変強力なプログラムであり、ブート処理に際しての非常に多くのオプショ
   ンを提供しています。
   これにより、各種デバイス、オペレーティングシステム、パーティションタイ
   プに幅広く対応しています。
   さらにカスタマイズのためのオプションも多く提供されていて、グラフィカル
   なスプラッシュ画面、サウンド、マウス入力などについてカスタマイズが可能
   です。
   オプションの細かな説明は、ここでの手順説明の範囲を超えるため割愛します
   。

注意

   grub-mkconfig
   というコマンドは、設定ファイルを自動的に生成するものです。
   このコマンドは /etc/grub.d/
   にある一連のスクリプトを利用しており、それまでに設定していた内容は失わ
   れることになります。 その一連のスクリプトは、ソースコードを提供しない
   Linux
   ディストリビューションにて用いられるのが主であるため、LFS
   では推奨されません。 商用 Linux
   ディストリビューションをインストールする場合には、それらのスクリプトを
   実行する、ちょうど良い機会となるはずです。
   こういった状況ですから、grub.cfg
   のバックアップは忘れずに行うようにしてください。

第9章 作業終了

9.1. 作業終了

   できました！ LFS システムのインストール終了です。
   あなたの輝かしいカスタムメイドの Linux
   システムが完成したことでしょう。

   /etc/lfs-release
   というファイルをここで作成することにします。
   このファイルを作っておけば、どのバージョンの LFS
   をインストールしたのか、すぐに判別できます。
   (もしあなたが質問を投げた時には、我々もすぐに判別できることになります
   。) 以下のコマンドによりこのファイルを生成します。
echo 7.2 > /etc/lfs-release

   またもう一つのファイルを生成することにします。 これは Linux
   Standards Base (LSB)
   の観点で、あなたのシステムがどのような状況にあるかを示すものです。
   これを作成するために以下のコマンドを実行します。
cat > /etc/lsb-release << "EOF"
DISTRIB_ID="Linux From Scratch"
DISTRIB_RELEASE="7.2"
DISTRIB_CODENAME="<your name here>"
DISTRIB_DESCRIPTION="Linux From Scratch"
EOF

   'DISTRIB_CODENAME'
   に対する設定は、あなたのシステムを特定できるように適切に書き換えてくだ
   さい。

9.2. ユーザー登録

   これにより本書の作業は終了です。 LFS
   ユーザー登録を行ってカウンターを取得しますか？ 以下のページ
   [714]http://www.linuxfromscratch.or
   g/cgi-bin/lfscounter.php にて、初めて構築した
   LFS のバージョンと氏名を登録して下さい。

   それではシステムの再起動を行ないましょう。

9.3. システムの再起動

   ソフトウェアのインストールがすべて完了しました。
   ここでコンピューターを再起動しますが、いくつか注意しておいて下さい。
   本書を通じて構築したシステムは最小限のものです。
   これ以降にさまざまなことを繰り広げていくには、機能が不足しているはずで
   す。 もうしばらくは今までと同じように chroot 環境を利用して
   BLFS
   ブックからいくつかのパッケージをインストールしていきましょう。
   その後のリブートにより新しい LFS
   システムを起動すれば、より一層、満足できる環境を得ることになるはずです
   。 例えば Lynx
   のようなテキストウェブブラウザーをインストールすれば、仮想端末上で
   BLFS
   ブックを参照でき、同時にパッケージのビルドを行っていくことができます。
   GPM
   パッケージを導入すれば、仮想端末上にてコピー、ペースト作業を行うことが
   できます。 またネットワーク接続にあたって固定 IP
   アドレスが不適当である場合には Dhcpcd や PPP
   といったパッケージをインストールしておくのが良いでしょう。

   さあよろしいですか。 新しくインストールした LFS
   システムの再起動を行いましょう。 まずは chroot
   環境から抜けます。
logout

   仮想ファイルシステムをアンマウントします。
umount -v $LFS/dev/pts
umount -v $LFS/dev/shm
umount -v $LFS/dev
umount -v $LFS/proc
umount -v $LFS/sys

   LFS ファイルシステムもアンマウントします。
umount -v $LFS

   複数のパーティションを生成していた場合は、以下のようにして複数パーティ
   ションをアンマウントします。
   メインのパーティションのアンマウントはその後に行います。
umount -v $LFS/usr
umount -v $LFS/home
umount -v $LFS

   以下のようにしてシステムを再起動します。
shutdown -r now

   これまでの作業にて GRUB ブートローダーが設定されているはずです。
   そのメニューには LFS 7.2
   を起動するためのメニュー項目があるはずです。

   再起動が無事行われ LFS システムを使うことができます。
   必要に応じてさらなるソフトウェアをインストールしていってください。

9.4. 今度は何?

   本書をお読み頂き、ありがとうございます。
   本書が皆さんにとって有用なものとなり、システムの構築方法について十分に
   学んで頂けたものと思います。

   LFS
   システムをインストールしたら「次は何を？」とお考えになるかもしれません
   。 その質問に答えるために以下に各種の情報をまとめます。
     * 保守
       あらゆるソフトウェアにおいて、バグやセキュリティの情報は日々報
       告されています。 LFS
       システムはソースコードからコンパイルしていますので、そのような
       報告を見逃さずにおくことは皆さんの仕事となります。
       そのような報告をオンラインで提供する情報の場がありますので、い
       くつかを以下に示しましょう。
          + Freshmeat.net
            ([715]http://freshmeat.net
            /)
            Freshmeat
            は、システムにインストールされているパッケージの新し
            いバージョンが提供されると、それを (電子メールで)
            通知してくれます。
          + [716]CERT (Computer
            Emergency Response Team)
            CERT
            にはメーリングリストがあり、数々のオペレーティングシ
            ステムやアプリケーションにおけるセキュリティ警告を公
            開しています。 購読に関する情報は
            [717]http://www.us-cert.go
            v/cas/signup.html
            を参照してください。
          + バグトラック (Bugtraq)
            バグトラックは、完全公開のコンピューターセキュリティ
            に関するメーリングリストです。
            これは新たに発見されたセキュリティに関する問題を公開
            しています。
            また時には、その問題を解消するフィックス情報も提供し
            てくれます。 購読に関する情報は
            [718]http://www.securityfo
            cus.com/archive を参照してください。
     * Beyond Linux From Scratch
       Beyond Linux From Scratch
       ブックは、LFS
       ブックが取り扱うソフトウェアの範囲を超えて、数多くのソフトウェ
       アをインストールする手順を示しています。 BLFS
       プロジェクトは以下にあります。[719]http://www.
       linuxfromscratch.org/blfs/.
     * LFS ヒント (LFS Hints)
       LFS ヒントは有用なドキュメントを集めたものです。 LFS
       コミュニティのボランティアによって投稿されたものです。
       それらのヒントは
       [720]http://www.linuxfromscratc
       h.org/hints/list.html
       にて参照することができます。
     * メーリングリスト
       皆さんにも参加して頂ける LFS メーリングリストがあります。
       何かの助けが必要になったり、最新の開発を行いたかったり、あるい
       はプロジェクトに貢献したいといった場合に、参加して頂くことがで
       きます。 詳しくは [721]第1章 -
       メーリングリストを参照してください。
     * Linux ドキュメントプロジェクト (The Linux
       Documentation Project; TLDP)
       Linux ドキュメントプロジェクトの目指すことは Linux
       のドキュメントに関わる問題を共同で取り組むことです。 TLDP
       ではハウツー (HOWTO)、ガイド、man
       ページを数多く提供しています。 以下のサイトにあります。
       [722]http://www.tldp.org/

第IV部 付録

付録 A. 略語と用語

日本語訳情報

   本節における日本語訳は、訳語が一般的に普及していると思われるものは、そ
   の訳語とカッコ書き内に原語を示します。
   逆に訳語に適当なものがないと思われるものは、無理に訳出せず原語だけを示
   すことにします。
   この判断はあくまで訳者によるものであるため、不適切・不十分な個所につい
   てはご指摘ください。

   ABI

   アプリケーション バイナリ インターフェース (Application
   Binary Interface)

   ALFS

   Automated Linux From Scratch

   ALSA

   Advanced Linux Sound Architecture

   API

   アプリケーション プログラミング インターフェース
   (Application Programming Interface)

   ASCII

   American Standard Code for
   Information Interchange

   BIOS

   ベーシック インプット/アウトプット システム; バイオス
   (Basic Input/Output System)

   BLFS

   Beyond Linux From Scratch

   BSD

   Berkeley Software Distribution

   chroot

   ルートのチェンジ (change root)

   CMOS

   シーモス (Complementary Metal Oxide
   Semiconductor)

   COS

   Class Of Service

   CPU

   中央演算処理装置 (Central Processing Unit)

   CRC

   巡回冗長検査 (Cyclic Redundancy Check)

   CVS

   Concurrent Versions System

   DHCP

   ダイナミック ホスト コンフィギュレーション プロトコル
   (Dynamic Host Configuration
   Protocol)

   DNS

   ドメインネームサービス (Domain Name Service)

   EGA

   Enhanced Graphics Adapter

   ELF

   Executable and Linkable Format

   EOF

   ファイルの終端 (End of File)

   EQN

   式 (equation)

   EVMS

   Enterprise Volume Management System

   ext2

   second extended file system

   ext3

   third extended file system

   ext4

   fourth extended file system

   FAQ

   よく尋ねられる質問 (Frequently Asked
   Questions)

   FHS

   ファイルシステム階層標準 (Filesystem Hierarchy
   Standard)

   FIFO

   ファーストイン、ファーストアウト (First-In, First
   Out)

   FQDN

   完全修飾ドメイン名 (Fully Qualified Domain
   Name)

   FTP

   ファイル転送プロトコル (File Transfer
   Protocol)

   GB

   ギガバイト (gigabytes)

   GCC

   GNU コンパイラー コレクション (GNU Compiler
   Collection)

   GID

   グループ識別子 (Group Identifier)

   GMT

   グリニッジ標準時 (Greenwich Mean Time)

   GPG

   GNU Privacy Guard

   HTML

   ハイパーテキスト マークアップ 言語 (Hypertext
   Markup Language)

   IDE

   Integrated Drive Electronics

   IEEE

   Institute of Electrical and
   Electronic Engineers

   IO

   入出力 (Input/Output)

   IP

   インターネット プロトコル (Internet Protocol)

   IPC

   プロセス間通信 (Inter-Process
   Communication)

   IRC

   インターネット リレー チャット (Internet Relay
   Chat)

   ISO

   国際標準化機構 (International Organization
   for Standardization)

   ISP

   インターネット サービス プロバイダー (Internet
   Service Provider)

   KB

   キロバイト (kilobytes)

   LED

   発光ダイオード (Light Emitting Diode)

   LFS

   Linux From Scratch

   LSB

   Linux Standard Base

   MB

   メガバイト (megabytes)

   MBR

   マスター ブート レコード (Master Boot Record)

   MD5

   Message Digest 5

   NIC

   ネットワーク インターフェース カード (Network
   Interface Card)

   NLS

   Native Language Support

   NNTP

   Network News Transport Protocol

   NPTL

   Native POSIX Threading Library

   OSS

   Open Sound System

   PCH

   プリコンパイル済みヘッダー (Pre-Compiled
   Headers)

   PCRE

   Perl Compatible Regular Expression

   PID

   プロセス識別子 (Process Identifier)

   PLFS

   Pure Linux From Scratch

   PTY

   仮想端末 (pseudo terminal)

   QA

   品質保証 (Quality Assurance)

   QOS

   クオリティ オブ サービス (Quality Of Service)

   RAM

   ランダム アクセス メモリ (Random Access
   Memory)

   RPC

   リモート プロシージャ コール (Remote Procedure
   Call)

   RTC

   リアルタイムクロック (Real Time Clock)

   SBU

   標準ビルド時間 (Standard Build Unit)

   SCO

   サンタ クルズ オペレーション社 (The Santa Cruz
   Operation)

   SGR

   Select Graphic Rendition

   SHA1

   Secure-Hash Algorithm 1

   SMP

   対称型マルチプロセッサー (Symmetric
   Multi-Processor)

   TLDP

   The Linux Documentation Project

   TFTP

   Trivial File Transfer Protocol

   TLS

   スレッド ローカル ストレージ (Thread-Local
   Storage)

   UID

   ユーザー識別子 (User Identifier)

   umask

   user file-creation mask

   USB

   ユニバーサル シリアル バス (Universal Serial
   Bus)

   UTC

   協定世界時 (Coordinated Universal Time)

   UUID

   汎用一意識別子 (Universally Unique
   Identifier)

   VC

   仮想コンソール (Virtual Console)

   VGA

   ビデオ グラフィックス アレー (Video Graphics
   Array)

   VT

   仮想端末 (Virtual Terminal)

付録 B. 謝辞

   Linux From Scratch
   プロジェクトへ貢献して下さった以下の方々および組織団体に感謝致します。
     * [723]Gerard Beekmans <gerard AT
       linuxfromscratch D0T org> – LFS
       構築者、LFS プロジェクトリーダー
     * [724]Matthew Burgess <matthew
       AT linuxfromscratch D0T org> –
       LFS プロジェクトリーダー、LFS
       テクニカルライター/編集者
     * [725]Bruce Dubbs <bdubbs AT
       linuxfromscratch D0T org> – LFS
       リリース管理者、LFS テクニカルライター/編集者
     * [726]Jim Gifford <jim AT
       linuxfromscratch D0T org> –
       CLFS プロジェクト共同リーダー
     * [727]Bryan Kadzban <bryan AT
       linuxfromscratch D0T org> – LFS
       テクニカルライター
     * [728]Randy McMurchy <randy AT
       linuxfromscratch D0T org> –
       BLFS プロジェクトリーダー、LFS 編集者
     * [729]DJ Lucas <dj AT
       linuxfromscratch D0T org> –
       LFS、BLFS 編集者
     * [730]Ken Moffat <ken AT
       linuxfromscratch D0T org> –
       LFS、CLFS 編集者
     * [731]Ryan Oliver <ryan AT
       linuxfromscratch D0T org> –
       CLFS プロジェクト共同リーダー
     * この他に数多くの方々にも協力頂きました。 皆さまには LFS
       や BLFS
       などのメーリングリストにて、提案、ブック内容のテスト、バグ報告
       、作業指示、パッケージインストールの経験談などを通じて、本ブッ
       ク製作にご協力頂きました。

翻訳者

     * [732]Manuel Canales Esparcia
       <macana AT macana-es D0T com> –
       スペインの LFS 翻訳プロジェクト
     * [733]Johan Lenglet <johan AT
       linuxfromscratch D0T org> –
       フランスの LFS 翻訳プロジェクト
     * [734]Anderson Lizardo <lizardo
       AT linuxfromscratch D0T org> –
       ポルトガルの LFS 翻訳プロジェクト
     * [735]Thomas Reitelbach <tr AT
       erdfunkstelle D0T de> – ドイツの
       LFS 翻訳プロジェクト

ミラー管理者

北米のミラー

     * [736]Scott Kveton <scott AT
       osuosl D0T org> –
       lfs.oregonstate.edu ミラー
     * [737]William Astle <lost AT l-w
       D0T net> –
       ca.linuxfromscratch.org ミラー
     * [738]Eujon Sellers
       <jpolen@rackspace.com> –
       lfs.introspeed.com ミラー
     * [739]Justin Knierim
       <tim@idge.net> – lfs-matrix.net
       ミラー

南米のミラー

     * [740]Manuel Canales Esparcia
       <manuel AT linuxfromscratch D0T
       org> – lfsmirror.lfs-es.info
       ミラー
     * [741]Luis Falcon <Luis Falcon>
       – torredehanoi.org ミラー

ヨーロッパのミラー

     * [742]Guido Passet <guido AT
       primerelay D0T net> –
       nl.linuxfromscratch.org ミラー
     * [743]Bastiaan Jacques <baafie
       AT planet D0T nl> –
       lfs.pagefault.net ミラー
     * [744]Sven Cranshoff <sven D0T
       cranshoff AT lineo D0T be> –
       lfs.lineo.be ミラー
     * Scarlet Belgium –
       lfs.scarlet.be ミラー
     * [745]Sebastian Faulborn <info
       AT aliensoft D0T org> –
       lfs.aliensoft.org ミラー
     * [746]Stuart Fox <stuart AT
       dontuse D0T ms> –
       lfs.dontuse.ms ミラー
     * [747]Ralf Uhlemann <admin AT
       realhost D0T de> –
       lfs.oss-mirror.org ミラー
     * [748]Antonin Sprinzl <Antonin
       D0T Sprinzl AT tuwien D0T ac
       D0T at> –
       at.linuxfromscratch.org ミラー
     * [749]Fredrik Danerklint
       <fredan-lfs AT fredan D0T org>
       – se.linuxfromscratch.org ミラー
     * [750]Franck <franck AT
       linuxpourtous D0T com> –
       lfs.linuxpourtous.com ミラー
     * [751]Philippe Baqué <baque AT
       cict D0T fr> – lfs.cict.fr ミラー
     * [752]Vitaly Chekasin <gyouja AT
       pilgrims D0T ru> –
       lfs.pilgrims.ru ミラー
     * [753]Benjamin Heil <kontakt AT
       wankoo D0T org> –
       lfs.wankoo.org ミラー

アジアのミラー

     * [754]Satit Phermsawang <satit
       AT wbac D0T ac D0T th> –
       lfs.phayoune.org ミラー
     * [755]Shizunet Co.,Ltd. <info AT
       shizu-net D0T jp> –
       lfs.mirror.shizu-net.jp ミラー
     * [756]Init World
       <http://www.initworld.com/> –
       lfs.initworld.com ミラー

オーストラリアのミラー

     * [757]Jason Andrade <jason AT
       dstc D0T edu D0T au> –
       au.linuxfromscratch.org ミラー

以前のプロジェクトチームメンバー

     * [758]Christine Barczak
       <theladyskye AT
       linuxfromscratch D0T org> – LFS
       ブック編集者
     * Archaic
       <archaic@linuxfromscratch.org>
       – LFS テクニカルライター/編集者、HLFS
       プロジェクトリーダー、BLFS
       編集者、ヒントプロジェクトとパッチプロジェクトの管理者
     * [759]Nathan Coulson <nathan AT
       linuxfromscratch D0T org> –
       LFS-ブートスクリプトの管理者
     * Timothy Bauscher
     * Robert Briggs
     * Ian Chilton
     * [760]Jeroen Coumans <jeroen AT
       linuxfromscratch D0T org> –
       ウェブサイト開発者、FAQ 管理者
     * [761]Manuel Canales Esparcia
       <manuel AT linuxfromscratch D0T
       org> – LFS/BLFS/HLFS の XML と
       XSL の管理者
     * Alex Groenewoud – LFS テクニカルライター
     * Marc Heerdink
     * [762]Jeremy Huntwork <jhuntwork
       AT linuxfromscratch D0T org> –
       LFS テクニカルライター、LFS LiveCD 管理者
     * Mark Hymers
     * Seth W. Klein – FAQ 管理者
     * [763]Nicholas Leippe <nicholas
       AT linuxfromscratch D0T org> –
       Wiki 管理者
     * [764]Anderson Lizardo <lizardo
       AT linuxfromscratch D0T org> –
       ウェブサイトのバックエンドスクリプトの管理者
     * [765]Dan Nicholson <dnicholson
       AT linuxfromscratch D0T org> –
       LFS/BLFS 編集者
     * [766]Alexander E. Patrakov
       <alexander AT linuxfromscratch
       D0T org> – LFS テクニカルライター、LFS
       国際化に関する編集者、LFS Live CD 管理者
     * Simon Perreault
     * [767]Scot Mc Pherson <scot AT
       linuxfromscratch D0T org> – LFS
       NNTP ゲートウェイ管理者
     * [768]Greg Schafer <gschafer AT
       zip D0T com D0T au> – LFS
       テクニカルライター、次世代 64 ビット機での構築手法の開発者
     * Jesse Tie-Ten-Quee – LFS
       テクニカルライター
     * [769]James Robertson <jwrober
       AT linuxfromscratch D0T org> –
       Bugzilla 管理者
     * [770]Tushar Teredesai <tushar
       AT linuxfromscratch D0T org> –
       BLFS
       ブック編集者、ヒントプロジェクト・パッチプロジェクトのリーダー
     * [771]Jeremy Utley <jeremy AT
       linuxfromscratch D0T org> – LFS
       テクニカルライター、Bugzilla
       管理者、LFS-ブートスクリプト管理者
     * [772]Zack Winkles <zwinkles AT
       gmail D0T com> – LFS テクニカルライター

付録 C. パッケージの依存関係

   LFS
   にて構築するパッケージはすべて、他のいくつかのパッケージに依存していて
   、それらがあって初めて適切にインストールができます。
   パッケージの中には互いに依存し合っているものもあります。
   つまり一つめのパッケージが二つめのパッケージに依存しており、二つめが実
   は一つめのパッケージにも依存しているような例です。
   こういった依存関係があることから LFS
   においてパッケージを構築する順番は非常に重要なものとなります。 本節は
   LFS にて構築する各パッケージの依存関係を示すものです。

   ビルドするパッケージの個々には、3種類あるいは4種類の依存関係を示して
   います。
   1つめは対象パッケージをコンパイルしてビルドするために必要となるパッケ
   ージです。
   2つめは一つめのものに加えて、テストスイートを実行するために必要となる
   パッケージです。
   3つめは対象パッケージをビルドし、最終的にインストールするために必要と
   なるパッケージです。
   たいていの場合、それらのパッケージに含まれているスクリプトが、実行モジ
   ュールへのパスを固定的に取り扱っています。
   所定の順番どおりにパッケージのビルドを行わないと、最終的にインストール
   されるシステムにおいて、スクリプトの中に
   /tools/bin/[実行モジュール]
   といったパスが含まれてしまうことになりかねません。
   これは明らかに不適切なことです。

   依存関係として4つめに示すのは任意のパッケージであり LFS
   では説明していないものです。
   しかし皆さんにとっては有用なパッケージであるはずです。
   それらのパッケージは、さらに別のパッケージを必要としていたり、互いに依
   存し合っていることがあります。
   そういった依存関係があるため、それらをインストールする場合には、LFS
   をすべて仕上げた後に再度 LFS
   内のパッケージを再構築する方法をお勧めします。
   再インストールに関しては、たいていは BLFS にて説明しています。

Autoconf

   インストール依存パッケージ: Bash, Coreutils,
   Grep, M4, Make, Perl, Sed, Texinfo
   テストスイート依存パッケージ: Automake,
   Diffutils, Findutils, GCC, Libtool
   事前インストールパッケージ: Automake
   任意依存パッケージ: Emacs

Automake

   インストール依存パッケージ: Autoconf, Bash,
   Coreutils, Gettext, Grep, M4, Make,
   Perl, Sed, Texinfo
   テストスイート依存パッケージ: Binutils, Bison,
   Bzip2, DejaGNU, Diffutils, Expect,
   Findutils, Flex, GCC, Gettext,
   Gzip, Libtool, Tar
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Bash

   インストール依存パッケージ: Bash, Binutils,
   Bison, Coreutils, Diffutils, Gawk,
   GCC, Glibc, Grep, Make, Ncurses,
   Patch, Readline, Sed, Texinfo
   テストスイート依存パッケージ: Shadow
   事前インストールパッケージ: なし
   任意依存パッケージ: Xorg

Binutils

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, File, Gawk,
   GCC, Glibc, Grep, Make, Perl, Sed,
   Texinfo, Zlib
   テストスイート依存パッケージ: DejaGNU, Expect
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Bison

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, M4, Make, Sed
   テストスイート依存パッケージ: Diffutils,
   Findutils
   事前インストールパッケージ: Flex, Kbd, Tar
   任意依存パッケージ: Doxygen (テストスイート用)

Bzip2

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Glibc,
   Make, Patch
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Coreutils

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   GMP, Grep, Make, Patch, Perl, Sed,
   Texinfo
   テストスイート依存パッケージ: Diffutils,
   E2fsprogs, Findutils, Shadow,
   Util-linux
   事前インストールパッケージ: Bash, Diffutils,
   Findutils, Man-DB, Udev
   任意依存パッケージ: Perl Expect と IO:Tty
   モジュール (テストスイート用)

DejaGNU

   インストール依存パッケージ: Bash, Coreutils,
   Diffutils, GCC, Grep, Make, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Diffutils

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Gawk, GCC, Gettext,
   Glibc, Grep, Make, Sed, Texinfo
   テストスイート依存パッケージ: Diffutils, Perl
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Expect

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Glibc,
   Grep, Make, Patch, Sed, Tcl
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

E2fsprogs

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, Gzip, Make, Sed,
   Texinfo, Util-linux
   テストスイート依存パッケージ: Psmisc
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

File

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, Make, Sed, Zlib
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Findutils

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, Make, Sed, Texinfo
   テストスイート依存パッケージ: DejaGNU, Diffutils,
   Expect
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Flex

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, M4, Make, Patch, Sed, Texinfo
   テストスイート依存パッケージ: Bison, Gawk
   事前インストールパッケージ: IPRoute2, Kbd,
   Man-DB
   任意依存パッケージ: なし

Gawk

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, Make, Patch, Sed, Texinfo
   テストスイート依存パッケージ: Diffutils
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Gcc

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Findutils,
   Gawk, GCC, Gettext, Glibc, GMP,
   Grep, M4, Make, MPC, MPFR, Patch,
   Perl, Sed, Tar, Texinfo
   テストスイート依存パッケージ: DejaGNU, Expect
   事前インストールパッケージ: なし
   任意依存パッケージ: [773]CLooG-PPL,
   [774]GNAT, [775]PPL

GDBM

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Grep,
   Make, Sed
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Gettext

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Gawk, GCC, Glibc, Grep,
   Make, Sed, Texinfo
   テストスイート依存パッケージ: Diffutils, Perl,
   Tcl
   事前インストールパッケージ: Automake
   任意依存パッケージ: なし

Glibc

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Gettext, Grep, Gzip, Linux API
   ヘッダー, Make, Perl, Sed, Texinfo
   テストスイート依存パッケージ: File
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

GMP

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, M4, Make, Sed, Texinfo
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: MPFR, GCC
   任意依存パッケージ: なし

Grep

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Gettext,
   Glibc, Grep, Make, Patch, Sed,
   Texinfo
   テストスイート依存パッケージ: Gawk
   事前インストールパッケージ: Man-DB
   任意依存パッケージ: Pcre, Xorg, CUPS

Groff

   インストール依存パッケージ: Bash, Binutils,
   Bison, Coreutils, Gawk, GCC, Glibc,
   Grep, Make, Patch, Sed, Texinfo
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Man-DB, Perl
   任意依存パッケージ: GPL Ghostscript

GRUB

   インストール依存パッケージ: Bash, Binutils,
   Bison, Coreutils, Diffutils, GCC,
   Gettext, Glibc, Grep, Make,
   Ncurses, Sed, Texinfo, Xz
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Gzip

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Glibc, Grep, Make,
   Sed, Texinfo
   テストスイート依存パッケージ: Diffutils, Less
   事前インストールパッケージ: Man-DB
   任意依存パッケージ: なし

Iana-Etc

   インストール依存パッケージ: Coreutils, Gawk,
   Make
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Perl
   任意依存パッケージ: なし

Inetutils

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Glibc, Grep, Make,
   Ncurses, Patch, Sed, Texinfo, Zlib
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Tar
   任意依存パッケージ: なし

IProute2

   インストール依存パッケージ: Bash, Bison,
   Coreutils, Flex, GCC, Glibc, Make,
   Linux API ヘッダー
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Kbd

   インストール依存パッケージ: Bash, Binutils,
   Bison, Coreutils, Flex, GCC,
   Gettext, Glibc, Gzip, Make, Patch,
   Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Kmod

   インストール依存パッケージ: Bash, Binutils,
   Bison, Coreutils, Flex, GCC,
   Gettext, Glibc, Gzip, Make, Sed,
   Xz-Utils, Zlib
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Udev
   任意依存パッケージ: なし

Less

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Glibc,
   Grep, Make, Ncurses, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Gzip
   任意依存パッケージ: Pcre

Libpipeline

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, Make, Sed, Texinfo
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Man-DB
   任意依存パッケージ: なし

Libtool

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, Make, Sed, Texinfo
   テストスイート依存パッケージ: Findutils
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Linux Kernel

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Findutils,
   GCC, Glibc, Grep, Gzip, Kmod, Make,
   Ncurses, Perl, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

M4

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Glibc, Grep, Make,
   Sed, Texinfo
   テストスイート依存パッケージ: Diffutils
   事前インストールパッケージ: Autoconf, Bison
   任意依存パッケージ: libsigsegv

Make

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, Make, Sed, Texinfo
   テストスイート依存パッケージ: Perl, Procps
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Man-DB

   インストール依存パッケージ: Bash, Binutils,
   Bzip2, Coreutils, Flex, GCC, GDBM,
   Gettext, Glibc, Grep, Groff, Gzip,
   Less, Libpipeline, Make, Sed, Xz
   テストスイート依存パッケージ: 動かすためには Man-DB
   テストスイートパッケージが必要
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Man-Pages

   インストール依存パッケージ: Bash, Coreutils,
   Make
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

MPC

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, GMP, Make, MPFR, Sed,
   Texinfo
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: GCC
   任意依存パッケージ: なし

MPFR

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, GMP, Make, Sed,
   Texinfo
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: GCC
   任意依存パッケージ: なし

Ncurses

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, Make, Patch, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Bash, GRUB,
   Inetutils, Less, Procps, Psmisc,
   Readline, Texinfo, Util-linux, Vim
   任意依存パッケージ: なし

Patch

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Glibc, Grep, Make,
   Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: Ed

Perl

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Gawk, GCC, GDBM, Glibc,
   Grep, Groff, Make, Sed, Zlib
   テストスイート依存パッケージ: Iana-Etc, Procps
   事前インストールパッケージ: Autoconf
   任意依存パッケージ: なし

Pkg-config

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Gawk, GCC, Glibc, Grep,
   Make, Popt, Sed
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: Kmod
   任意依存パッケージ: なし

Popt

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Gawk, GCC, Glibc, Grep,
   Make
   テストスイート依存パッケージ: Diffutils, Sed
   事前インストールパッケージ: Pkg-config
   任意依存パッケージ: なし

Procps

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Glibc, Make,
   Ncurses
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Psmisc

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, Make, Ncurses, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Readline

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Gawk, GCC, Glibc, Grep,
   Make, Ncurses, Patch, Sed, Texinfo
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Bash
   任意依存パッケージ: なし

Sed

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, Make, Sed, Texinfo
   テストスイート依存パッケージ: Diffutils, Gawk
   事前インストールパッケージ: E2fsprogs, File,
   Libtool, Shadow
   任意依存パッケージ: Cracklib

Shadow

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Findutils,
   Gawk, GCC, Gettext, Glibc, Grep,
   Make, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: Coreutils
   任意依存パッケージ: Acl, Attr, Cracklib, PAM

Sysklogd

   インストール依存パッケージ: Binutils, Coreutils,
   GCC, Glibc, Make, Patch
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Sysvinit

   インストール依存パッケージ: Binutils, Coreutils,
   GCC, Glibc, Make, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Tar

   インストール依存パッケージ: Bash, Binutils,
   Bison, Coreutils, GCC, Gettext,
   Glibc, Grep, Inetutils, Make, Sed,
   Texinfo
   テストスイート依存パッケージ: Autoconf,
   Diffutils, Findutils, Gawk, Gzip
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Tcl

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Glibc,
   Grep, Make, Sed
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Texinfo

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Gettext, Glibc,
   Grep, Make, Ncurses, Patch, Sed
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Udev

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Gawk, GCC,
   Glibc, Grep, Kmod, Make, Sed
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: Glib, Pci-Utils, Python,
   Systemd, USB-Utils

Util-linux

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, Findutils,
   Gawk, GCC, Gettext, Glibc, Grep,
   Make, Ncurses, Sed, Zlib
   テストスイート依存パッケージ: テストスイートはありません
   事前インストールパッケージ: なし
   任意依存パッケージ: なし

Vim

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Glibc,
   Grep, Make, Ncurses, Sed
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: なし
   任意依存パッケージ: Xorg, GTK+2, LessTif,
   Python, Tcl, Ruby, GPM

Xz

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, Diffutils, GCC, Glibc,
   Make
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: GRUB, Kmod, Man-DB,
   Udev
   任意依存パッケージ: なし

Zlib

   インストール依存パッケージ: Bash, Binutils,
   Coreutils, GCC, Glibc, Make, Sed
   テストスイート依存パッケージ: なし
   事前インストールパッケージ: File, Kmod, Perl,
   Util-linux
   任意依存パッケージ: なし

付録 D. ブートスクリプトと sysconfig スクリプト
version-20120901

   本付録に示すスクリプトは、それらが収容されているディレクトリごとに列記
   します。 /etc/rc.d/init.d、
   /etc/sysconfig、
   /etc/sysconfig/network-devices、
   /etc/sysconfig/network-devices/serv
   ices の順です。
   各ディレクトリにおいてのスクリプトは呼び出し順に説明します。

D.1. /etc/rc.d/init.d/rc

   rc スクリプトは init
   によって呼び出される最初のスクリプトであり、ブート処理を初期化します。
#!/bin/bash
############################################
############################
# Begin rc
#
# Description : Main Run Level Control Scrip
t
#
# Authors     : Gerard Beekmans  - gerard AT
 linuxfromscratch D0T org
#             : DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

. /lib/lsb/init-functions

print_error_msg()
{
   log_failure_msg
   # $i is set when called
   MSG="FAILURE:\n\nYou should not be readin
g this error message.\n\n"
   MSG="${MSG}It means that an unforeseen er
ror took place in\n"
   MSG="${MSG}${i},\n"
   MSG="${MSG}which exited with a return val
ue of ${error_value}.\n"

   MSG="${MSG}If you're able to track this e
rror down to a bug in one of\n"
   MSG="${MSG}the files provided by the file
s provided by\n"
   MSG="${MSG}the ${DISTRO_MINI} book, pleas
e be so kind to inform us at\n"
   MSG="${MSG}${DISTRO_CONTACT}.\n"
   log_failure_msg "${MSG}"

   log_info_msg "Press Enter to continue..."
   wait_for_user
}

check_script_status()
{
   # $i is set when called
   if [ ! -f ${i} ]; then
      log_warning_msg "${i} is not a valid s
ymlink."
      continue
   fi

   if [ ! -x ${i} ]; then
      log_warning_msg "${i} is not executabl
e, skipping."
      continue
   fi
}

run()
{
   if [ -z $interactive ]; then
      ${1} ${2}
      return $?
   fi

   while true; do
      read -p "Run ${1} ${2} (Yes/no/continu
e)? " -n 1 runit
      echo

      case ${runit} in
         c | C)
            interactive=""
            ${i} ${2}
            ret=${?}
            break;
            ;;

         n | N)
            return 0
            ;;

         y | Y)
            ${i} ${2}
            ret=${?}
            break
            ;;
      esac
   done

   return $ret
}

# Read any local settings/overrides
[ -r /etc/sysconfig/rc.site ] && source /etc
/sysconfig/rc.site

DISTRO=${DISTRO:-"Linux From Scratch"}
DISTRO_CONTACT=${DISTRO_CONTACT:-"lfs-dev@li
nuxfromscratch.org (Registration required)"}
DISTRO_MINI=${DISTRO_MINI:-"LFS"}
IPROMPT=${IPROMPT:-"no"}

# These 3 signals will not cause our script
to exit
trap "" INT QUIT TSTP

[ "${1}" != "" ] && runlevel=${1}

if [ "${runlevel}" == "" ]; then
   echo "Usage: ${0} <runlevel>" >&2
   exit 1
fi

previous=${PREVLEVEL}
[ "${previous}" == "" ] && previous=N

if [ ! -d /etc/rc.d/rc${runlevel}.d ]; then
   log_info_msg "/etc/rc.d/rc${runlevel}.d d
oes not exist.\n"
   exit 1
fi

if [ "$runlevel" == "6" -o "$runlevel" == "0
" ]; then IPROMPT="no"; fi

# Note: In ${LOGLEVEL:-7}, it is ':' 'dash'
'7', not minus 7
if [ "$runlevel" == "S" ]; then
   [ -r /etc/sysconfig/console ] && source /
etc/sysconfig/console
   dmesg -n "${LOGLEVEL:-7}"
fi

if [ "${IPROMPT}" == "yes" -a "${runlevel}"
== "S" ]; then
   # The total length of the distro welcome
string, without escape codes
   wlen=${wlen:-$(echo "Welcome to ${DISTRO}
" | wc -c )}
   welcome_message=${welcome_message:-"Welco
me to ${INFO}${DISTRO}${NORMAL}"}

   # The total length of the interactive str
ing, without escape codes
   ilen=${ilen:-$(echo "Press 'I' to enter i
nteractive startup" | wc -c )}
   i_message=${i_message:-"Press '${FAILURE}
I${NORMAL}' to enter interactive startup"}


   # dcol and icol are spaces before the mes
sage to center the message
   # on screen. itime is the amount of wait
time for the user to press a key
   wcol=$(( ( ${COLUMNS} - ${wlen} ) / 2 ))
   icol=$(( ( ${COLUMNS} - ${ilen} ) / 2 ))
   itime=${itime:-"3"}

   echo -e "\n\n"
   echo -e "\\033[${wcol}G${welcome_message}
"
   echo -e "\\033[${icol}G${i_message}${NORM
AL}"
   echo ""
   read -t "${itime}" -n 1 interactive 2>&1
> /dev/null
fi

# Make lower case
[ "${interactive}" == "I" ] && interactive="
i"
[ "${interactive}" != "i" ] && interactive="
"

# Read the state file if it exists from runl
evel S
[ -r /var/run/interactive ] && source /var/r
un/interactive

# Attempt to stop all services started by th
e previous runlevel,
# and killed in this runlevel
if [ "${previous}" != "N" ]; then
   for i in $(ls -v /etc/rc.d/rc${runlevel}.
d/K* 2> /dev/null)
   do
      check_script_status

      suffix=${i#/etc/rc.d/rc$runlevel.d/K[0
-9][0-9]}
      prev_start=/etc/rc.d/rc$previous.d/S[0
-9][0-9]$suffix
      sysinit_start=/etc/rc.d/rcS.d/S[0-9][0
-9]$suffix

      if [ "${runlevel}" != "0" -a "${runlev
el}" != "6" ]; then
         if [ ! -f ${prev_start} -a  ! -f ${
sysinit_start} ]; then
            MSG="WARNING:\n\n${i} can't be "
            MSG="${MSG}executed because it w
as not "
            MSG="${MSG}not started in the pr
evious "
            MSG="${MSG}runlevel (${previous}
)."
            log_warning_msg "$MSG"
            continue
         fi
      fi

      run ${i} stop
      error_value=${?}

      if [ "${error_value}" != "0" ]; then p
rint_error_msg; fi
   done
fi

if [ "${previous}" == "N" ]; then export IN_
BOOT=1; fi

if [ "$runlevel" == "6" -a -n "${FASTBOOT}"
]; then
   touch /fastboot
fi


# Start all functions in this runlevel
for i in $( ls -v /etc/rc.d/rc${runlevel}.d/
S* 2> /dev/null)
do
   if [ "${previous}" != "N" ]; then
      suffix=${i#/etc/rc.d/rc$runlevel.d/S[0
-9][0-9]}
      stop=/etc/rc.d/rc$runlevel.d/K[0-9][0-
9]$suffix
      prev_start=/etc/rc.d/rc$previous.d/S[0
-9][0-9]$suffix

      [ -f ${prev_start} -a ! -f ${stop} ] &
& continue
   fi

   check_script_status

   case ${runlevel} in
      0|6)
         run ${i} stop
         ;;
      *)
         run ${i} start
         ;;
   esac

   error_value=${?}

   if [ "${error_value}" != "0" ]; then prin
t_error_msg; fi
done

# Store interactive variable on switch from
runlevel S and remove if not
if [ "${runlevel}" == "S" -a "${interactive}
" == "i" ]; then
    echo "interactive=\"i\"" > /var/run/inte
ractive
else
    rm -f /var/run/interactive 2> /dev/null
fi

# Copy the boot log on initial boot only
if [ "${previous}" == "N" -a  "${runlevel}"
!= "S" ]; then
   cat /run/var/bootlog >> /var/log/boot.log

   # Mark the end of boot
   echo "--------" >> /var/log/boot.log

   # Remove the temporary file
   rm -f /run/var/bootlog 2> /dev/null
fi

# End rc

D.2. /lib/lsb/init-functions

#!/bin/sh
############################################
############################
#
# Begin /lib/lsb/init-funtions
#
# Description : Run Level Control Functions
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#             : DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
# Notes       : With code based on Matthias
Benkmann's simpleinit-msb
#               http://winterdrache.de/linux
/newboot/index.html
#
#               The file should be located i
n /lib/lsb
#
############################################
############################

## Environmental setup
# Setup default values for environment
umask 022
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"

## Screen Dimensions
# Find current screen size
if [ -z "${COLUMNS}" ]; then
   COLUMNS=$(stty size)
   COLUMNS=${COLUMNS##* }
fi

# When using remote connections, such as a s
erial port, stty size returns 0
if [ "${COLUMNS}" = "0" ]; then
   COLUMNS=80
fi

## Measurements for positioning result messa
ges
COL=$((${COLUMNS} - 8))
WCOL=$((${COL} - 2))

## Set Cursor Position Commands, used via ec
ho
SET_COL="\\033[${COL}G"      # at the $COL c
har
SET_WCOL="\\033[${WCOL}G"    # at the $WCOL
char
CURS_UP="\\033[1A\\033[0G"   # Up one line,
at the 0'th char
CURS_ZERO="\\033[0G"

## Set color commands, used via echo
# Please consult `man console_codes for more
 information
# under the "ECMA-48 Set Graphics Rendition"
 section
#
# Warning: when switching from a 8bit to a 9
bit font,
# the linux console will reinterpret the bol
d (1;) to
# the top 256 glyphs of the 9bit font.  This
 does
# not affect framebuffer consoles

NORMAL="\\033[0;39m"         # Standard cons
ole grey
SUCCESS="\\033[1;32m"        # Success is gr
een
WARNING="\\033[1;33m"        # Warnings are
yellow
FAILURE="\\033[1;31m"        # Failures are
red
INFO="\\033[1;36m"           # Information i
s light cyan
BRACKET="\\033[1;34m"        # Brackets are
blue

# Use a colored prefix
BMPREFIX="     "
SUCCESS_PREFIX="${SUCCESS}  *  ${NORMAL}"
FAILURE_PREFIX="${FAILURE}*****${NORMAL}"
WARNING_PREFIX="${WARNING} *** ${NORMAL}"

SUCCESS_SUFFIX="${BRACKET}[${SUCCESS}  OK  $
{BRACKET}]${NORMAL}"
FAILURE_SUFFIX="${BRACKET}[${FAILURE} FAIL $
{BRACKET}]${NORMAL}"
WARNING_SUFFIX="${BRACKET}[${WARNING} WARN $
{BRACKET}]${NORMAL}"

BOOTLOG=/run/var/bootlog
KILLDELAY=3

# Set any user specified environment variabl
es e.g. HEADLESS
[ -r /etc/sysconfig/rc.site ]  && . /etc/sys
config/rc.site

############################################
####################################
# start_daemon()
                                   #
# Usage: start_daemon [-f] [-n nicelevel] [-
p pidfile] pathname [args...]      #
#
                                   #
# Purpose: This runs the specified program a
s a daemon                         #
#
                                   #
# Inputs: -f: (force) run the program even i
f it is already running.           #
#         -n nicelevel: specify a nice level
. See 'man nice(1)'.               #
#         -p pidfile: use the specified file
 to determine PIDs.                #
#         pathname: the complete path to the
 specified program                 #
#         args: additional arguments passed
to the program (pathname)          #
#
                                   #
# Return values (as defined by LSB exit code
s):                                #
#       0 - program is running or service is
 OK                                #
#       1 - generic or unspecified error
                                   #
#       2 - invalid or excessive argument(s)
                                   #
#       5 - program is not installed
                                   #
############################################
####################################
start_daemon()
{
    local force=""
    local nice="0"
    local pidfile=""
    local pidlist=""
    local retval=""

    # Process arguments
    while true
    do
        case "${1}" in

            -f)
                force="1"
                shift 1
                ;;

            -n)
                nice="${2}"
                shift 2
                ;;

            -p)
                pidfile="${2}"
                shift 2
                ;;

            -*)
                return 2
                ;;

            *)
                program="${1}"
                break
                ;;
        esac
    done

    # Check for a valid program
    if [ ! -e "${program}" ]; then return 5;
 fi

    # Execute
    if [ -z "${force}" ]; then
        if [ -z "${pidfile}" ]; then
            # Determine the pid by discovery
            pidlist=`pidofproc "${1}"`
            retval="${?}"
        else
            # The PID file contains the need
ed PIDs
            # Note that by LSB requirement,
the path must be given to pidofproc,
            # however, it is not used by the
 current implementation or standard.
            pidlist=`pidofproc -p "${pidfile
}" "${1}"`
            retval="${?}"
        fi

        # Return a value ONLY
        # It is the init script's (or distri
bution's functions) responsibilty
        # to log messages!
        case "${retval}" in

            0)
                # Program is already running
 correctly, this is a
                # successful start.
                return 0
                ;;

            1)
                # Program is not running, bu
t an invalid pid file exists
                # remove the pid file and co
ntinue
                rm -f "${pidfile}"
                ;;

            3)
                # Program is not running and
 no pidfile exists
                # do nothing here, let start
_deamon continue.
                ;;

            *)
                # Others as returned by stat
us values shall not be interpreted
                # and returned as an unspeci
fied error.
                return 1
                ;;
        esac
    fi

    # Do the start!
    nice -n "${nice}" "${@}"
}

############################################
####################################
# killproc()
                                   #
# Usage: killproc [-p pidfile] pathname [sig
nal]                               #
#
                                   #
# Purpose: Send control signals to running p
rocesses                           #
#
                                   #
# Inputs: -p pidfile, uses the specified pid
file                               #
#         pathname, pathname to the specifie
d program                          #
#         signal, send this signal to pathna
me                                 #
#
                                   #
# Return values (as defined by LSB exit code
s):                                #
#       0 - program (pathname) has stopped/i
s already stopped or a             #
#           running program has been sent sp
ecified signal and stopped         #
#           successfully
                                   #
#       1 - generic or unspecified error
                                   #
#       2 - invalid or excessive argument(s)
                                   #
#       5 - program is not installed
                                   #
#       7 - program is not running and a sig
nal was supplied                   #
############################################
####################################
killproc()
{
    local pidfile
    local program
    local prefix
    local progname
    local signal="-TERM"
    local fallback="-KILL"
    local nosig
    local pidlist
    local retval
    local pid
    local delay="30"
    local piddead
    local dtime

    # Process arguments
    while true; do
        case "${1}" in
            -p)
                pidfile="${2}"
                shift 2
                ;;

             *)
                 program="${1}"
                 if [ -n "${2}" ]; then
                     signal="${2}"
                     fallback=""
                 else
                     nosig=1
                 fi

                 # Error on additional argum
ents
                 if [ -n "${3}" ]; then
                     return 2
                 else
                     break
                 fi
                 ;;
        esac
    done

    # Check for a valid program
    if [ ! -e "${program}" ]; then return 5;
 fi

    # Check for a valid signal
    check_signal "${signal}"
    if [ "${?}" -ne "0" ]; then return 2; fi

    # Get a list of pids
    if [ -z "${pidfile}" ]; then
        # determine the pid by discovery
        pidlist=`pidofproc "${1}"`
        retval="${?}"
    else
        # The PID file contains the needed P
IDs
        # Note that by LSB requirement, the
path must be given to pidofproc,
        # however, it is not used by the cur
rent implementation or standard.
        pidlist=`pidofproc -p "${pidfile}" "
${1}"`
        retval="${?}"
    fi

    # Return a value ONLY
    # It is the init script's (or distributi
on's functions) responsibilty
    # to log messages!
    case "${retval}" in

        0)
            # Program is running correctly
            # Do nothing here, let killproc
continue.
            ;;

        1)
            # Program is not running, but an
 invalid pid file exists
            # Remove the pid file.
            rm -f "${pidfile}"

            # This is only a success if no s
ignal was passed.
            if [ -n "${nosig}" ]; then
                return 0
            else
                return 7
            fi
            ;;

        3)
            # Program is not running and no
pidfile exists
            # This is only a success if no s
ignal was passed.
            if [ -n "${nosig}" ]; then
                return 0
            else
                return 7
            fi
            ;;

        *)
            # Others as returned by status v
alues shall not be interpreted
            # and returned as an unspecified
 error.
            return 1
            ;;
    esac

    # Perform different actions for exit sig
nals and control signals
    check_sig_type "${signal}"

    if [ "${?}" -eq "0" ]; then # Signal is
used to terminate the program

        # Account for empty pidlist (pid fil
e still exists and no
        # signal was given)
        if [ "${pidlist}" != "" ]; then

            # Kill the list of pids
            for pid in ${pidlist}; do

                kill -0 "${pid}" 2> /dev/nul
l

                if [ "${?}" -ne "0" ]; then
                    # Process is dead, conti
nue to next and assume all is well
                    continue
                else
                    kill "${signal}" "${pid}
" 2> /dev/null

                    # Wait up to ${delay}/10
 seconds to for "${pid}" to
                    # terminate in 10ths of
a second

                    while [ "${delay}" -ne "
0" ]; do
                        kill -0 "${pid}" 2>
/dev/null || piddead="1"
                        if [ "${piddead}" =
"1" ]; then break; fi
                        sleep 0.1
                        delay="$(( ${delay}
- 1 ))"
                    done

                    # If a fallback is set,
and program is still running, then
                    # use the fallback
                    if [ -n "${fallback}" -a
 "${piddead}" != "1" ]; then
                        kill "${fallback}" "
${pid}" 2> /dev/null
                        sleep 1
                        # Check again, and f
ail if still running
                        kill -0 "${pid}" 2>
/dev/null && return 1
                    else
                        # just check one las
t time and if still alive, fail
                        sleep 1
                        kill -0 "${pid}" 2>
/dev/null && return 1
                    fi
                fi
            done
        fi

        # Check for and remove stale PID fil
es.
        if [ -z "${pidfile}" ]; then
            # Find the basename of $program
            prefix=`echo "${program}" | sed
's/[^/]*$//'`
            progname=`echo "${program}" | se
d "s@${prefix}@@"`

            if [ -e "/var/run/${progname}.pi
d" ]; then
                rm -f "/var/run/${progname}.
pid" 2> /dev/null
            fi
        else
            if [ -e "${pidfile}" ]; then rm
-f "${pidfile}" 2> /dev/null; fi
        fi

    # For signals that do not expect a progr
am to exit, simply
    # let kill do it's job, and evaluate kil
ls return for value

    else # check_sig_type - signal is not us
ed to terminate program
        for pid in ${pidlist}; do
            kill "${signal}" "${pid}"
            if [ "${?}" -ne "0" ]; then retu
rn 1; fi
        done
    fi
}

############################################
####################################
# pidofproc()
                                   #
# Usage: pidofproc [-p pidfile] pathname
                                   #
#
                                   #
# Purpose: This function returns one or more
 pid(s) for a particular daemon    #
#
                                   #
# Inputs: -p pidfile, use the specified pidf
ile instead of pidof               #
#         pathname, path to the specified pr
ogram                              #
#
                                   #
# Return values (as defined by LSB status co
des):                              #
#       0 - Success (PIDs to stdout)
                                   #
#       1 - Program is dead, PID file still
exists (remaining PIDs output)     #
#       3 - Program is not running (no outpu
t)                                 #
############################################
####################################
pidofproc()
{
    local pidfile
    local program
    local prefix
    local progname
    local pidlist
    local lpids
    local exitstatus="0"

    # Process arguments
    while true; do
        case "${1}" in

            -p)
                pidfile="${2}"
                shift 2
                ;;

            *)
                program="${1}"
                if [ -n "${2}" ]; then
                    # Too many arguments
                    # Since this is status,
return unknown
                    return 4
                else
                    break
                fi
                ;;
        esac
    done

    # If a PID file is not specified, try an
d find one.
    if [ -z "${pidfile}" ]; then
        # Get the program's basename
        prefix=`echo "${program}" | sed 's/[
^/]*$//'`

        if [ -z "${prefix}" ]; then
           progname="${program}"
        else
           progname=`echo "${program}" | sed
 "s@${prefix}@@"`
        fi

        # If a PID file exists with that nam
e, assume that is it.
        if [ -e "/var/run/${progname}.pid" ]
; then
            pidfile="/var/run/${progname}.pi
d"
        fi
    fi

    # If a PID file is set and exists, use i
t.
    if [ -n "${pidfile}" -a -e "${pidfile}"
]; then

        # Use the value in the first line of
 the pidfile
        pidlist=`/bin/head -n1 "${pidfile}"`
        # This can optionally be written as
'sed 1q' to repalce 'head -n1'
        # should LFS move /bin/head to /usr/
bin/head
    else
        # Use pidof
        pidlist=`pidof "${program}"`
    fi

    # Figure out if all listed PIDs are runn
ing.
    for pid in ${pidlist}; do
        kill -0 ${pid} 2> /dev/null

        if [ "${?}" -eq "0" ]; then
            lpids="${lpids}${pid} "
        else
            exitstatus="1"
        fi
    done

    if [ -z "${lpids}" -a ! -f "${pidfile}"
]; then
        return 3
    else
        echo "${lpids}"
        return "${exitstatus}"
    fi
}

############################################
####################################
# statusproc()
                                   #
# Usage: statusproc [-p pidfile] pathname
                                   #
#
                                   #
# Purpose: This function prints the status o
f a particular daemon to stdout    #
#
                                   #
# Inputs: -p pidfile, use the specified pidf
ile instead of pidof               #
#         pathname, path to the specified pr
ogram                              #
#
                                   #
# Return values:
                                   #
#       0 - Status printed
                                   #
#       1 - Input error. The daemon to check
 was not specified.                #
############################################
####################################
statusproc()
{
   local pidfile
   local pidlist

   if [ "${#}" = "0" ]; then
      echo "Usage: statusproc [-p pidfle] {p
rogram}"
      exit 1
   fi

   # Process arguments
   while true; do
       case "${1}" in

           -p)
               pidfile="${2}"
               shift 2
               ;;

           *)
               if [ -n "${2}" ]; then
                   echo "Too many arguments"
                   return 1
               else
                   break
               fi
               ;;
       esac
   done

   if [ -n "${pidfile}" ]; then
      pidlist=`pidofproc -p "${pidfile}" $@`
   else
      pidlist=`pidofproc $@`
   fi

   # Trim trailing blanks
   pidlist=`echo "${pidlist}" | sed -r 's/ +
$//'`

   base="${1##*/}"

   if [ -n "${pidlist}" ]; then
      echo -e "${INFO}${base} is running wit
h Process" \
         "ID(s) ${pidlist}.${NORMAL}"
   else
      if [ -n "${base}" -a -e "/var/run/${ba
se}.pid" ]; then
         echo -e "${WARNING}${1} is not runn
ing but" \
            "/var/run/${base}.pid exists.${N
ORMAL}"
      else
         if [ -n "${pidfile}" -a -e "${pidfi
le}" ]; then
            echo -e "${WARNING}${1} is not r
unning" \
               "but ${pidfile} exists.${NORM
AL}"
         else
            echo -e "${INFO}${1} is not runn
ing.${NORMAL}"
         fi
      fi
   fi
}

############################################
####################################
# timespec()
                                   #
#
                                   #
# Purpose: An internal utility function to f
ormat a timestamp                  #
#          a boot log file.  Sets the STAMP
variable.                          #
#
                                   #
# Return value: Not used
                                   #
############################################
####################################
timespec()
{
   STAMP="$(echo `date +"%b %d %T %:z"` `hos
tname`) "
   return 0
}

############################################
####################################
# log_success_msg()
                                   #
# Usage: log_success_msg ["message"]
                                   #
#
                                   #
# Purpose: Print a successful status message
 to the screen and                 #
#          a boot log file.
                                   #
#
                                   #
# Inputs: $@ - Message
                                   #
#
                                   #
# Return values: Not used
                                   #
############################################
####################################
log_success_msg()
{
    echo -n -e "${BMPREFIX}${@}"
    echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${
SET_COL}${SUCCESS_SUFFIX}"

    # Strip non-printable characters from lo
g file
    local logmessage=`echo "${@}" | sed 's/\
\\033[^a-zA-Z]*.//g'`

    timespec
    echo -e "${STAMP} ${logmessage} OK" >> $
{BOOTLOG}

    return 0
}

log_success_msg2()
{
    echo -n -e "${BMPREFIX}${@}"
    echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${
SET_COL}${SUCCESS_SUFFIX}"

    echo " OK" >> ${BOOTLOG}

    return 0
}

############################################
####################################
# log_failure_msg()
                                   #
# Usage: log_failure_msg ["message"]
                                   #
#
                                   #
# Purpose: Print a failure status message to
 the screen and                    #
#          a boot log file.
                                   #
#
                                   #
# Inputs: $@ - Message
                                   #
#
                                   #
# Return values: Not used
                                   #
############################################
####################################
log_failure_msg()
{
    echo -n -e "${BMPREFIX}${@}"
    echo -e "${CURS_ZERO}${FAILURE_PREFIX}${
SET_COL}${FAILURE_SUFFIX}"

    # Strip non-printable characters from lo
g file

    timespec
    local logmessage=`echo "${@}" | sed 's/\
\\033[^a-zA-Z]*.//g'`
    echo -e "${STAMP} ${logmessage} FAIL" >>
 ${BOOTLOG}

    return 0
}

log_failure_msg2()
{
    echo -n -e "${BMPREFIX}${@}"
    echo -e "${CURS_ZERO}${FAILURE_PREFIX}${
SET_COL}${FAILURE_SUFFIX}"

    echo "FAIL" >> ${BOOTLOG}

    return 0
}

############################################
####################################
# log_warning_msg()
                                   #
# Usage: log_warning_msg ["message"]
                                   #
#
                                   #
# Purpose: Print a warning status message to
 the screen and                    #
#          a boot log file.
                                   #
#
                                   #
# Return values: Not used
                                   #
############################################
####################################
log_warning_msg()
{
    echo -n -e "${BMPREFIX}${@}"
    echo -e "${CURS_ZERO}${WARNING_PREFIX}${
SET_COL}${WARNING_SUFFIX}"

    # Strip non-printable characters from lo
g file
    local logmessage=`echo "${@}" | sed 's/\
\\033[^a-zA-Z]*.//g'`
    timespec
    echo -e "${STAMP} ${logmessage} WARN" >>
 ${BOOTLOG}

    return 0
}

############################################
####################################
# log_info_msg()
                                   #
# Usage: log_info_msg message
                                   #
#
                                   #
# Purpose: Print an information message to t
he screen and                      #
#          a boot log file.  Does not print
a trailing newline character.      #
#
                                   #
# Return values: Not used
                                   #
############################################
####################################
log_info_msg()
{
    echo -n -e "${BMPREFIX}${@}"

    # Strip non-printable characters from lo
g file
    local logmessage=`echo "${@}" | sed 's/\
\\033[^a-zA-Z]*.//g'`
    timespec
    echo -n -e "${STAMP} ${logmessage}" >> $
{BOOTLOG}

    return 0
}

log_info_msg2()
{
    echo -n -e "${@}"

    # Strip non-printable characters from lo
g file
    local logmessage=`echo "${@}" | sed 's/\
\\033[^a-zA-Z]*.//g'`
    echo -n -e "${logmessage}" >> ${BOOTLOG}

    return 0
}

############################################
####################################
# evaluate_retval()
                                   #
# Usage: Evaluate a return value and print s
uccess or failyure as appropriate  #
#
                                   #
# Purpose: Convenience function to terminate
 an info message                   #
#
                                   #
# Return values: Not used
                                   #
############################################
####################################
evaluate_retval()
{
   local error_value="${?}"

   if [ ${error_value} = 0 ]; then
      log_success_msg2
   else
      log_failure_msg2
   fi
}

############################################
####################################
# check_signal()
                                   #
# Usage: check_signal [ -{signal} | {signal}
 ]                                 #
#
                                   #
# Purpose: Check for a valid signal.  This i
s not defined by any LSB draft,    #
#          however, it is required to check
the signals to determine if the    #
#          signals chosen are invalid argume
nts to the other functions.        #
#
                                   #
# Inputs: Accepts a single string value in t
he form or -{signal} or {signal}   #
#
                                   #
# Return values:
                                   #
#       0 - Success (signal is valid
                                   #
#       1 - Signal is not valid
                                   #
############################################
####################################
check_signal()
{
    local valsig

    # Add error handling for invalid signals
    valsig="-ALRM -HUP -INT -KILL -PIPE -POL
L -PROF -TERM -USR1 -USR2"
    valsig="${valsig} -VTALRM -STKFLT -PWR -
WINCH -CHLD -URG -TSTP -TTIN"
    valsig="${valsig} -TTOU -STOP -CONT -ABR
T -FPE -ILL -QUIT -SEGV -TRAP"
    valsig="${valsig} -SYS -EMT -BUS -XCPU -
XFSZ -0 -1 -2 -3 -4 -5 -6 -8 -9"
    valsig="${valsig} -11 -13 -14 -15"

    echo "${valsig}" | grep -- " ${1} " > /d
ev/null

    if [ "${?}" -eq "0" ]; then
        return 0
    else
        return 1
    fi
}

############################################
####################################
# check_sig_type()
                                   #
# Usage: check_signal [ -{signal} | {signal}
 ]                                 #
#
                                   #
# Purpose: Check if signal is a program term
ination signal or a control signal #
#          This is not defined by any LSB dr
aft, however, it is required to    #
#          check the signals to determine if
 they are intended to end a        #
#          program or simply to control it.
                                   #
#
                                   #
# Inputs: Accepts a single string value in t
he form or -{signal} or {signal}   #
#
                                   #
# Return values:
                                   #
#       0 - Signal is used for program termi
nation                             #
#       1 - Signal is used for program contr
ol                                 #
############################################
####################################
check_sig_type()
{
    local valsig

    # The list of termination signals (limit
ed to generally used items)
    valsig="-ALRM -INT -KILL -TERM -PWR -STO
P -ABRT -QUIT -2 -3 -6 -9 -14 -15"

    echo "${valsig}" | grep -- " ${1} " > /d
ev/null

    if [ "${?}" -eq "0" ]; then
        return 0
    else
        return 1
    fi
}

############################################
####################################
# wait_for_user()
                                   #
#
                                   #
# Purpose: Wait for the user to respond if n
ot a headless system               #
#
                                   #
############################################
####################################
wait_for_user()
{
   # Wait for the user by default
   [ "${HEADLESS=0}" = "0" ] && read ENTER
   return 0
}

############################################
####################################
# is_true()
                                   #
#
                                   #
# Purpose: Utility to test if a variable is
true | yes | 1                     #
#
                                   #
############################################
####################################
is_true()
{
   [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "
$1" = "true" ] ||  [ "$1" = "y" ] ||
   [ "$1" = "t" ]
}

# End /lib/lsb/init-functions

D.3. /etc/rc.d/init.d/functions

#!/bin/sh
############################################
############################
# Begin boot functions
#
# Description : Run Level Control Functions
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
# Notes       : With code based on Matthias
Benkmann's simpleinit-msb
#               http://winterdrache.de/linux
/newboot/index.html
#
#               This file is only present fo
r backward BLFS compatibility
#
############################################
############################

## Environmental setup
# Setup default values for environment
umask 022
export PATH="/bin:/usr/bin:/sbin:/usr/sbin"

# Signal sent to running processes to refres
h their configuration
RELOADSIG="HUP"

# Number of seconds between STOPSIG and FALL
BACK when stopping processes
KILLDELAY="3"

## Screen Dimensions
# Find current screen size
if [ -z "${COLUMNS}" ]; then
   COLUMNS=$(stty size)
   COLUMNS=${COLUMNS##* }
fi

# When using remote connections, such as a s
erial port, stty size returns 0
if [ "${COLUMNS}" = "0" ]; then
   COLUMNS=80
fi

## Measurements for positioning result messa
ges
COL=$((${COLUMNS} - 8))
WCOL=$((${COL} - 2))

## Provide an echo that supports -e and -n
# If formatting is needed, $ECHO should be u
sed
case "`echo -e -n test`" in
   -[en]*)
      ECHO=/bin/echo
      ;;
   *)
      ECHO=echo
      ;;
esac

## Set Cursor Position Commands, used via $E
CHO
SET_COL="\\033[${COL}G"      # at the $COL c
har
SET_WCOL="\\033[${WCOL}G"    # at the $WCOL
char
CURS_UP="\\033[1A\\033[0G"   # Up one line,
at the 0'th char

## Set color commands, used via $ECHO
# Please consult `man console_codes for more
 information
# under the "ECMA-48 Set Graphics Rendition"
 section
#
# Warning: when switching from a 8bit to a 9
bit font,
# the linux console will reinterpret the bol
d (1;) to
# the top 256 glyphs of the 9bit font.  This
 does
# not affect framebuffer consoles
NORMAL="\\033[0;39m"         # Standard cons
ole grey
SUCCESS="\\033[1;32m"        # Success is gr
een
WARNING="\\033[1;33m"        # Warnings are
yellow
FAILURE="\\033[1;31m"        # Failures are
red
INFO="\\033[1;36m"           # Information i
s light cyan
BRACKET="\\033[1;34m"        # Brackets are
blue

STRING_LENGTH="0"   # the length of the curr
ent message

#*******************************************
************************************
# Function - boot_mesg()
#
# Purpose:      Sending information from boo
tup scripts to the console
#
# Inputs:       $1 is the message
#               $2 is the colorcode for the
console
#
# Outputs:      Standard Output
#
# Dependencies: - sed for parsing strings.
#          - grep for counting string length
.
#
# Todo:
#*******************************************
************************************
boot_mesg()
{
   local ECHOPARM=""

   while true
   do
      case "${1}" in
         -n)
            ECHOPARM=" -n "
            shift 1
            ;;
         -*)
            echo "Unknown Option: ${1}"
            return 1
            ;;
         *)
            break
            ;;
      esac
   done

   ## Figure out the length of what is to be
 printed to be used
   ## for warning messages.
   STRING_LENGTH=$((${#1} + 1))

   # Print the message to the screen
   ${ECHO} ${ECHOPARM} -e "${2}${1}"

   # Log the message
   [ -d /run/var ] || return
   ${ECHO} ${ECHOPARM} -e "${2}${1}" >> /run
/var/bootlog
}

boot_mesg_flush()
{
   # Reset STRING_LENGTH for next message
   STRING_LENGTH="0"
}

echo_ok()
{
   ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRAC
KET}[${SUCCESS}  OK  ${BRACKET}]"
   ${ECHO} -e "${NORMAL}"
   boot_mesg_flush

   [ -d /run/var ] || return
   ${ECHO} -e "[ OK ]" >> /run/var/bootlog
}

echo_failure()
{
   ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRAC
KET}[${FAILURE} FAIL ${BRACKET}]"
   ${ECHO} -e "${NORMAL}"
    boot_mesg_flush

   [ -d /run/var ] || return
   ${ECHO} -e "[ FAIL]"  >> /run/var/bootlog
}

echo_warning()
{
   ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRAC
KET}[${WARNING} WARN ${BRACKET}]"
   ${ECHO} -e "${NORMAL}"
   boot_mesg_flush

   [ -d /run/var ] || return
   ${ECHO} -e "[ WARN ]"  >> /run/var/bootlo
g
}

echo_skipped()
{
   ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRAC
KET}[${WARNING} SKIP ${BRACKET}]"
   ${ECHO} -e "${NORMAL}"
   boot_mesg_flush

   [ -d /run/var ] || return
   ${ECHO} -e "  [ SKIP ]" >> /run/var/bootl
og
}

wait_for_user()
{
   # Wait for the user by default
   [ "${HEADLESS=0}" = "0" ] && read ENTER
}

evaluate_retval()
{
   error_value="${?}"

   if [ ${error_value} = 0 ]; then
      echo_ok
   else
      echo_failure
   fi

   # This prevents the 'An Unexpected Error
Has Occurred' from trivial
   # errors.
   return 0
}

print_status()
{
   if [ "${#}" = "0" ]; then
      echo "Usage: ${0} {success|warning|fai
lure}"
      return 1
   fi

   case "${1}" in

      success)
         echo_ok
         ;;

      warning)
         # Leave this extra case in because
old scripts
         # may call it this way.
         case "${2}" in
            running)
               ${ECHO} -e -n "${CURS_UP}"
               ${ECHO} -e -n "\\033[${STRING
_LENGTH}G   "
               boot_mesg "Already running."
${WARNING}
               echo_warning
               ;;
            not_running)
               ${ECHO} -e -n "${CURS_UP}"
               ${ECHO} -e -n "\\033[${STRING
_LENGTH}G   "
               boot_mesg "Not running." ${WA
RNING}
               echo_warning
               ;;
            not_available)
               ${ECHO} -e -n "${CURS_UP}"
               ${ECHO} -e -n "\\033[${STRING
_LENGTH}G   "
               boot_mesg "Not available." ${
WARNING}
               echo_warning
               ;;
            *)
               # This is how it is supposed
to
               # be called
               echo_warning
               ;;
         esac
      ;;

      failure)
         echo_failure
      ;;

   esac

}

reloadproc()
{
   local pidfile=""
   local failure=0

   while true
   do
      case "${1}" in
         -p)
            pidfile="${2}"
            shift 2
            ;;
         -*)
            log_failure_msg "Unknown Option:
 ${1}"
            return 2
            ;;
         *)
            break
            ;;
      esac
   done

   if [ "${#}" -lt "1" ]; then
      log_failure_msg "Usage: reloadproc [-p
 pidfile] pathname"
      return 2
   fi

   # This will ensure compatibility with pre
vious LFS Bootscripts
   if [ -n "${PIDFILE}" ]; then
      pidfile="${PIDFILE}"
   fi

   # Is the process running?
   if [ -z "${pidfile}" ]; then
      pidofproc -s "${1}"
   else
      pidofproc -s -p "${pidfile}" "${1}"
   fi

   # Warn about stale pid file
   if [ "$?" = 1 ]; then
      boot_mesg -n "Removing stale pid file:
 ${pidfile}. " ${WARNING}
      rm -f "${pidfile}"
   fi

   if [ -n "${pidlist}" ]; then
      for pid in ${pidlist}
      do
         kill -"${RELOADSIG}" "${pid}" || fa
ilure="1"
      done

      (exit ${failure})
      evaluate_retval

   else
      boot_mesg "Process ${1} not running."
${WARNING}
      echo_warning
   fi
}

statusproc()
{
   local pidfile=""
   local base=""
   local ret=""

   while true
   do
      case "${1}" in
         -p)
            pidfile="${2}"
            shift 2
            ;;
         -*)
            log_failure_msg "Unknown Option:
 ${1}"
            return 2
            ;;
         *)
            break
            ;;
      esac
   done

   if [ "${#}" != "1" ]; then
      shift 1
      log_failure_msg "Usage: statusproc [-p
 pidfile] pathname"
      return 2
   fi

   # Get the process basename
   base="${1##*/}"

   # This will ensure compatibility with pre
vious LFS Bootscripts
   if [ -n "${PIDFILE}" ]; then
      pidfile="${PIDFILE}"
   fi

   # Is the process running?
   if [ -z "${pidfile}" ]; then
      pidofproc -s "${1}"
   else
      pidofproc -s -p "${pidfile}" "${1}"
   fi

   # Store the return status
   ret=$?

   if [ -n "${pidlist}" ]; then
      ${ECHO} -e "${INFO}${base} is running
with Process"\
         "ID(s) ${pidlist}.${NORMAL}"
   else
      if [ -n "${base}" -a -e "/var/run/${ba
se}.pid" ]; then
         ${ECHO} -e "${WARNING}${1} is not r
unning but"\
            "/var/run/${base}.pid exists.${N
ORMAL}"
      else
         if [ -n "${pidfile}" -a -e "${pidfi
le}" ]; then
            ${ECHO} -e "${WARNING}${1} is no
t running"\
               "but ${pidfile} exists.${NORM
AL}"
         else
            ${ECHO} -e "${INFO}${1} is not r
unning.${NORMAL}"
         fi
      fi
   fi

   # Return the status from pidofproc
   return $ret
}

# The below functions are documented in the
LSB-generic 2.1.0

#*******************************************
************************************
# Function - pidofproc [-s] [-p pidfile] pat
hname
#
# Purpose: This function returns one or more
 pid(s) for a particular daemon
#
# Inputs: -p pidfile, use the specified pidf
ile instead of pidof
#         pathname, path to the specified pr
ogram
#
# Outputs: return 0 - Success, pid's in stdo
ut
#          return 1 - Program is dead, pidfi
le exists
#          return 2 - Invalid or excessive n
umber of arguments,
#                     warning in stdout
#          return 3 - Program is not running
#
# Dependencies: pidof, echo, head
#
# Todo: Remove dependency on head
#       This replaces getpids
#       Test changes to pidof
#
#*******************************************
************************************
pidofproc()
{
   local pidfile=""
   local lpids=""
   local silent=""
   pidlist=""
   while true
   do
      case "${1}" in
         -p)
            pidfile="${2}"
            shift 2
            ;;

         -s)
            # Added for legacy opperation of
 getpids
            # eliminates several '> /dev/nul
l'
            silent="1"
            shift 1
            ;;
         -*)
            log_failure_msg "Unknown Option:
 ${1}"
            return 2
            ;;
         *)
            break
            ;;
      esac
   done

   if [ "${#}" != "1" ]; then
      shift 1
      log_failure_msg "Usage: pidofproc [-s]
 [-p pidfile] pathname"
      return 2
   fi

   if [ -n "${pidfile}" ]; then
      if [ ! -r "${pidfile}" ]; then
         return 3 # Program is not running
      fi

      lpids=`head -n 1 ${pidfile}`
      for pid in ${lpids}
      do
         if [ "${pid}" -ne "$$" -a "${pid}"
-ne "${PPID}" ]; then
            kill -0 "${pid}" 2>/dev/null &&
            pidlist="${pidlist} ${pid}"
         fi

         if [ "${silent}" != "1" ]; then
            echo "${pidlist}"
         fi

         test -z "${pidlist}" &&
         # Program is dead, pidfile exists
         return 1
         # else
         return 0
      done

   else
      pidlist=`pidof -o $$ -o $PPID -x "$1"`
      if [ "${silent}" != "1" ]; then
         echo "${pidlist}"
      fi

      # Get provide correct running status
      if [ -n "${pidlist}" ]; then
         return 0
      else
         return 3
      fi

   fi

   if [ "$?" != "0" ]; then
      return 3 # Program is not running
   fi
}

#*******************************************
************************************
# Function - loadproc [-f] [-n nicelevel] [-
p pidfile] pathname [args]
#
# Purpose: This runs the specified program a
s a daemon
#
# Inputs: -f, run the program even if it is
already running
#         -n nicelevel, specifies a nice lev
el. See nice(1).
#         -p pidfile, uses the specified pid
file
#         pathname, pathname to the specifie
d program
#         args, arguments to pass to specifi
ed program
#
# Outputs: return 0 - Success
#          return 2 - Invalid of excessive n
umber of arguments,
#                     warning in stdout
#          return 4 - Program or service sta
tus is unknown
#
# Dependencies: nice, rm
#
# Todo: LSB says this should be called start
_daemon
#       LSB does not say that it should call
 evaluate_retval
#       It checks for PIDFILE, which is depr
ecated.
#         Will be removed after BLFS 6.0
#       loadproc returns 0 if program is alr
eady running, not LSB compliant
#
#*******************************************
************************************
loadproc()
{
   local pidfile=""
   local forcestart=""
   local nicelevel="10"

# This will ensure compatibility with previo
us LFS Bootscripts
   if [ -n "${PIDFILE}" ]; then
      pidfile="${PIDFILE}"
   fi

  while true
   do
      case "${1}" in
         -f)
            forcestart="1"
            shift 1
            ;;
         -n)
            nicelevel="${2}"
            shift 2
            ;;
         -p)
            pidfile="${2}"
            shift 2
            ;;
         -*)
            log_failure_msg "Unknown Option:
 ${1}"
            return 2 #invalid or excess argu
ment(s)
            ;;
         *)
            break
            ;;
      esac
   done

   if [ "${#}" = "0" ]; then
      log_failure_msg "Usage: loadproc [-f]
[-n nicelevel] [-p pidfile] pathname [args]"
      return 2 #invalid or excess argument(s
)
   fi

   if [ -z "${forcestart}" ]; then
      if [ -z "${pidfile}" ]; then
         pidofproc -s "${1}"
      else
         pidofproc -s -p "${pidfile}" "${1}"
      fi

      case "${?}" in
         0)
            log_warning_msg "Unable to conti
nue: ${1} is running"
            return 0 # 4
            ;;
         1)
            boot_mesg "Removing stale pid fi
le: ${pidfile}" ${WARNING}
            rm -f "${pidfile}"
            ;;
         3)
            ;;
         *)
            log_failure_msg "Unknown error c
ode from pidofproc: ${?}"
            return 4
            ;;
      esac
   fi

   nice -n "${nicelevel}" "${@}"
   evaluate_retval # This is "Probably" not
LSB compliant,
#                         but required to be
 compatible with older bootscripts
   return 0
}

#*******************************************
************************************
# Function - killproc  [-p pidfile] pathname
 [signal]
#
# Purpose:
#
# Inputs: -p pidfile, uses the specified pid
file
#         pathname, pathname to the specifie
d program
#         signal, send this signal to pathna
me
#
# Outputs: return 0 - Success
#          return 2 - Invalid of excessive n
umber of arguments,
#                     warning in stdout
#          return 4 - Unknown Status
#
# Dependencies: kill, rm
#
# Todo: LSB does not say that it should call
 evaluate_retval
#       It checks for PIDFILE, which is depr
ecated.
#         Will be removed after BLFS 6.0
#
#*******************************************
************************************
killproc()
{
   local pidfile=""
   local killsig=TERM # default signal is SI
GTERM
   pidlist=""

   # This will ensure compatibility with pre
vious LFS Bootscripts
   if [ -n "${PIDFILE}" ]; then
      pidfile="${PIDFILE}"
   fi

   while true
   do
      case "${1}" in
         -p)
            pidfile="${2}"
            shift 2
            ;;
         -*)
            log_failure_msg "Unknown Option:
 ${1}"
            return 2
            ;;
         *)
            break
            ;;
      esac
   done

   if [ "${#}" = "2" ]; then
      killsig="${2}"
   elif [ "${#}" != "1" ]; then
      shift 2
      log_failure_msg "Usage: killproc  [-p
pidfile] pathname [signal]"
      return 2
   fi

   # Is the process running?
   if [ -z "${pidfile}" ]; then
      pidofproc -s "${1}"
   else
      pidofproc -s -p "${pidfile}" "${1}"
   fi

   # Remove stale pidfile
   if [ "$?" = 1 ]; then
      boot_mesg "Removing stale pid file: ${
pidfile}." ${WARNING}
      rm -f "${pidfile}"
   fi

    # If running, send the signal
    if [ -n "${pidlist}" ]; then
   for pid in ${pidlist}
   do
      kill -${killsig} ${pid} 2>/dev/null

      # Wait up to 3 seconds, for ${pid} to
terminate
      case "${killsig}" in
      TERM|SIGTERM|KILL|SIGKILL)
         # sleep in 1/10ths of seconds and
         # multiply KILLDELAY by 10
         local dtime="${KILLDELAY}0"
         while [ "${dtime}" != "0" ]
         do
            kill -0 ${pid} 2>/dev/null || br
eak
            sleep 0.1
            dtime=$(( ${dtime} - 1))
         done
         # If ${pid} is still running, kill
it
         kill -0 ${pid} 2>/dev/null && kill
-KILL ${pid} 2>/dev/null
         ;;
      esac
   done

   # Check if the process is still running i
f we tried to stop it
   case "${killsig}" in
   TERM|SIGTERM|KILL|SIGKILL)
      if [ -z "${pidfile}" ]; then
         pidofproc -s "${1}"
      else
         pidofproc -s -p "${pidfile}" "${1}"
      fi

      # Program was terminated
      if [ "$?" != "0" ]; then
         # Remove the pidfile if necessary
         if [ -f "${pidfile}" ]; then
            rm -f "${pidfile}"
         fi
         echo_ok
         return 0
      else # Program is still running
         echo_failure
         return 4 # Unknown Status
      fi
      ;;
   *)
      # Just see if the kill returned succes
sfully
      evaluate_retval
      ;;
   esac
    else # process not running
   print_status warning not_running
    fi
}


#*******************************************
************************************
# Function - log_success_msg "message"
#
# Purpose: Print a success message
#
# Inputs: $@ - Message
#
# Outputs: Text output to screen
#
# Dependencies: echo
#
# Todo: logging
#
#*******************************************
************************************
log_success_msg()
{
   ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
   ${ECHO} -e "${SET_COL}""${BRACKET}""[""${
SUCCESS}""  OK  ""${BRACKET}""]""${NORMAL}"

   [ -d /run/var ] || return 0
   ${ECHO} -n -e "${@}  [ OK ]"  >> /run/var
/bootlog
   return 0
}

#*******************************************
************************************
# Function - log_failure_msg "message"
#
# Purpose: Print a failure message
#
# Inputs: $@ - Message
#
# Outputs: Text output to screen
#
# Dependencies: echo
#
# Todo: logging
#
#*******************************************
************************************
log_failure_msg() {
   ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
   ${ECHO} -e "${SET_COL}""${BRACKET}""[""${
FAILURE}"" FAIL ""${BRACKET}""]""${NORMAL}"

   [ -d /run/var ] || return 0
   ${ECHO} -e "${@}  [ FAIL ]" >> /run/var/b
ootlog
   return 0
}

#*******************************************
************************************
# Function - log_warning_msg "message"
#
# Purpose: print a warning message
#
# Inputs: $@ - Message
#
# Outputs: Text output to screen
#
# Dependencies: echo
#
# Todo: logging
#
#*******************************************
************************************
log_warning_msg() {
   ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
   ${ECHO} -e "${SET_COL}""${BRACKET}""[""${
WARNING}"" WARN ""${BRACKET}""]""${NORMAL}"

   [ -d /run/var ] || return 0
   ${ECHO} -e "${@}  [ WARN ]" >> /run/var/b
ootlog
   return 0
}

#*******************************************
************************************
# Function - log_skipped_msg "message"
#
# Purpose: print a message that the script w
as skipped
#
# Inputs: $@ - Message
#
# Outputs: Text output to screen
#
# Dependencies: echo
#
# Todo: logging
#
#*******************************************
************************************
log_skipped_msg() {
   ${ECHO} -n -e "${BOOTMESG_PREFIX}${@}"
   ${ECHO} -e "${SET_COL}""${BRACKET}""[""${
WARNING}"" SKIP ""${BRACKET}""]""${NORMAL}"

   [ -d /run/var ] || return 0
   ${ECHO} -e "${@}  [ SKIP ]" >> /run/var/b
ootlog
   return 0
}

# End boot functions

D.4. /etc/rc.d/init.d/mountvirtfs

#!/bin/sh
############################################
############################
# Begin mountvirtfs
#
# Description : Mount proc, sysfs, and run
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            mountvirtfs
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Mounts /sys and /proc
 virtual (kernel) filesystems.
#                      Mounts /run (tmpfs) a
nd /dev (devtmpfs).
# Description:         Mounts /sys and /proc
 virtual (kernel) filesystems.
#                      Mounts /run (tmpfs) a
nd /dev (devtmpfs).
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      # Make sure /run/var is available befo
re logging any messages
      if ! mountpoint /run >/dev/null; then
         mount -n /run || failed=1
      fi

      mkdir -p /run/var /run/lock /run/shm
      chmod 1777 /run/shm

      log_info_msg "Mounting virtual file sy
stems: ${INFO}/run"

      if ! mountpoint /proc >/dev/null; then
         log_info_msg2 " ${INFO}/proc"
         mount -n -o nosuid,noexec,nodev /pr
oc || failed=1
      fi

      if ! mountpoint /sys >/dev/null; then
         log_info_msg2 " ${INFO}/sys"
         mount -n -o nosuid,noexec,nodev /sy
s || failed=1
      fi

      if ! mountpoint /dev >/dev/null; then
         log_info_msg2 " ${INFO}/dev"
         mount -n -o mode=0755,nosuid /dev
|| failed=1
      fi

      # Copy devices that Udev >= 155 doesn'
t handle to /dev
      cp -a /lib/udev/devices/* /dev

      ln -sfn /run/shm /dev/shm

      (exit ${failed})
      evaluate_retval
      exit $failed
      ;;

   *)
      echo "Usage: ${0} {start}"
      exit 1
      ;;
esac

# End mountvirtfs

D.5. /etc/rc.d/init.d/modules

#!/bin/sh
############################################
############################
# Begin modules
#
# Description : Module auto-loading script
#
# Authors     : Zack Winkles
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            modules
# Required-Start:      mountvirtfs sysctl
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Loads required module
s.
# Description:         Loads modules listed
in /etc/sysconfig/modules.
# X-LFS-Provided-By:   LFS
### END INIT INFO

# Assure that the kernel has module support.
[ -e /proc/ksyms -o -e /proc/modules ] || ex
it 0

. /lib/lsb/init-functions

case "${1}" in
   start)
      # Exit if there's no modules file or t
here are no
      # valid entries
      [ -r /etc/sysconfig/modules ]
    || exit 0
      egrep -qv '^($|#)' /etc/sysconfig/modu
les || exit 0

      log_info_msg "Loading modules:"

      # Only try to load modules if the user
 has actually given us
      # some modules to load.

      while read module args; do

         # Ignore comments and blank lines.
         case "$module" in
            ""|"#"*) continue ;;
         esac

         # Attempt to load the module, passi
ng any arguments provided.
         modprobe ${module} ${args} >/dev/nu
ll

         # Print the module name if successf
ul, otherwise take note.
         if [ $? -eq 0 ]; then
            log_info_msg2 " ${module}"
         else
            failedmod="${failedmod} ${module
}"
         fi
      done < /etc/sysconfig/modules

      # Print a message about successfully l
oaded modules on the correct line.
      log_success_msg2

      # Print a failure message with a list
of any modules that
      # may have failed to load.
      if [ -n "${failedmod}" ]; then
         log_failure_msg "Failed to load mod
ules:${failedmod}"
         exit 1
      fi
      ;;

   *)
      echo "Usage: ${0} {start}"
      exit 1
      ;;
esac

exit 0

# End modules

D.6. /etc/rc.d/init.d/udev

#!/bin/sh
############################################
############################
# Begin udev
#
# Description : Udev cold-plugging script
#
# Authors     : Zack Winkles, Alexander E. P
atrakov
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            udev $time
# Required-Start:
# Should-Start:        modules
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Populates /dev with d
evice nodes.
# Description:         Mounts a tempfs on /d
ev and starts the udevd daemon.
#                      Device nodes are crea
ted as defined by udev.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      log_info_msg "Populating /dev with dev
ice nodes... "
      if ! grep -q '[[:space:]]sysfs' /proc/
mounts; then
         log_failure_msg2
         msg="FAILURE:\n\nUnable to create "
         msg="${msg}devices without a SysFS
filesystem\n\n"
         msg="${msg}After you press Enter, t
his system "
         msg="${msg}will be halted and power
ed off.\n\n"
         log_info_msg "$msg"
         log_info_msg "Press Enter to contin
ue..."
         wait_for_user
         /etc/rc.d/init.d/halt stop
      fi

      # Udev handles uevents itself, so we d
on't need to have
      # the kernel call out to any binary in
 response to them
      echo > /proc/sys/kernel/hotplug

      # Start the udev daemon to continually
 watch for, and act on,
      # uevents
      /lib/udev/udevd --daemon

      # Now traverse /sys in order to "coldp
lug" devices that have
      # already been discovered
      /sbin/udevadm trigger --action=add --t
ype=subsystems
      /sbin/udevadm trigger --action=add --t
ype=devices

      # Now wait for udevd to process the ue
vents we triggered
      /sbin/udevadm settle

      # If any LVM based partitions are on t
he system, ensure they
      # are activated so they can be used.
      if [ -x /sbin/vgchange ]; then /sbin/v
gchange -a y >/dev/null; fi

      log_success_msg2
      ;;

   *)
      echo "Usage ${0} {start}"
      exit 1
      ;;
esac

exit 0

# End udev

D.7. /etc/rc.d/init.d/swap

#!/bin/sh
############################################
############################
# Begin swap
#
# Description : Swap Control Script
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            swap
# Required-Start:      udev
# Should-Start:        modules
# Required-Stop:       localnet
# Should-Stop:
# Default-Start:       S
# Default-Stop:        0 6
# Short-Description:   Mounts and unmounts s
wap partitions.
# Description:         Mounts and unmounts s
wap partitions defined in
#                      /etc/fstab.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      log_info_msg "Activating all swap file
s/partitions..."
      swapon -a
      evaluate_retval
      ;;

   stop)
      log_info_msg "Deactivating all swap fi
les/partitions..."
      swapoff -a
      evaluate_retval
      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   status)
      log_success_msg "Retrieving swap statu
s."
      swapon -s
      ;;

   *)
      echo "Usage: ${0} {start|stop|restart|
status}"
      exit 1
      ;;
esac

exit 0

# End swap

D.8. /etc/rc.d/init.d/setclock

#!/bin/sh
############################################
############################
# Begin setclock
#
# Description : Setting Linux Clock
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:
# Required-Start:
# Should-Start:        modules
# Required-Stop:
# Should-Stop:         $syslog
# Default-Start:       S
# Default-Stop:
# Short-Description:   Stores and restores t
ime from the hardware clock
# Description:         On boot, system time
is obtained from hwclock.  The
#                      hardware clock can al
so be set on shutdown.
# X-LFS-Provided-By:   LFS BLFS
### END INIT INFO

. /lib/lsb/init-functions

[ -r /etc/sysconfig/clock ] && . /etc/syscon
fig/clock


case "${UTC}" in
   yes|true|1)
      CLOCKPARAMS="${CLOCKPARAMS} --utc"
      ;;

   no|false|0)
      CLOCKPARAMS="${CLOCKPARAMS} --localtim
e"
      ;;

esac

case ${1} in
   start)
      hwclock --hctosys ${CLOCKPARAMS} >/dev
/null
      ;;

   stop)
      log_info_msg "Setting hardware clock..
."
      hwclock --systohc ${CLOCKPARAMS} >/dev
/null
      evaluate_retval
      ;;

   *)
      echo "Usage: ${0} {start|stop}"
      exit 1
      ;;

esac

exit 0

D.9. /etc/rc.d/init.d/checkfs

#!/bin/sh
############################################
############################
# Begin checkfs
#
# Description : File System Check
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               A. Luebke - luebke@users.sou
rceforge.net
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
# Based on checkfs script from LFS-3.1 and e
arlier.
#
# From man fsck
# 0    - No errors
# 1    - File system errors corrected
# 2    - System should be rebooted
# 4    - File system errors left uncorrected
# 8    - Operational error
# 16   - Usage or syntax error
# 32   - Fsck canceled by user request
# 128  - Shared library error
#
############################################
#############################

### BEGIN INIT INFO
# Provides:            checkfs
# Required-Start:      udev swap $time
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Checks local filesyst
ems before mounting.
# Description:         Checks local filesyst
mes before mounting.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      if [ -f /fastboot ]; then
         msg="/fastboot found, will omit "
         msg="${msg} file system checks as r
equested.\n"
         log_info_msg "${msg}"
         exit 0
      fi

      log_info_msg "Mounting root file syste
m in read-only mode... "
      mount -n -o remount,ro / >/dev/null

      if [ ${?} != 0 ]; then
         log_failure_msg2
         msg="\n\nCannot check root "
         msg="${msg}filesystem because it co
uld not be mounted "
         msg="${msg}in read-only mode.\n\n"
         msg="${msg}After you press Enter, t
his system will be "
         msg="${msg}halted and powered off.\
n\n"
         log_failure_msg "${msg}"

         log_info_msg "Press Enter to contin
ue..."
         wait_for_user
         /etc/rc.d/init.d/halt stop
      else
         log_success_msg2
      fi

      if [ -f /forcefsck ]; then
         msg="\n/forcefsck found, forcing fi
le"
         msg="${msg} system checks as reques
ted."
         log_success_msg "$msg"
         options="-f"
      else
         options=""
      fi

      log_info_msg "Checking file systems...
"
      # Note: -a option used to be -p; but t
his fails e.g. on fsck.minix
      fsck ${options} -a -A -C -T >/dev/null
      error_value=${?}

      if [ "${error_value}" = 0 ]; then
         log_success_msg2
      fi

      if [ "${error_value}" = 1 ]; then
         msg="\nWARNING:\n\nFile system erro
rs "
         msg="${msg}were found and have been
 corrected.\n"
         msg="${msg}You may want to double-c
heck that "
         msg="${msg}everything was fixed pro
perly."
         log_warning_msg "$msg"
      fi

      if [ "${error_value}" = 2 -o "${error_
value}" = 3 ]; then
         msg="\nWARNING:\n\nFile system erro
rs "
         msg="${msg}were found and have been
 been "
         msg="${msg}corrected, but the natur
e of the "
         msg="${msg}errors require this syst
em to be rebooted.\n\n"
         msg="${msg}After you press enter, "
         msg="${msg}this system will be rebo
oted\n\n"
         log_failure_msg "$msg"

         log_info_msg "Press Enter to contin
ue..."
         wait_for_user
         reboot -f
      fi

      if [ "${error_value}" -gt 3 -a "${erro
r_value}" -lt 16 ]; then
         msg="\nFAILURE:\n\nFile system erro
rs "
         msg="${msg}were encountered that co
uld not be "
         msg="${msg}fixed automatically.  Th
is system "
         msg="${msg}cannot continue to boot
and will "
         msg="${msg}therefore be halted unti
l those "
         msg="${msg}errors are fixed manuall
y by a "
         msg="${msg}System Administrator.\n\
n"
         msg="${msg}After you press Enter, t
his system will be "
         msg="${msg}halted and powered off.\
n\n"
         log_failure_msg "$msg"

         log_info_msg "Press Enter to contin
ue..."
         wait_for_user
         /etc/rc.d/init.d/halt stop
      fi

      if [ "${error_value}" -ge 16 ]; then
         msg="\nFAILURE:\n\nUnexpected Failu
re "
         msg="${msg}running fsck.  Exited wi
th error "
         msg="${msg} code: ${error_value}."
         log_failure_msg $msg
         exit ${error_value}
      fi

      exit 0
      ;;
   *)
      echo "Usage: ${0} {start}"
      exit 1
      ;;
esac

# End checkfs

D.10. /etc/rc.d/init.d/mountfs

#!/bin/sh
############################################
############################
# Begin mountfs
#
# Description : File System Mount Script
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            $local_fs
# Required-Start:      udev checkfs
# Should-Start:
# Required-Stop:       swap
# Should-Stop:
# Default-Start:       S
# Default-Stop:        0 6
# Short-Description:   Mounts/unmounts local
 filesystems defined in /etc/fstab.
# Description:         Remounts root filesys
tem read/write and mounts all
#                      remaining local files
ystems defined in /etc/fstab on
#                      start.  Remounts root
 filesystem read-only and unmounts
#                      remaining filesystems
 on stop.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      log_info_msg "Remounting root file sys
tem in read-write mode..."
      mount -n -o remount,rw / >/dev/null
      evaluate_retval

      # Remove fsck-related file system wate
rmarks.
      rm -f /fastboot /forcefsck

      log_info_msg "Recording existing mount
s in /etc/mtab..."
      > /etc/mtab

      mount -f /     || failed=1
      mount -f /proc || failed=1
      mount -f /sys  || failed=1
      mount -f /run  || failed=1
      mount -f /dev  || failed=1
      (exit ${failed})
      evaluate_retval

      # This will mount all filesystems that
 do not have _netdev in
      # their option list.  _netdev denotes
a network filesystem.

      log_info_msg "Mounting remaining file
systems..."
      mount -a -O no_netdev >/dev/null
      evaluate_retval
      exit $failed
      ;;

   stop)
      # Don't unmount tmpfs like /run
      log_info_msg "Unmounting all other cur
rently mounted file systems..."
      umount -a -d -r -t notmpfs,nosysfs,nod
evtmpfs,noproc >/dev/null
      evaluate_retval

      # Make all LVM volume groups unavailab
le, if appropriate
      # This fails if swap or / are on an LV
M partition
      #if [ -x /sbin/vgchange ]; then /sbin/
vgchange -an > /dev/null; fi
      ;;

   *)
      echo "Usage: ${0} {start|stop}"
      exit 1
      ;;
esac

# End mountfs

D.11. /etc/rc.d/init.d/udev_retry

#!/bin/sh
############################################
############################
# Begin udev_retry
#
# Description : Udev cold-plugging script (r
etry)
#
# Authors     : Alexander E. Patrakov
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#               Bryan Kadzban -
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            udev_retry
# Required-Start:      udev
# Should-Start:        $local_fs
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Replays failed uevent
s and creates additional devices.
# Description:         Replays any failed ue
vents that were skipped due to
#                      slow hardware initial
ization, and creates those needed
#                      device nodes
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      log_info_msg "Retrying failed uevents,
 if any..."

      # As of udev-186, the --run option is
no longer valid
      #rundir=$(/sbin/udevadm info --run)
      rundir=/run/udev
      # From Debian: "copy the rules generat
ed before / was mounted
      # read-write":

      for file in ${rundir}/tmp-rules--*; do
         dest=${file##*tmp-rules--}
         [ "$dest" = '*' ] && break
         cat $file >> /etc/udev/rules.d/$des
t
         rm -f $file
      done

      # Re-trigger the uevents that may have
 failed,
      # in hope they will succeed now
      /bin/sed -e 's/#.*$//' /etc/sysconfig/
udev_retry | /bin/grep -v '^$' | \
      while read line ; do
         for subsystem in $line ; do
            /sbin/udevadm trigger --subsyste
m-match=$subsystem --action=add
         done
      done

      # Now wait for udevd to process the ue
vents we triggered
      /sbin/udevadm settle
      evaluate_retval
      ;;

   *)
      echo "Usage ${0} {start}"
      exit 1
      ;;
esac

exit 0

# End udev_retry

D.12. /etc/rc.d/init.d/cleanfs

#!/bin/sh
############################################
############################
# Begin cleanfs
#
# Description : Clean file system
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            cleanfs
# Required-Start:      $local_fs
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Cleans temporary dire
ctories early in the boot process.
# Description:         Cleans temporary dire
ctories /var/run, /var/lock, and
#                      optionally, /tmp.  cl
eanfs also creates /var/run/utmp
#                      and any files defined
 in /etc/sysconfig/createfiles.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

# Function to create files/directory on boot
.
create_files()
{
   # Input to file descriptor 9 and output t
o stdin (redirection)
   exec 9>&0 < /etc/sysconfig/createfiles

   while read name type perm usr grp dtype m
aj min junk
   do
      # Ignore comments and blank lines.
      case "${name}" in
         ""|\#*) continue ;;
      esac

      # Ignore existing files.
      if [ ! -e "${name}" ]; then
         # Create stuff based on its type.
         case "${type}" in
            dir)
               mkdir "${name}"
               ;;
            file)
               :> "${name}"
               ;;
            dev)
               case "${dtype}" in
                  char)
                     mknod "${name}" c ${maj
} ${min}
                     ;;
                  block)
                     mknod "${name}" b ${maj
} ${min}
                     ;;
                  pipe)
                     mknod "${name}" p
                     ;;
                  *)
                     log_warning_msg "\nUnkn
own device type: ${dtype}"
                     ;;
               esac
               ;;
            *)
               log_warning_msg "\nUnknown ty
pe: ${type}"
               continue
               ;;
         esac

         # Set up the permissions, too.
         chown ${usr}:${grp} "${name}"
         chmod ${perm} "${name}"
      fi
   done

   # Close file descriptor 9 (end redirectio
n)
   exec 0>&9 9>&-
   return 0
}

case "${1}" in
   start)
      log_info_msg "Cleaning file systems:"

      if [ "${SKIPTMPCLEAN}" = "" ]; then
         log_info_msg2 " /tmp"
         cd /tmp &&
         find . -xdev -mindepth 1 ! -name lo
st+found -delete || failed=1
      fi

      > /var/run/utmp

      if grep -q '^utmp:' /etc/group ; then
         chmod 664 /var/run/utmp
         chgrp utmp /var/run/utmp
      fi

      (exit ${failed})
      evaluate_retval

      if egrep -qv '^(#|$)' /etc/sysconfig/c
reatefiles 2>/dev/null; then
         log_info_msg "Creating files and di
rectories... "
         create_files      # Always returns
0
         evaluate_retval
      fi

      exit $failed
      ;;
   *)
      echo "Usage: ${0} {start}"
      exit 1
      ;;
esac

# End cleanfs

D.13. /etc/rc.d/init.d/console

#!/bin/sh
############################################
############################
# Begin console
#
# Description : Sets keymap and screen font
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               Alexander E. Patrakov
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            console
# Required-Start:
# Should-Start:        $local_fs
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Sets up a localised c
onsole.
# Description:         Sets up fonts and lan
guage settings for the user's
#                      local as defined by /
etc/sysconfig/console.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

# Native English speakers probably don't hav
e /etc/sysconfig/console at all
[ -r /etc/sysconfig/console ] && . /etc/sysc
onfig/console

function is_true()
{
   [ "$1" = "1" ] || [ "$1" = "yes" ] || [ "
$1" = "true" ]
}

failed=0

case "${1}" in
   start)
      # See if we need to do anything
      if [ -z "${KEYMAP}"         ] && [ -z
"${KEYMAP_CORRECTIONS}" ] &&
         [ -z "${FONT}"           ] && [ -z
"${LEGACY_CHARSET}"     ] &&
         ! is_true "${UNICODE}"; then
         exit 0
      fi

      # There should be no bogus failures be
low this line!
      log_info_msg "Setting up Linux console
..."

      # Figure out if a framebuffer console
is used
      [ -d /sys/class/graphics/fb0 ] && use_
fb=1 || use_fb=0

      # Figure out the command to set the co
nsole into the
      # desired mode
      is_true "${UNICODE}" &&
         MODE_COMMAND="echo -en '\033%G' &&
kbd_mode -u" ||
         MODE_COMMAND="echo -en '\033%@\033(
K' && kbd_mode -a"

      # On framebuffer consoles, font has to
 be set for each vt in
      # UTF-8 mode. This doesn't hurt in non
-UTF-8 mode also.

      ! is_true "${use_fb}" || [ -z "${FONT}
" ] ||
         MODE_COMMAND="${MODE_COMMAND} && se
tfont ${FONT}"

      # Apply that command to all consoles m
entioned in
      # /etc/inittab. Important: in the UTF-
8 mode this should
      # happen before setfont, otherwise a k
ernel bug will
      # show up and the unicode map of the f
ont will not be
      # used.

      for TTY in `grep '^[^#].*respawn:/sbin
/agetty' /etc/inittab |
         grep -o '\btty[[:digit:]]*\b'`
      do
         openvt -f -w -c ${TTY#tty} -- \
            /bin/sh -c "${MODE_COMMAND}" ||
failed=1
      done

      # Set the font (if not already set abo
ve) and the keymap
      [ "${use_fb}" == "1" ] || [ -z "${FONT
}" ] || setfont $FONT || failed=1

      [ -z "${KEYMAP}" ] ||
         loadkeys ${KEYMAP} >/dev/null 2>&1
||
         failed=1

      [ -z "${KEYMAP_CORRECTIONS}" ] ||
         loadkeys ${KEYMAP_CORRECTIONS} >/de
v/null 2>&1 ||
         failed=1

      # Convert the keymap from $LEGACY_CHAR
SET to UTF-8
      [ -z "$LEGACY_CHARSET" ] ||
         dumpkeys -c "$LEGACY_CHARSET" | loa
dkeys -u >/dev/null 2>&1 ||
         failed=1

      # If any of the commands above failed,
 the trap at the
      # top would set $failed to 1
      ( exit $failed )
      evaluate_retval

      exit $failed
      ;;

   *)
      echo "Usage:  ${0} {start}"
      exit 1
      ;;
esac

# End console

D.14. /etc/rc.d/init.d/localnet

#!/bin/sh
############################################
############################
# Begin localnet
#
# Description : Loopback device
#
# Authors     : Gerard Beekmans  - gerard AT
 linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            localnet
# Required-Start:      $local_fs
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:        0 6
# Short-Description:   Starts the local netw
ork.
# Description:         Sets the hostname of
the machine and starts the
#                      loopback interface.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions
[ -r /etc/sysconfig/network ] && . /etc/sysc
onfig/network

case "${1}" in
   start)
      log_info_msg "Bringing up the loopback
 interface..."
      ip addr add 127.0.0.1/8 label lo dev l
o
      ip link set lo up
      evaluate_retval

      log_info_msg "Setting hostname to ${HO
STNAME}..."
      hostname ${HOSTNAME}
      evaluate_retval
      ;;

   stop)
      log_info_msg "Bringing down the loopba
ck interface..."
      ip link set lo down
      evaluate_retval
      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   status)
      echo "Hostname is: $(hostname)"
      ip link show lo
      ;;

   *)
      echo "Usage: ${0} {start|stop|restart|
status}"
      exit 1
      ;;
esac

exit 0

# End localnet

D.15. /etc/rc.d/init.d/sysctl

#!/bin/sh
############################################
############################
# Begin sysctl
#
# Description : File uses /etc/sysctl.conf t
o set kernel runtime
#               parameters
#
# Authors     : Nathan Coulson (nathan AT li
nuxfromscratch D0T org)
#               Matthew Burgress (matthew AT
 linuxfromscratch D0T org)
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            sysctl
# Required-Start:      mountvirtfs
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       S
# Default-Stop:
# Short-Description:   Makes changes to the
proc filesystem
# Description:         Makes changes to the
proc filesystem as defined in
#                      /etc/sysctl.conf.  Se
e 'man sysctl(8)'.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      if [ -f "/etc/sysctl.conf" ]; then
         log_info_msg "Setting kernel runtim
e parameters..."
         sysctl -q -p
         evaluate_retval
      fi
      ;;

   status)
      sysctl -a
      ;;

   *)
      echo "Usage: ${0} {start|status}"
      exit 1
      ;;
esac

exit 0

# End sysctl

D.16. /etc/rc.d/init.d/sysklogd

#!/bin/sh
############################################
############################
# Begin sysklogd
#
# Description : Sysklogd loader
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            $syslog
# Required-Start:      localnet
# Should-Start:
# Required-Stop:       $local_fs sendsignals
# Should-Stop:
# Default-Start:       2 3 4 5
# Default-Stop:        0 1 6
# Short-Description:   Starts kernel and sys
tem log daemons.
# Description:         Starts kernel and sys
tem log daemons.
#                      /etc/fstab.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      log_info_msg "Starting system log daem
on..."
      parms=${SYSKLOGD_PARMS-'-m 0'}
      start_daemon /sbin/syslogd $parms
      evaluate_retval

      log_info_msg "Starting kernel log daem
on..."
      start_daemon /sbin/klogd
      evaluate_retval
      ;;

   stop)
      log_info_msg "Stopping kernel log daem
on..."
      killproc /sbin/klogd
      evaluate_retval

      log_info_msg "Stopping system log daem
on..."
      killproc /sbin/syslogd
      evaluate_retval
      ;;

   reload)
      log_info_msg "Reloading system log dae
mon config file..."
      pid=`pidofproc syslogd`
      kill -HUP "${pid}"
      evaluate_retval
      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   status)
      statusproc /sbin/syslogd
      statusproc klogd
      ;;

   *)
      echo "Usage: ${0} {start|stop|reload|r
estart|status}"
      exit 1
      ;;
esac

exit 0

# End sysklogd

D.17. /etc/rc.d/init.d/network

#!/bin/sh
############################################
############################
# Begin network
#
# Description : Network Control Script
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               Nathan Coulson - nathan AT l
inuxfromscratch D0T org
#               Kevin P. Fleming - kpfleming
@linuxfromscratch.org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            $network
# Required-Start:      $local_fs swap localn
et
# Should-Start:        $syslog
# Required-Stop:       $local_fs swap localn
et
# Should-Stop:         $syslog
# Default-Start:       3 4 5
# Default-Stop:        0 1 2 6
# Short-Description:   Starts and configures
 network interfaces.
# Description:         Starts and configures
 network interfaces.
# X-LFS-Provided-By:   LFS
### END INIT INFO

case "${1}" in
   start)
      # Start all network interfaces
      for file in /etc/sysconfig/ifconfig.*
      do
         interface=${file##*/ifconfig.}

         # Skip if $file is * (because nothi
ng was found)
         if [ "${interface}" = "*" ]
         then
            continue
         fi

         /sbin/ifup ${interface}
      done
      ;;

   stop)
      # Reverse list
      net_files=""
      for file in  /etc/sysconfig/ifconfig.*
      do
         net_files="${file} ${net_files}"
      done

      # Stop all network interfaces
      for file in ${net_files}
      do
         interface=${file##*/ifconfig.}

         # Skip if $file is * (because nothi
ng was found)
         if [ "${interface}" = "*" ]
         then
            continue
         fi

         /sbin/ifdown ${interface}
      done
      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   *)
      echo "Usage: ${0} {start|stop|restart}
"
      exit 1
      ;;
esac

exit 0

# End network

D.18. /etc/rc.d/init.d/sendsignals

#!/bin/sh
############################################
############################
# Begin sendsignals
#
# Description : Sendsignals Script
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            sendsignals
# Required-Start:
# Should-Start:
# Required-Stop:       $local_fs swap localn
et
# Should-Stop:
# Default-Start:
# Default-Stop:        0 6
# Short-Description:   Attempts to kill rema
ining processes.
# Description:         Attempts to kill rema
ining processes.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   stop)
      log_info_msg "Sending all processes th
e TERM signal..."
      killall5 -15
      error_value=${?}

      sleep ${KILLDELAY}

      if [ "${error_value}" = 0 -o "${error_
value}" = 2 ]; then
         log_success_msg
      else
         log_failure_msg
      fi

      log_info_msg "Sending all processes th
e KILL signal..."
      killall5 -9
      error_value=${?}

      sleep ${KILLDELAY}

      if [ "${error_value}" = 0 -o "${error_
value}" = 2 ]; then
         log_success_msg
      else
         log_failure_msg
      fi
      ;;

   *)
      echo "Usage: ${0} {stop}"
      exit 1
      ;;

esac

exit 0

# End sendsignals

D.19. /etc/rc.d/init.d/reboot

#!/bin/sh
############################################
############################
# Begin reboot
#
# Description : Reboot Scripts
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            reboot
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       6
# Default-Stop:
# Short-Description:   Reboots the system.
# Description:         Reboots the System.
# X-LFS-Provided-By:   LFS
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   stop)
      log_info_msg "Restarting system..."
      reboot -d -f -i
      ;;

   *)
      echo "Usage: ${0} {stop}"
      exit 1
      ;;

esac

# End reboot

D.20. /etc/rc.d/init.d/halt

#!/bin/sh
############################################
############################
# Begin halt
#
# Description : Halt Script
#
# Authors     : Gerard Beekmans - gerard AT
linuxfromscratch D0T org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

### BEGIN INIT INFO
# Provides:            halt
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:       0
# Default-Stop:
# Short-Description:   Halts the system.
# Description:         Halts the System.
# X-LFS-Provided-By:   LFS
### END INIT INFO

case "${1}" in
   stop)
      halt -d -f -i -p
      ;;

   *)
      echo "Usage: {stop}"
      exit 1
      ;;
esac

# End halt

D.21. /etc/rc.d/init.d/template

#!/bin/sh
############################################
############################
# Begin scriptname
#
# Description :
#
# Authors     :
#
# Version     : LFS x.x
#
# Notes       :
#
############################################
############################

### BEGIN INIT INFO
# Provides:            template
# Required-Start:
# Should-Start:
# Required-Stop:
# Should-Stop:
# Default-Start:
# Default-Stop:
# Short-Description:
# Description:
# X-LFS-Provided-By:
### END INIT INFO

. /lib/lsb/init-functions

case "${1}" in
   start)
      log_info_msg "Starting..."
      start_daemon fully_qualified_path
      ;;

   stop)
      log_info_msg "Stopping..."
      killproc fully_qualified_path
      ;;

   restart)
      ${0} stop
      sleep 1
      ${0} start
      ;;

   *)
      echo "Usage: ${0} {start|stop|restart}
"
      exit 1
      ;;
esac

exit 0

# End scriptname

D.22. /etc/sysconfig/modules

############################################
############################
# Begin /etc/sysconfig/modules
#
# Description : Module auto-loading configur
ation
#
# Authors     :
#
# Version     : 00.00
#
# Notes       : The syntax of this file is a
s follows:
#          <module> [<arg1> <arg2> ...]
#
# Each module should be on it's own line, an
d any options that you want
# passed to the module should follow it.  Th
e line deliminator is either
# a space or a tab.
############################################
############################

# End /etc/sysconfig/modules

D.23. /etc/sysconfig/createfiles

############################################
############################
# Begin /etc/sysconfig/createfiles
#
# Description : Createfiles script config fi
le
#
# Authors     :
#
# Version     : 00.00
#
# Notes       : The syntax of this file is a
s follows:
#         if type is equal to "file" or "dir
"
#          <filename> <type> <permissions> <
user> <group>
#         if type is equal to "dev"
#          <filename> <type> <permissions> <
user> <group> <devtype>
#             <major> <minor>
#
#         <filename> is the name of the file
 which is to be created
#         <type> is either file, dir, or dev
.
#               file creates a new file
#               dir creates a new directory
#               dev creates a new device
#         <devtype> is either block, char or
 pipe
#               block creates a block device
#               char creates a character dei
vce
#               pipe creates a pipe, this wi
ll ignore the <major> and
#           <minor> fields
#         <major> and <minor> are the major
and minor numbers used for
#     the device.
############################################
############################

# End /etc/sysconfig/createfiles

D.24. /etc/sysconfig/udev-retry

############################################
############################
# Begin /etc/sysconfig/udev_retry
#
# Description : udev_retry script configurat
ion
#
# Authors     :
#
# Version     : 00.00
#
# Notes       : Each subsystem that may need
 to be re-triggered after mountfs
#               runs should be listed in thi
s file.  Probable subsystems to be
#               listed here are rtc (due to
/var/lib/hwclock/adjtime) and sound
#               (due to both /var/lib/alsa/a
sound.state and /usr/sbin/alsactl).
#               Entries are whitespace-separ
ated.
############################################
############################

rtc

# End /etc/sysconfig/udev_retry

D.25. /sbin/ifup

#!/bin/sh
############################################
############################
# Begin /sbin/ifup
#
# Description : Interface Up
#
# Authors     : Nathan Coulson - nathan AT l
inuxfromscratch D0T org
#               Kevin P. Fleming - kpfleming
@linuxfromscratch.org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.2
#
# Notes       : The IFCONFIG variable is pas
sed to the SERVICE script
#               in the /lib/services directo
ry, to indicate what file the
#               service should source to get
 interface specifications.
#
############################################
############################

up()
{
  if ip link show $1 > /dev/null 2>&1; then
     link_status=`ip link show $1`

     if [ -n "${link_status}" ]; then
        if ! echo "${link_status}" | grep -q
 UP; then
           ip link set $1 up
        fi
     fi

  else
     log_failure_msg "\nInterface ${IFACE} d
oesn't exist."
     exit 1
  fi
}

RELEASE="7.2"

USAGE="Usage: $0 [ -hV ] [--help] [--version
] interface"
VERSTR="LFS ifup, version ${RELEASE}"

while [ $# -gt 0 ]; do
   case "$1" in
      --help | -h)     help="y"; break ;;

      --version | -V)  echo "${VERSTR}"; exi
t 0 ;;

      -*)              echo "ifup: ${1}: inv
alid option" >&2
                       echo "${USAGE}" >& 2
                       exit 2 ;;

      *)               break ;;
   esac
done

if [ -n "$help" ]; then
   echo "${VERSTR}"
   echo "${USAGE}"
   echo
   cat << HERE_EOF
ifup is used to bring up a network interface
.  The interface
parameter, e.g. eth0 or eth0:2, must match t
he trailing part of the
interface specifications file, e.g. /etc/sys
config/ifconfig.eth0:2.

HERE_EOF
   exit 0
fi

file=/etc/sysconfig/ifconfig.${1}

# Skip backup files
[ "${file}" = "${file%""~""}" ] || exit 0

. /lib/lsb/init-functions

log_info_msg "Bringing up the ${1} interface
... "

if [ ! -r "${file}" ]; then
   log_failure_msg2 "${file} is missing or c
annot be accessed."
   exit 1
fi

. $file

if [ "$IFACE" = "" ]; then
   log_failure_msg2 "${file} does not define
 an interface [IFACE]."
   exit 1
fi

# Do not process this service if started by
boot, and ONBOOT
# is not set to yes
if [ "${IN_BOOT}" = "1" -a "${ONBOOT}" != "y
es" ]; then
   log_info_msg2 "skipped"
   exit 0
fi

for S in ${SERVICE}; do
  if [ ! -x "/lib/services/${S}" ]; then
    MSG="\nUnable to process ${file}.  Eithe
r "
    MSG="${MSG}the SERVICE '${S} was not pre
sent "
    MSG="${MSG}or cannot be executed."
    log_failure_msg "$MSG"
    exit 1
  fi
done

# Create/configure the interface
for S in ${SERVICE}; do
  IFCONFIG=${file} /lib/services/${S} ${IFAC
E} up
done

# Bring up the interface and any components
for I in $IFACE $INTERFACE_COMPONENTS; do up
 $I; done

# Set MTU if requested. Check if MTU has a "
good" value.
if test -n "${MTU}"; then
   if [[ ${MTU} =~ ^[0-9]+$ ]] && [[ $MTU -g
e 68 ]] ; then
      for I in $IFACE $INTERFACE_COMPONENTS;
 do
         ip link set dev $I mtu $MTU;
      done
   else
      log_info_msg2 "Invalid MTU $MTU"
   fi
fi

# Set the route default gateway if requested
if [ -n "${GATEWAY}" ]; then
   if ip route | grep -q default; then
      log_warning_msg "\nGateway already set
up; skipping."
   else
      log_info_msg "Setting up default gatew
ay..."
      ip route add default via ${GATEWAY} de
v ${IFACE}
      evaluate_retval
   fi
fi

# End /sbin/ifup

D.26. /sbin/ifdown

#!/bin/bash
############################################
############################
# Begin /sbin/ifdown
#
# Description : Interface Down
#
# Authors     : Nathan Coulson - nathan AT l
inuxfromscratch D0T org
#               Kevin P. Fleming - kpfleming
@linuxfromscratch.org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
# Notes       : the IFCONFIG variable is pas
sed to the scripts found
#               in the /lib/services directo
ry, to indicate what file the
#               service should source to get
 interface specifications.
#
############################################
############################

RELEASE="7.0"

USAGE="Usage: $0 [ -hV ] [--help] [--version
] interface"
VERSTR="LFS ifdown, version ${RELEASE}"

while [ $# -gt 0 ]; do
   case "$1" in
      --help | -h)     help="y"; break ;;

      --version | -V)  echo "${VERSTR}"; exi
t 0 ;;

      -*)              echo "ifup: ${1}: inv
alid option" >&2
                       echo "${USAGE}" >& 2
                       exit 2 ;;

      *)               break ;;
   esac
done

if [ -n "$help" ]; then
   echo "${VERSTR}"
   echo "${USAGE}"
   echo
   cat << HERE_EOF
ifdown is used to bring down a network inter
face.  The interface
parameter, e.g. eth0 or eth0:2, must match t
he trailing part of the
interface specifications file, e.g. /etc/sys
config/ifconfig.eth0:2.

HERE_EOF
   exit 0
fi

file=/etc/sysconfig/ifconfig.${1}

# Skip backup files
[ "${file}" = "${file%""~""}" ] || exit 0

. /lib/lsb/init-functions

if [ ! -r "${file}" ]; then
   log_warning_msg "${file} is missing or ca
nnot be accessed."
   exit 1
fi

. ${file}

if [ "$IFACE" = "" ]; then
   log_failure_msg "${file} does not define
an interface [IFACE]."
   exit 1
fi

# We only need to first service to bring dow
n the interface
S=`echo ${SERVICE} | cut -f1 -d" "`

if ip link show ${IFACE} > /dev/null 2>&1; t
hen
   if [ -n "${S}" -a -x "/lib/services/${S}"
 ]; then
     IFCONFIG=${file} /lib/services/${S} ${I
FACE} down
   else
     MSG="Unable to process ${file}.  Either
 "
     MSG="${MSG}the SERVICE variable was not
 set "
     MSG="${MSG}or the specified service can
not be executed."
     log_failure_msg "$MSG"
     exit 1
  fi
else
   log_warning_msg "Interface ${1} doesn't e
xist."
fi

# Leave the interface up if there are additi
onal interfaces in the device
link_status=`ip link show ${IFACE} 2>/dev/nu
ll`

if [ -n "${link_status}" ]; then
   if [ "$(echo "${link_status}" | grep UP)"
 != "" ]; then
      if [ "$(ip addr show ${IFACE} | grep '
inet ')" == ""  ]; then
         log_info_msg "Bringing down the ${I
FACE} interface..."
         ip link set ${IFACE} down
         evaluate_retval
      fi
   fi
fi

# End /sbin/ifdown

D.27. /lib/services/ipv4-static

#!/bin/sh
############################################
############################
# Begin /lib/services/ipv4-static
#
# Description : IPV4 Static Boot Script
#
# Authors     : Nathan Coulson - nathan AT l
inuxfromscratch D0T org
#               Kevin P. Fleming - kpfleming
@linuxfromscratch.org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

. /lib/lsb/init-functions
. ${IFCONFIG}

if [ -z "${IP}" ]; then
   log_failure_msg "\nIP variable missing fr
om ${IFCONFIG}, cannot continue."
   exit 1
fi

if [ -z "${PREFIX}" -a -z "${PEER}" ]; then
   log_warning_msg "\nPREFIX variable missin
g from ${IFCONFIG}, assuming 24."
   PREFIX=24
   args="${args} ${IP}/${PREFIX}"

elif [ -n "${PREFIX}" -a -n "${PEER}" ]; the
n
   log_failure_msg "\nPREFIX and PEER both s
pecified in ${IFCONFIG}, cannot continue."
   exit 1

elif [ -n "${PREFIX}" ]; then
   args="${args} ${IP}/${PREFIX}"

elif [ -n "${PEER}" ]; then
   args="${args} ${IP} peer ${PEER}"
fi

if [ -n "${BROADCAST}" ]; then
   args="${args} broadcast ${BROADCAST}"
fi

case "${2}" in
   up)
      if [ "$(ip addr show ${1} 2>/dev/null
| grep ${IP}/)" == "" ]; then

         # Cosmetic output not needed for mu
ltiple services
         if ! $(echo ${SERVICE} | grep -q "
"); then
           log_info_msg2 "\n" # Terminate th
e previous message
         fi

         log_info_msg "Adding IPv4 address $
{IP} to the ${1} interface..."
         ip addr add ${args} dev ${1}
         evaluate_retval
      else
         log_warning_msg "Cannot add IPv4 ad
dress ${IP} to ${1}.  Already present."
      fi
   ;;

   down)
      if [ "$(ip addr show ${1} 2>/dev/null
| grep ${IP}/)" != "" ]; then
         log_info_msg "Removing IPv4 address
 ${IP} from the ${1} interface..."
         ip addr del ${args} dev ${1}
         evaluate_retval
      fi

      if [ -n "${GATEWAY}" ]; then
         # Only remove the gateway if there
are no remaining ipv4 addresses
         if [ "$(ip addr show ${1} 2>/dev/nu
ll | grep 'inet ')" != "" ]; then
            log_info_msg "Removing default g
ateway..."
            ip route del default
            evaluate_retval
         fi
      fi
   ;;

   *)
      echo "Usage: ${0} [interface] {up|down
}"
      exit 1
   ;;
esac

# End /lib/services/ipv4-static

D.28. /lib/services/ipv4-static-route

#!/bin/sh
############################################
############################
# Begin /lib/services/ipv4-static-route
#
# Description : IPV4 Static Route Script
#
# Authors     : Kevin P. Fleming - kpfleming
@linuxfromscratch.org
#               DJ Lucas - dj AT linuxfromsc
ratch D0T org
# Update      : Bruce Dubbs - bdubbs AT linu
xfromscratch D0T org
#
# Version     : LFS 7.0
#
############################################
############################

. /lib/lsb/init-functions
. ${IFCONFIG}

case "${TYPE}" in
   ("" | "network")
      need_ip=1
      need_gateway=1
   ;;

   ("default")
      need_gateway=1
      args="${args} default"
      desc="default"
   ;;

   ("host")
      need_ip=1
   ;;

   ("unreachable")
      need_ip=1
      args="${args} unreachable"
      desc="unreachable "
   ;;

   (*)
      log_failure_msg "Unknown route type ($
{TYPE}) in ${IFCONFIG}, cannot continue."
      exit 1
   ;;
esac

if [ -n "${need_ip}" ]; then
   if [ -z "${IP}" ]; then
      log_failure_msg "IP variable missing f
rom ${IFCONFIG}, cannot continue."
      exit 1
   fi

   if [ -z "${PREFIX}" ]; then
      log_failure_msg "PREFIX variable missi
ng from ${IFCONFIG}, cannot continue."
      exit 1
   fi

   args="${args} ${IP}/${PREFIX}"
   desc="${desc}${IP}/${PREFIX}"
fi

if [ -n "${need_gateway}" ]; then
   if [ -z "${GATEWAY}" ]; then
      log_failure_msg "GATEWAY variable miss
ing from ${IFCONFIG}, cannot continue."
      exit 1
   fi
   args="${args} via ${GATEWAY}"
fi

if [ -n "${SOURCE}" ]; then
        args="${args} src ${SOURCE}"
fi

case "${2}" in
   up)
      log_info_msg "Adding '${desc}' route t
o the ${1} interface..."
      ip route add ${args} dev ${1}
      evaluate_retval
   ;;

   down)
      log_info_msg "Removing '${desc}' route
 from the ${1} interface..."
      ip route del ${args} dev ${1}
      evaluate_retval
   ;;

   *)
      echo "Usage: ${0} [interface] {up|down
}"
      exit 1
   ;;
esac

# End /lib/services/ipv4-static-route

付録 E. Udev 設定ルール

   本付録にて udev-lfs-188-3.tar.bz2
   に含まれるルールを列記します。 インストール手順は
   [776]6.61.「Udev-188 (systemd-188
   から抽出)」を参照してください。

E.1. 55-lfs.rules

# /etc/udev/rules.d/55-lfs.rules: Rule defin
itions for LFS.

# Core kernel devices

# This causes the system clock to be set as
soon as /dev/rtc becomes available.
SUBSYSTEM=="rtc", ACTION=="add", MODE="0644"
, RUN+="/etc/rc.d/init.d/setclock start"
KERNEL=="rtc", ACTION=="add", MODE="0644", R
UN+="/etc/rc.d/init.d/setclock start"

# Comms devices

KERNEL=="ippp[0-9]*",       GROUP="dialout"
KERNEL=="isdn[0-9]*",       GROUP="dialout"
KERNEL=="isdnctrl[0-9]*",   GROUP="dialout"
KERNEL=="dcbri[0-9]*",      GROUP="dialout"

付録 F. LFS ライセンス

   本ブックはクリエイティブコモンズ (Creative Commons)
   の 表示-非営利-継承
   (Attribution-NonCommercial-ShareAli
   ke) 2.0 ライセンスに従います。

   本書のインストール手順のコマンドを抜き出したものは MIT
   ライセンスに従ってください。

F.1. クリエイティブコモンズライセンス

日本語訳情報

   以下は日本語へ訳出することなく、原文のライセンス条項をそのまま示します
   。

   Creative Commons Legal Code

   Attribution-NonCommercial-ShareAlik
   e 2.0

重要項目

   CREATIVE COMMONS CORPORATION IS NOT
   A LAW FIRM AND DOES NOT PROVIDE
   LEGAL SERVICES. DISTRIBUTION OF
   THIS LICENSE DOES NOT CREATE AN
   ATTORNEY-CLIENT RELATIONSHIP.
   CREATIVE COMMONS PROVIDES THIS
   INFORMATION ON AN "AS-IS" BASIS.
   CREATIVE COMMONS MAKES NO
   WARRANTIES REGARDING THE
   INFORMATION PROVIDED, AND DISCLAIMS
   LIABILITY FOR DAMAGES RESULTING
   FROM ITS USE.

   License

   THE WORK (AS DEFINED BELOW) IS
   PROVIDED UNDER THE TERMS OF THIS
   CREATIVE COMMONS PUBLIC LICENSE
   ("CCPL" OR "LICENSE"). THE WORK IS
   PROTECTED BY COPYRIGHT AND/OR OTHER
   APPLICABLE LAW. ANY USE OF THE WORK
   OTHER THAN AS AUTHORIZED UNDER THIS
   LICENSE OR COPYRIGHT LAW IS
   PROHIBITED.

   BY EXERCISING ANY RIGHTS TO THE
   WORK PROVIDED HERE, YOU ACCEPT AND
   AGREE TO BE BOUND BY THE TERMS OF
   THIS LICENSE. THE LICENSOR GRANTS
   YOU THE RIGHTS CONTAINED HERE IN
   CONSIDERATION OF YOUR ACCEPTANCE OF
   SUCH TERMS AND CONDITIONS.
    1. Definitions
         1. "Collective Work" means a
            work, such as a periodical
            issue, anthology or
            encyclopedia, in which the
            Work in its entirety in
            unmodified form, along
            with a number of other
            contributions,
            constituting separate and
            independent works in
            themselves, are assembled
            into a collective whole. A
            work that constitutes a
            Collective Work will not
            be considered a Derivative
            Work (as defined below)
            for the purposes of this
            License.
         2. "Derivative Work" means a
            work based upon the Work
            or upon the Work and other
            pre-existing works, such
            as a translation, musical
            arrangement,
            dramatization,
            fictionalization, motion
            picture version, sound
            recording, art
            reproduction, abridgment,
            condensation, or any other
            form in which the Work may
            be recast, transformed, or
            adapted, except that a
            work that constitutes a
            Collective Work will not
            be considered a Derivative
            Work for the purpose of
            this License. For the
            avoidance of doubt, where
            the Work is a musical
            composition or sound
            recording, the
            synchronization of the
            Work in timed-relation
            with a moving image
            ("synching") will be
            considered a Derivative
            Work for the purpose of
            this License.
         3. "Licensor" means the
            individual or entity that
            offers the Work under the
            terms of this License.
         4. "Original Author" means
            the individual or entity
            who created the Work.
         5. "Work" means the
            copyrightable work of
            authorship offered under
            the terms of this License.
         6. "You" means an individual
            or entity exercising
            rights under this License
            who has not previously
            violated the terms of this
            License with respect to
            the Work, or who has
            received express
            permission from the
            Licensor to exercise
            rights under this License
            despite a previous
            violation.
         7. "License Elements" means
            the following high-level
            license attributes as
            selected by Licensor and
            indicated in the title of
            this License: Attribution,
            Noncommercial, ShareAlike.
    2. Fair Use Rights. Nothing in
       this license is intended to
       reduce, limit, or restrict any
       rights arising from fair use,
       first sale or other limitations
       on the exclusive rights of the
       copyright owner under copyright
       law or other applicable laws.
    3. License Grant. Subject to the
       terms and conditions of this
       License, Licensor hereby grants
       You a worldwide, royalty-free,
       non-exclusive, perpetual (for
       the duration of the applicable
       copyright) license to exercise
       the rights in the Work as
       stated below:
         1. to reproduce the Work, to
            incorporate the Work into
            one or more Collective
            Works, and to reproduce
            the Work as incorporated
            in the Collective Works;
         2. to create and reproduce
            Derivative Works;
         3. to distribute copies or
            phonorecords of, display
            publicly, perform
            publicly, and perform
            publicly by means of a
            digital audio transmission
            the Work including as
            incorporated in Collective
            Works;
         4. to distribute copies or
            phonorecords of, display
            publicly, perform
            publicly, and perform
            publicly by means of a
            digital audio transmission
            Derivative Works;
       The above rights may be
       exercised in all media and
       formats whether now known or
       hereafter devised. The above
       rights include the right to
       make such modifications as are
       technically necessary to
       exercise the rights in other
       media and formats. All rights
       not expressly granted by
       Licensor are hereby reserved,
       including but not limited to
       the rights set forth in
       Sections 4(e) and 4(f).
    4. Restrictions.The license
       granted in Section 3 above is
       expressly made subject to and
       limited by the following
       restrictions:
         1. You may distribute,
            publicly display, publicly
            perform, or publicly
            digitally perform the Work
            only under the terms of
            this License, and You must
            include a copy of, or the
            Uniform Resource
            Identifier for, this
            License with every copy or
            phonorecord of the Work
            You distribute, publicly
            display, publicly perform,
            or publicly digitally
            perform. You may not offer
            or impose any terms on the
            Work that alter or
            restrict the terms of this
            License or the recipients'
            exercise of the rights
            granted hereunder. You may
            not sublicense the Work.
            You must keep intact all
            notices that refer to this
            License and to the
            disclaimer of warranties.
            You may not distribute,
            publicly display, publicly
            perform, or publicly
            digitally perform the Work
            with any technological
            measures that control
            access or use of the Work
            in a manner inconsistent
            with the terms of this
            License Agreement. The
            above applies to the Work
            as incorporated in a
            Collective Work, but this
            does not require the
            Collective Work apart from
            the Work itself to be made
            subject to the terms of
            this License. If You
            create a Collective Work,
            upon notice from any
            Licensor You must, to the
            extent practicable, remove
            from the Collective Work
            any reference to such
            Licensor or the Original
            Author, as requested. If
            You create a Derivative
            Work, upon notice from any
            Licensor You must, to the
            extent practicable, remove
            from the Derivative Work
            any reference to such
            Licensor or the Original
            Author, as requested.
         2. You may distribute,
            publicly display, publicly
            perform, or publicly
            digitally perform a
            Derivative Work only under
            the terms of this License,
            a later version of this
            License with the same
            License Elements as this
            License, or a Creative
            Commons iCommons license
            that contains the same
            License Elements as this
            License (e.g.
            Attribution-NonCommercial-
            ShareAlike 2.0 Japan). You
            must include a copy of, or
            the Uniform Resource
            Identifier for, this
            License or other license
            specified in the previous
            sentence with every copy
            or phonorecord of each
            Derivative Work You
            distribute, publicly
            display, publicly perform,
            or publicly digitally
            perform. You may not offer
            or impose any terms on the
            Derivative Works that
            alter or restrict the
            terms of this License or
            the recipients' exercise
            of the rights granted
            hereunder, and You must
            keep intact all notices
            that refer to this License
            and to the disclaimer of
            warranties. You may not
            distribute, publicly
            display, publicly perform,
            or publicly digitally
            perform the Derivative
            Work with any
            technological measures
            that control access or use
            of the Work in a manner
            inconsistent with the
            terms of this License
            Agreement. The above
            applies to the Derivative
            Work as incorporated in a
            Collective Work, but this
            does not require the
            Collective Work apart from
            the Derivative Work itself
            to be made subject to the
            terms of this License.
         3. You may not exercise any
            of the rights granted to
            You in Section 3 above in
            any manner that is
            primarily intended for or
            directed toward commercial
            advantage or private
            monetary compensation. The
            exchange of the Work for
            other copyrighted works by
            means of digital
            file-sharing or otherwise
            shall not be considered to
            be intended for or
            directed toward commercial
            advantage or private
            monetary compensation,
            provided there is no
            payment of any monetary
            compensation in connection
            with the exchange of
            copyrighted works.
         4. If you distribute,
            publicly display, publicly
            perform, or publicly
            digitally perform the Work
            or any Derivative Works or
            Collective Works, You must
            keep intact all copyright
            notices for the Work and
            give the Original Author
            credit reasonable to the
            medium or means You are
            utilizing by conveying the
            name (or pseudonym if
            applicable) of the
            Original Author if
            supplied; the title of the
            Work if supplied; to the
            extent reasonably
            practicable, the Uniform
            Resource Identifier, if
            any, that Licensor
            specifies to be associated
            with the Work, unless such
            URI does not refer to the
            copyright notice or
            licensing information for
            the Work; and in the case
            of a Derivative Work, a
            credit identifying the use
            of the Work in the
            Derivative Work (e.g.,
            "French translation of the
            Work by Original Author,"
            or "Screenplay based on
            original Work by Original
            Author"). Such credit may
            be implemented in any
            reasonable manner;
            provided, however, that in
            the case of a Derivative
            Work or Collective Work,
            at a minimum such credit
            will appear where any
            other comparable
            authorship credit appears
            and in a manner at least
            as prominent as such other
            comparable authorship
            credit.
         5. For the avoidance of
            doubt, where the Work is a
            musical composition:
              1. Performance Royalties
                 Under Blanket
                 Licenses. Licensor
                 reserves the
                 exclusive right to
                 collect, whether
                 individually or via a
                 performance rights
                 society (e.g. ASCAP,
                 BMI, SESAC),
                 royalties for the
                 public performance or
                 public digital
                 performance (e.g.
                 webcast) of the Work
                 if that performance
                 is primarily intended
                 for or directed
                 toward commercial
                 advantage or private
                 monetary
                 compensation.
              2. Mechanical Rights and
                 Statutory Royalties.
                 Licensor reserves the
                 exclusive right to
                 collect, whether
                 individually or via a
                 music rights agency
                 or designated agent
                 (e.g. Harry Fox
                 Agency), royalties
                 for any phonorecord
                 You create from the
                 Work ("cover
                 version") and
                 distribute, subject
                 to the compulsory
                 license created by 17
                 USC Section 115 of
                 the US Copyright Act
                 (or the equivalent in
                 other jurisdictions),
                 if Your distribution
                 of such cover version
                 is primarily intended
                 for or directed
                 toward commercial
                 advantage or private
                 monetary
                 compensation. 6.
                 Webcasting Rights and
                 Statutory Royalties.
                 For the avoidance of
                 doubt, where the Work
                 is a sound recording,
                 Licensor reserves the
                 exclusive right to
                 collect, whether
                 individually or via a
                 performance-rights
                 society (e.g.
                 SoundExchange),
                 royalties for the
                 public digital
                 performance (e.g.
                 webcast) of the Work,
                 subject to the
                 compulsory license
                 created by 17 USC
                 Section 114 of the US
                 Copyright Act (or the
                 equivalent in other
                 jurisdictions), if
                 Your public digital
                 performance is
                 primarily intended
                 for or directed
                 toward commercial
                 advantage or private
                 monetary
                 compensation.
         6. Webcasting Rights and
            Statutory Royalties. For
            the avoidance of doubt,
            where the Work is a sound
            recording, Licensor
            reserves the exclusive
            right to collect, whether
            individually or via a
            performance-rights society
            (e.g. SoundExchange),
            royalties for the public
            digital performance (e.g.
            webcast) of the Work,
            subject to the compulsory
            license created by 17 USC
            Section 114 of the US
            Copyright Act (or the
            equivalent in other
            jurisdictions), if Your
            public digital performance
            is primarily intended for
            or directed toward
            commercial advantage or
            private monetary
            compensation.
    5. Representations, Warranties and
       Disclaimer
       UNLESS OTHERWISE MUTUALLY
       AGREED TO BY THE PARTIES IN
       WRITING, LICENSOR OFFERS THE
       WORK AS-IS AND MAKES NO
       REPRESENTATIONS OR WARRANTIES
       OF ANY KIND CONCERNING THE
       WORK, EXPRESS, IMPLIED,
       STATUTORY OR OTHERWISE,
       INCLUDING, WITHOUT LIMITATION,
       WARRANTIES OF TITLE,
       MERCHANTIBILITY, FITNESS FOR A
       PARTICULAR PURPOSE,
       NONINFRINGEMENT, OR THE ABSENCE
       OF LATENT OR OTHER DEFECTS,
       ACCURACY, OR THE PRESENCE OF
       ABSENCE OF ERRORS, WHETHER OR
       NOT DISCOVERABLE. SOME
       JURISDICTIONS DO NOT ALLOW THE
       EXCLUSION OF IMPLIED
       WARRANTIES, SO SUCH EXCLUSION
       MAY NOT APPLY TO YOU.
    6. Limitation on Liability. EXCEPT
       TO THE EXTENT REQUIRED BY
       APPLICABLE LAW, IN NO EVENT
       WILL LICENSOR BE LIABLE TO YOU
       ON ANY LEGAL THEORY FOR ANY
       SPECIAL, INCIDENTAL,
       CONSEQUENTIAL, PUNITIVE OR
       EXEMPLARY DAMAGES ARISING OUT
       OF THIS LICENSE OR THE USE OF
       THE WORK, EVEN IF LICENSOR HAS
       BEEN ADVISED OF THE POSSIBILITY
       OF SUCH DAMAGES.
    7. Termination
         1. This License and the
            rights granted hereunder
            will terminate
            automatically upon any
            breach by You of the terms
            of this License.
            Individuals or entities
            who have received
            Derivative Works or
            Collective Works from You
            under this License,
            however, will not have
            their licenses terminated
            provided such individuals
            or entities remain in full
            compliance with those
            licenses. Sections 1, 2,
            5, 6, 7, and 8 will
            survive any termination of
            this License.
         2. Subject to the above terms
            and conditions, the
            license granted here is
            perpetual (for the
            duration of the applicable
            copyright in the Work).
            Notwithstanding the above,
            Licensor reserves the
            right to release the Work
            under different license
            terms or to stop
            distributing the Work at
            any time; provided,
            however that any such
            election will not serve to
            withdraw this License (or
            any other license that has
            been, or is required to
            be, granted under the
            terms of this License),
            and this License will
            continue in full force and
            effect unless terminated
            as stated above.
    8. Miscellaneous
         1. Each time You distribute
            or publicly digitally
            perform the Work or a
            Collective Work, the
            Licensor offers to the
            recipient a license to the
            Work on the same terms and
            conditions as the license
            granted to You under this
            License.
         2. Each time You distribute
            or publicly digitally
            perform a Derivative Work,
            Licensor offers to the
            recipient a license to the
            original Work on the same
            terms and conditions as
            the license granted to You
            under this License.
         3. If any provision of this
            License is invalid or
            unenforceable under
            applicable law, it shall
            not affect the validity or
            enforceability of the
            remainder of the terms of
            this License, and without
            further action by the
            parties to this agreement,
            such provision shall be
            reformed to the minimum
            extent necessary to make
            such provision valid and
            enforceable.
         4. No term or provision of
            this License shall be
            deemed waived and no
            breach consented to unless
            such waiver or consent
            shall be in writing and
            signed by the party to be
            charged with such waiver
            or consent.
         5. This License constitutes
            the entire agreement
            between the parties with
            respect to the Work
            licensed here. There are
            no understandings,
            agreements or
            representations with
            respect to the Work not
            specified here. Licensor
            shall not be bound by any
            additional provisions that
            may appear in any
            communication from You.
            This License may not be
            modified without the
            mutual written agreement
            of the Licensor and You.

重要項目

   Creative Commons is not a party to
   this License, and makes no warranty
   whatsoever in connection with the
   Work. Creative Commons will not be
   liable to You or any party on any
   legal theory for any damages
   whatsoever, including without
   limitation any general, special,
   incidental or consequential damages
   arising in connection to this
   license. Notwithstanding the
   foregoing two (2) sentences, if
   Creative Commons has expressly
   identified itself as the Licensor
   hereunder, it shall have all rights
   and obligations of Licensor.

   Except for the limited purpose of
   indicating to the public that the
   Work is licensed under the CCPL,
   neither party will use the
   trademark "Creative Commons" or any
   related trademark or logo of
   Creative Commons without the prior
   written consent of Creative
   Commons. Any permitted use will be
   in compliance with Creative
   Commons' then-current trademark
   usage guidelines, as may be
   published on its website or
   otherwise made available upon
   request from time to time.

   Creative Commons may be contacted
   at
   [777]http://creativecommons.org/.

F.2. MIT ライセンス (The MIT License)

日本語訳情報

   以下は日本語へ訳出することなく、原文のライセンス条項をそのまま示します
   。

   Copyright © 1999-2012 Gerard
   Beekmans

   Permission is hereby granted, free
   of charge, to any person obtaining
   a copy of this software and
   associated documentation files (the
   "Software"), to deal in the
   Software without restriction,
   including without limitation the
   rights to use, copy, modify, merge,
   publish, distribute, sublicense,
   and/or sell copies of the Software,
   and to permit persons to whom the
   Software is furnished to do so,
   subject to the following
   conditions:

   The above copyright notice and this
   permission notice shall be included
   in all copies or substantial
   portions of the Software.

   THE SOFTWARE IS PROVIDED "AS IS",
   WITHOUT WARRANTY OF ANY KIND,
   EXPRESS OR IMPLIED, INCLUDING BUT
   NOT LIMITED TO THE WARRANTIES OF
   MERCHANTABILITY, FITNESS FOR A
   PARTICULAR PURPOSE AND
   NONINFRINGEMENT. IN NO EVENT SHALL
   THE AUTHORS OR COPYRIGHT HOLDERS BE
   LIABLE FOR ANY CLAIM, DAMAGES OR
   OTHER LIABILITY, WHETHER IN AN
   ACTION OF CONTRACT, TORT OR
   OTHERWISE, ARISING FROM, OUT OF OR
   IN CONNECTION WITH THE SOFTWARE OR
   THE USE OR OTHER DEALINGS IN THE
   SOFTWARE.

項目別もくじ

パッケージ

     * Autoconf: [778]Autoconf-2.69
     * Automake: [779]Automake-1.12.3
     * Bash: [780]Bash-4.2
          + ツール: [781]Bash-4.2
     * Binutils: [782]Binutils-2.22
          + ツール, 1回め:
            [783]Binutils-2.22 - 1回め
          + ツール, 2回め:
            [784]Binutils-2.22 - 2回め
     * Bison: [785]Bison-2.6.2
     * Bootscripts:
       [786]LFS-ブートスクリプト-20120901
          + 利用方法:
            [787]ブートスクリプトはどのようにして動くのか
     * Bzip2: [788]Bzip2-1.0.6
          + ツール: [789]Bzip2-1.0.6
     * Check: [790]Check-0.9.8
     * Coreutils: [791]Coreutils-8.19
          + ツール: [792]Coreutils-8.19
     * DejaGNU: [793]DejaGNU-1.5
     * Diffutils: [794]Diffutils-3.2
          + ツール: [795]Diffutils-3.2
     * E2fsprogs:
       [796]E2fsprogs-1.42.5
     * Expect: [797]Expect-5.45
     * File: [798]File-5.11
          + ツール: [799]File-5.11
     * Findutils: [800]Findutils-4.4.2
          + ツール: [801]Findutils-4.4.2
     * Flex: [802]Flex-2.5.37
     * Gawk: [803]Gawk-4.0.1
          + ツール: [804]Gawk-4.0.1
     * GCC: [805]GCC-4.7.1
          + ツール, 1回め: [806]GCC-4.7.1 -
            1回め
          + ツール, 2回め: [807]GCC-4.7.1 -
            2回め
     * GDBM: [808]GDBM-1.10
     * Gettext: [809]Gettext-0.18.1.1
          + ツール: [810]Gettext-0.18.1.1
     * Glibc: [811]Glibc-2.16.0
          + ツール: [812]Glibc-2.16.0
     * GMP: [813]GMP-5.0.5
     * Grep: [814]Grep-2.14
          + ツール: [815]Grep-2.14
     * Groff: [816]Groff-1.21
     * GRUB: [817]GRUB-2.00
     * Gzip: [818]Gzip-1.5
          + ツール: [819]Gzip-1.5
     * Iana-Etc: [820]Iana-Etc-2.30
     * Inetutils: [821]Inetutils-1.9.1
     * IPRoute2: [822]IPRoute2-3.5.1
     * Kbd: [823]Kbd-1.15.3
     * Kmod: [824]Kmod-9
     * Less: [825]Less-444
     * Libpipeline:
       [826]Libpipeline-1.2.1
     * Libtool: [827]Libtool-2.4.2
     * Linux: [828]Linux-3.5.2
          + API ヘッダー: [829]Linux-3.5.2
            API ヘッダー
          + ツール, API ヘッダー:
            [830]Linux-3.5.2 API ヘッダー
     * M4: [831]M4-1.4.16
          + ツール: [832]M4-1.4.16
     * Make: [833]Make-3.82
          + ツール: [834]Make-3.82
     * Man-DB: [835]Man-DB-2.6.2
     * Man-pages: [836]Man-pages-3.42
     * MPC: [837]MPC-1.0
     * MPFR: [838]MPFR-3.1.1
     * Ncurses: [839]Ncurses-5.9
          + ツール: [840]Ncurses-5.9
     * Patch: [841]Patch-2.6.1
          + ツール: [842]Patch-2.6.1
     * Perl: [843]Perl-5.16.1
          + ツール: [844]Perl-5.16.1
     * pkgconfig: [845]Pkg-config-0.27
     * Procps: [846]Procps-3.2.8
     * Psmisc: [847]Psmisc-22.19
     * rc.site: [848]rc.site ファイル
     * Readline: [849]Readline-6.2
     * Sed: [850]Sed-4.2.1
          + ツール: [851]Sed-4.2.1
     * Shadow: [852]Shadow-4.1.5.1
          + 設定: [853]Shadow の設定
     * Sysklogd: [854]Sysklogd-1.5
          + 設定: [855]Sysklogd の設定
     * Sysvinit: [856]Sysvinit-2.88dsf
          + 設定: [857]Sysvinit の設定
     * Tar: [858]Tar-1.26
          + ツール: [859]Tar-1.26
     * Tcl: [860]Tcl-8.5.12
     * Texinfo: [861]Texinfo-4.13a
          + ツール: [862]Texinfo-4.13a
     * Udev: [863]Udev-188
       (systemd-188 から抽出)
          + 利用方法: [864]LFS
            システムにおけるデバイスとモジュールの扱い
     * Util-linux:
       [865]Util-linux-2.21.2
     * Vim: [866]Vim-7.3
     * xz: [867]Xz-5.0.4
          + ツール: [868]Xz-5.0.4
     * Zlib: [869]Zlib-1.2.7

プログラム

     * a2p: [870]Perl-5.16.1 --
       [871]説明
     * accessdb: [872]Man-DB-2.6.2 --
       [873]説明
     * acinstall: [874]Automake-1.12.3
       -- [875]説明
     * aclocal: [876]Automake-1.12.3
       -- [877]説明
     * aclocal-1.12:
       [878]Automake-1.12.3 -- [879]説明
     * addftinfo: [880]Groff-1.21 --
       [881]説明
     * addpart: [882]Util-linux-2.21.2
       -- [883]説明
     * addr2line: [884]Binutils-2.22
       -- [885]説明
     * afmtodit: [886]Groff-1.21 --
       [887]説明
     * agetty: [888]Util-linux-2.21.2
       -- [889]説明
     * apropos: [890]Man-DB-2.6.2 --
       [891]説明
     * ar: [892]Binutils-2.22 --
       [893]説明
     * as: [894]Binutils-2.22 --
       [895]説明
     * ata_id: [896]Udev-188
       (systemd-188 から抽出) -- [897]説明
     * autoconf: [898]Autoconf-2.69 --
       [899]説明
     * autoheader: [900]Autoconf-2.69
       -- [901]説明
     * autom4te: [902]Autoconf-2.69 --
       [903]説明
     * automake: [904]Automake-1.12.3
       -- [905]説明
     * automake-1.12:
       [906]Automake-1.12.3 -- [907]説明
     * autopoint:
       [908]Gettext-0.18.1.1 --
       [909]説明
     * autoreconf: [910]Autoconf-2.69
       -- [911]説明
     * autoscan: [912]Autoconf-2.69 --
       [913]説明
     * autoupdate: [914]Autoconf-2.69
       -- [915]説明
     * awk: [916]Gawk-4.0.1 -- [917]説明
     * badblocks:
       [918]E2fsprogs-1.42.5 --
       [919]説明
     * base64: [920]Coreutils-8.19 --
       [921]説明
     * basename: [922]Coreutils-8.19
       -- [923]説明
     * bash: [924]Bash-4.2 -- [925]説明
     * bashbug: [926]Bash-4.2 --
       [927]説明
     * bigram: [928]Findutils-4.4.2 --
       [929]説明
     * bison: [930]Bison-2.6.2 --
       [931]説明
     * blkid: [932]Util-linux-2.21.2
       -- [933]説明
     * blockdev:
       [934]Util-linux-2.21.2 --
       [935]説明
     * bootlogd: [936]Sysvinit-2.88dsf
       -- [937]説明
     * bunzip2: [938]Bzip2-1.0.6 --
       [939]説明
     * bzcat: [940]Bzip2-1.0.6 --
       [941]説明
     * bzcmp: [942]Bzip2-1.0.6 --
       [943]説明
     * bzdiff: [944]Bzip2-1.0.6 --
       [945]説明
     * bzegrep: [946]Bzip2-1.0.6 --
       [947]説明
     * bzfgrep: [948]Bzip2-1.0.6 --
       [949]説明
     * bzgrep: [950]Bzip2-1.0.6 --
       [951]説明
     * bzip2: [952]Bzip2-1.0.6 --
       [953]説明
     * bzip2recover: [954]Bzip2-1.0.6
       -- [955]説明
     * bzless: [956]Bzip2-1.0.6 --
       [957]説明
     * bzmore: [958]Bzip2-1.0.6 --
       [959]説明
     * c++: [960]GCC-4.7.1 -- [961]説明
     * c++filt: [962]Binutils-2.22 --
       [963]説明
     * c2ph: [964]Perl-5.16.1 --
       [965]説明
     * cal: [966]Util-linux-2.21.2 --
       [967]説明
     * captoinfo: [968]Ncurses-5.9 --
       [969]説明
     * cat: [970]Coreutils-8.19 --
       [971]説明
     * catchsegv: [972]Glibc-2.16.0 --
       [973]説明
     * catman: [974]Man-DB-2.6.2 --
       [975]説明
     * cc: [976]GCC-4.7.1 -- [977]説明
     * cdrom_id: [978]Udev-188
       (systemd-188 から抽出) -- [979]説明
     * cfdisk: [980]Util-linux-2.21.2
       -- [981]説明
     * chage: [982]Shadow-4.1.5.1 --
       [983]説明
     * chattr: [984]E2fsprogs-1.42.5
       -- [985]説明
     * chcon: [986]Coreutils-8.19 --
       [987]説明
     * chcpu: [988]Util-linux-2.21.2
       -- [989]説明
     * chem: [990]Groff-1.21 --
       [991]説明
     * chfn: [992]Shadow-4.1.5.1 --
       [993]説明
     * chgpasswd: [994]Shadow-4.1.5.1
       -- [995]説明
     * chgrp: [996]Coreutils-8.19 --
       [997]説明
     * chkdupexe:
       [998]Util-linux-2.21.2 --
       [999]説明
     * chmod: [1000]Coreutils-8.19 --
       [1001]説明
     * chown: [1002]Coreutils-8.19 --
       [1003]説明
     * chpasswd: [1004]Shadow-4.1.5.1
       -- [1005]説明
     * chroot: [1006]Coreutils-8.19 --
       [1007]説明
     * chrt: [1008]Util-linux-2.21.2
       -- [1009]説明
     * chsh: [1010]Shadow-4.1.5.1 --
       [1011]説明
     * chvt: [1012]Kbd-1.15.3 --
       [1013]説明
     * cksum: [1014]Coreutils-8.19 --
       [1015]説明
     * clear: [1016]Ncurses-5.9 --
       [1017]説明
     * cmp: [1018]Diffutils-3.2 --
       [1019]説明
     * code: [1020]Findutils-4.4.2 --
       [1021]説明
     * col: [1022]Util-linux-2.21.2 --
       [1023]説明
     * colcrt: [1024]Util-linux-2.21.2
       -- [1025]説明
     * collect: [1026]Udev-188
       (systemd-188 から抽出) -- [1027]説明
     * colrm: [1028]Util-linux-2.21.2
       -- [1029]説明
     * column: [1030]Util-linux-2.21.2
       -- [1031]説明
     * comm: [1032]Coreutils-8.19 --
       [1033]説明
     * compile: [1034]Automake-1.12.3
       -- [1035]説明
     * compile_et:
       [1036]E2fsprogs-1.42.5 --
       [1037]説明
     * config.charset:
       [1038]Gettext-0.18.1.1 --
       [1039]説明
     * config.guess:
       [1040]Automake-1.12.3 --
       [1041]説明
     * config.rpath:
       [1042]Gettext-0.18.1.1 --
       [1043]説明
     * config.sub:
       [1044]Automake-1.12.3 --
       [1045]説明
     * config_data: [1046]Perl-5.16.1
       -- [1047]説明
     * corelist: [1048]Perl-5.16.1 --
       [1049]説明
     * cp: [1050]Coreutils-8.19 --
       [1051]説明
     * cpan: [1052]Perl-5.16.1 --
       [1053]説明
     * cpan2dist: [1054]Perl-5.16.1 --
       [1055]説明
     * cpanp: [1056]Perl-5.16.1 --
       [1057]説明
     * cpanp-run-perl:
       [1058]Perl-5.16.1 -- [1059]説明
     * cpp: [1060]GCC-4.7.1 --
       [1061]説明
     * csplit: [1062]Coreutils-8.19 --
       [1063]説明
     * ctrlaltdel:
       [1064]Util-linux-2.21.2 --
       [1065]説明
     * ctstat: [1066]IPRoute2-3.5.1 --
       [1067]説明
     * cut: [1068]Coreutils-8.19 --
       [1069]説明
     * cytune: [1070]Util-linux-2.21.2
       -- [1071]説明
     * date: [1072]Coreutils-8.19 --
       [1073]説明
     * dd: [1074]Coreutils-8.19 --
       [1075]説明
     * deallocvt: [1076]Kbd-1.15.3 --
       [1077]説明
     * debugfs: [1078]E2fsprogs-1.42.5
       -- [1079]説明
     * delpart:
       [1080]Util-linux-2.21.2 --
       [1081]説明
     * depcomp: [1082]Automake-1.12.3
       -- [1083]説明
     * depmod: [1084]Kmod-9 --
       [1085]説明
     * df: [1086]Coreutils-8.19 --
       [1087]説明
     * dgawk: [1088]Gawk-4.0.1 --
       [1089]説明
     * diff: [1090]Diffutils-3.2 --
       [1091]説明
     * diff3: [1092]Diffutils-3.2 --
       [1093]説明
     * dir: [1094]Coreutils-8.19 --
       [1095]説明
     * dircolors: [1096]Coreutils-8.19
       -- [1097]説明
     * dirname: [1098]Coreutils-8.19
       -- [1099]説明
     * dmesg: [1100]Util-linux-2.21.2
       -- [1101]説明
     * dprofpp: [1102]Perl-5.16.1 --
       [1103]説明
     * du: [1104]Coreutils-8.19 --
       [1105]説明
     * dumpe2fs:
       [1106]E2fsprogs-1.42.5 --
       [1107]説明
     * dumpkeys: [1108]Kbd-1.15.3 --
       [1109]説明
     * e2freefrag:
       [1110]E2fsprogs-1.42.5 --
       [1111]説明
     * e2fsck: [1112]E2fsprogs-1.42.5
       -- [1113]説明
     * e2image: [1114]E2fsprogs-1.42.5
       -- [1115]説明
     * e2initrd_helper:
       [1116]E2fsprogs-1.42.5 --
       [1117]説明
     * e2label: [1118]E2fsprogs-1.42.5
       -- [1119]説明
     * e2undo: [1120]E2fsprogs-1.42.5
       -- [1121]説明
     * e4defrag:
       [1122]E2fsprogs-1.42.5 --
       [1123]説明
     * echo: [1124]Coreutils-8.19 --
       [1125]説明
     * egrep: [1126]Grep-2.14 --
       [1127]説明
     * elfedit: [1128]Binutils-2.22 --
       [1129]説明
     * elisp-comp:
       [1130]Automake-1.12.3 --
       [1131]説明
     * enc2xs: [1132]Perl-5.16.1 --
       [1133]説明
     * env: [1134]Coreutils-8.19 --
       [1135]説明
     * envsubst:
       [1136]Gettext-0.18.1.1 --
       [1137]説明
     * eqn: [1138]Groff-1.21 --
       [1139]説明
     * eqn2graph: [1140]Groff-1.21 --
       [1141]説明
     * ex: [1142]Vim-7.3 -- [1143]説明
     * expand: [1144]Coreutils-8.19 --
       [1145]説明
     * expect: [1146]Expect-5.45 --
       [1147]説明
     * expiry: [1148]Shadow-4.1.5.1 --
       [1149]説明
     * expr: [1150]Coreutils-8.19 --
       [1151]説明
     * factor: [1152]Coreutils-8.19 --
       [1153]説明
     * faillog: [1154]Shadow-4.1.5.1
       -- [1155]説明
     * fallocate:
       [1156]Util-linux-2.21.2 --
       [1157]説明
     * false: [1158]Coreutils-8.19 --
       [1159]説明
     * fdformat:
       [1160]Util-linux-2.21.2 --
       [1161]説明
     * fdisk: [1162]Util-linux-2.21.2
       -- [1163]説明
     * fgconsole: [1164]Kbd-1.15.3 --
       [1165]説明
     * fgrep: [1166]Grep-2.14 --
       [1167]説明
     * file: [1168]File-5.11 --
       [1169]説明
     * filefrag:
       [1170]E2fsprogs-1.42.5 --
       [1171]説明
     * find: [1172]Findutils-4.4.2 --
       [1173]説明
     * find2perl: [1174]Perl-5.16.1 --
       [1175]説明
     * findfs: [1176]Util-linux-2.21.2
       -- [1177]説明
     * findmnt:
       [1178]Util-linux-2.21.2 --
       [1179]説明
     * flex: [1180]Flex-2.5.37 --
       [1181]説明
     * flock: [1182]Util-linux-2.21.2
       -- [1183]説明
     * fmt: [1184]Coreutils-8.19 --
       [1185]説明
     * fold: [1186]Coreutils-8.19 --
       [1187]説明
     * frcode: [1188]Findutils-4.4.2
       -- [1189]説明
     * free: [1190]Procps-3.2.8 --
       [1191]説明
     * fsck: [1192]Util-linux-2.21.2
       -- [1193]説明
     * fsck.cramfs:
       [1194]Util-linux-2.21.2 --
       [1195]説明
     * fsck.ext2:
       [1196]E2fsprogs-1.42.5 --
       [1197]説明
     * fsck.ext3:
       [1198]E2fsprogs-1.42.5 --
       [1199]説明
     * fsck.ext4:
       [1200]E2fsprogs-1.42.5 --
       [1201]説明
     * fsck.ext4dev:
       [1202]E2fsprogs-1.42.5 --
       [1203]説明
     * fsck.minix:
       [1204]Util-linux-2.21.2 --
       [1205]説明
     * fsfreeze:
       [1206]Util-linux-2.21.2 --
       [1207]説明
     * fstab-decode:
       [1208]Sysvinit-2.88dsf --
       [1209]説明
     * fstrim: [1210]Util-linux-2.21.2
       -- [1211]説明
     * ftp: [1212]Inetutils-1.9.1 --
       [1213]説明
     * fuser: [1214]Psmisc-22.19 --
       [1215]説明
     * g++: [1216]GCC-4.7.1 --
       [1217]説明
     * gawk: [1218]Gawk-4.0.1 --
       [1219]説明
     * gawk-4.0.1: [1220]Gawk-4.0.1 --
       [1221]説明
     * gcc: [1222]GCC-4.7.1 --
       [1223]説明
     * gccbug: [1224]GCC-4.7.1 --
       [1225]説明
     * gcov: [1226]GCC-4.7.1 --
       [1227]説明
     * gdiffmk: [1228]Groff-1.21 --
       [1229]説明
     * gencat: [1230]Glibc-2.16.0 --
       [1231]説明
     * genl: [1232]IPRoute2-3.5.1 --
       [1233]説明
     * geqn: [1234]Groff-1.21 --
       [1235]説明
     * getconf: [1236]Glibc-2.16.0 --
       [1237]説明
     * getent: [1238]Glibc-2.16.0 --
       [1239]説明
     * getkeycodes: [1240]Kbd-1.15.3
       -- [1241]説明
     * getopt: [1242]Util-linux-2.21.2
       -- [1243]説明
     * gettext: [1244]Gettext-0.18.1.1
       -- [1245]説明
     * gettext.sh:
       [1246]Gettext-0.18.1.1 --
       [1247]説明
     * gettextize:
       [1248]Gettext-0.18.1.1 --
       [1249]説明
     * gpasswd: [1250]Shadow-4.1.5.1
       -- [1251]説明
     * gprof: [1252]Binutils-2.22 --
       [1253]説明
     * grap2graph: [1254]Groff-1.21 --
       [1255]説明
     * grcat: [1256]Gawk-4.0.1 --
       [1257]説明
     * grep: [1258]Grep-2.14 --
       [1259]説明
     * grn: [1260]Groff-1.21 --
       [1261]説明
     * grodvi: [1262]Groff-1.21 --
       [1263]説明
     * groff: [1264]Groff-1.21 --
       [1265]説明
     * groffer: [1266]Groff-1.21 --
       [1267]説明
     * grog: [1268]Groff-1.21 --
       [1269]説明
     * grolbp: [1270]Groff-1.21 --
       [1271]説明
     * grolj4: [1272]Groff-1.21 --
       [1273]説明
     * grops: [1274]Groff-1.21 --
       [1275]説明
     * grotty: [1276]Groff-1.21 --
       [1277]説明
     * groupadd: [1278]Shadow-4.1.5.1
       -- [1279]説明
     * groupdel: [1280]Shadow-4.1.5.1
       -- [1281]説明
     * groupmems: [1282]Shadow-4.1.5.1
       -- [1283]説明
     * groupmod: [1284]Shadow-4.1.5.1
       -- [1285]説明
     * groups: [1286]Coreutils-8.19 --
       [1287]説明
     * grpck: [1288]Shadow-4.1.5.1 --
       [1289]説明
     * grpconv: [1290]Shadow-4.1.5.1
       -- [1291]説明
     * grpunconv: [1292]Shadow-4.1.5.1
       -- [1293]説明
     * grub-bin2h: [1294]GRUB-2.00 --
       [1295]説明
     * grub-bios-setup:
       [1296]GRUB-2.00 -- [1297]説明
     * grub-editenv: [1298]GRUB-2.00
       -- [1299]説明
     * grub-fstest: [1300]GRUB-2.00 --
       [1301]説明
     * grub-install: [1302]GRUB-2.00
       -- [1303]説明
     * grub-kbdcomp: [1304]GRUB-2.00
       -- [1305]説明
     * grub-menulst2cfg:
       [1306]GRUB-2.00 -- [1307]説明
     * grub-mkconfig: [1308]GRUB-2.00
       -- [1309]説明
     * grub-mkdevicemap:
       [1310]GRUB-2.00 -- [1311]説明
     * grub-mkimage: [1312]GRUB-2.00
       -- [1313]説明
     * grub-mklayout: [1314]GRUB-2.00
       -- [1315]説明
     * grub-mknetdir: [1316]GRUB-2.00
       -- [1317]説明
     * grub-mkpasswd-pbkdf2:
       [1318]GRUB-2.00 -- [1319]説明
     * grub-mkrelpath: [1320]GRUB-2.00
       -- [1321]説明
     * grub-mkrescue: [1322]GRUB-2.00
       -- [1323]説明
     * grub-mkstandalone:
       [1324]GRUB-2.00 -- [1325]説明
     * grub-ofpathname:
       [1326]GRUB-2.00 -- [1327]説明
     * grub-probe: [1328]GRUB-2.00 --
       [1329]説明
     * grub-reboot: [1330]GRUB-2.00 --
       [1331]説明
     * grub-script-check:
       [1332]GRUB-2.00 -- [1333]説明
     * grub-set-default:
       [1334]GRUB-2.00 -- [1335]説明
     * grub-setup: [1336]GRUB-2.00 --
       [1337]説明
     * grub-setup: [1338]GRUB-2.00 --
       [1339]説明
     * gtbl: [1340]Groff-1.21 --
       [1341]説明
     * gunzip: [1342]Gzip-1.5 --
       [1343]説明
     * gzexe: [1344]Gzip-1.5 --
       [1345]説明
     * gzip: [1346]Gzip-1.5 --
       [1347]説明
     * h2ph: [1348]Perl-5.16.1 --
       [1349]説明
     * h2xs: [1350]Perl-5.16.1 --
       [1351]説明
     * halt: [1352]Sysvinit-2.88dsf --
       [1353]説明
     * head: [1354]Coreutils-8.19 --
       [1355]説明
     * hexdump:
       [1356]Util-linux-2.21.2 --
       [1357]説明
     * hostid: [1358]Coreutils-8.19 --
       [1359]説明
     * hostname: [1360]Inetutils-1.9.1
       -- [1361]説明
     * hostname:
       [1362]Gettext-0.18.1.1 --
       [1363]説明
     * hpftodit: [1364]Groff-1.21 --
       [1365]説明
     * hwclock:
       [1366]Util-linux-2.21.2 --
       [1367]説明
     * i386: [1368]Util-linux-2.21.2
       -- [1369]説明
     * iconv: [1370]Glibc-2.16.0 --
       [1371]説明
     * iconvconfig: [1372]Glibc-2.16.0
       -- [1373]説明
     * id: [1374]Coreutils-8.19 --
       [1375]説明
     * ifcfg: [1376]IPRoute2-3.5.1 --
       [1377]説明
     * ifnames: [1378]Autoconf-2.69 --
       [1379]説明
     * ifstat: [1380]IPRoute2-3.5.1 --
       [1381]説明
     * igawk: [1382]Gawk-4.0.1 --
       [1383]説明
     * indxbib: [1384]Groff-1.21 --
       [1385]説明
     * info: [1386]Texinfo-4.13a --
       [1387]説明
     * infocmp: [1388]Ncurses-5.9 --
       [1389]説明
     * infokey: [1390]Texinfo-4.13a --
       [1391]説明
     * infotocap: [1392]Ncurses-5.9 --
       [1393]説明
     * init: [1394]Sysvinit-2.88dsf --
       [1395]説明
     * insmod: [1396]Kmod-9 --
       [1397]説明
     * install: [1398]Coreutils-8.19
       -- [1399]説明
     * install-info:
       [1400]Texinfo-4.13a -- [1401]説明
     * install-sh:
       [1402]Automake-1.12.3 --
       [1403]説明
     * instmodsh: [1404]Perl-5.16.1 --
       [1405]説明
     * ionice: [1406]Util-linux-2.21.2
       -- [1407]説明
     * ip: [1408]IPRoute2-3.5.1 --
       [1409]説明
     * ipcmk: [1410]Util-linux-2.21.2
       -- [1411]説明
     * ipcrm: [1412]Util-linux-2.21.2
       -- [1413]説明
     * ipcs: [1414]Util-linux-2.21.2
       -- [1415]説明
     * isosize:
       [1416]Util-linux-2.21.2 --
       [1417]説明
     * join: [1418]Coreutils-8.19 --
       [1419]説明
     * json_pp: [1420]Perl-5.16.1 --
       [1421]説明
     * kbdrate: [1422]Kbd-1.15.3 --
       [1423]説明
     * kbd_mode: [1424]Kbd-1.15.3 --
       [1425]説明
     * kill: [1426]Procps-3.2.8 --
       [1427]説明
     * killall: [1428]Psmisc-22.19 --
       [1429]説明
     * killall5:
       [1430]Sysvinit-2.88dsf --
       [1431]説明
     * klogd: [1432]Sysklogd-1.5 --
       [1433]説明
     * kmod: [1434]Kmod-9 -- [1435]説明
     * last: [1436]Sysvinit-2.88dsf --
       [1437]説明
     * lastb: [1438]Sysvinit-2.88dsf
       -- [1439]説明
     * lastlog: [1440]Shadow-4.1.5.1
       -- [1441]説明
     * ld: [1442]Binutils-2.22 --
       [1443]説明
     * ld.bfd: [1444]Binutils-2.22 --
       [1445]説明
     * ldattach:
       [1446]Util-linux-2.21.2 --
       [1447]説明
     * ldconfig: [1448]Glibc-2.16.0 --
       [1449]説明
     * ldd: [1450]Glibc-2.16.0 --
       [1451]説明
     * lddlibc4: [1452]Glibc-2.16.0 --
       [1453]説明
     * less: [1454]Less-444 --
       [1455]説明
     * lessecho: [1456]Less-444 --
       [1457]説明
     * lesskey: [1458]Less-444 --
       [1459]説明
     * lex: [1460]Flex-2.5.37 --
       [1461]説明
     * lexgrog: [1462]Man-DB-2.6.2 --
       [1463]説明
     * lfskernel-3.5.2:
       [1464]Linux-3.5.2 -- [1465]説明
     * libnetcfg: [1466]Perl-5.16.1 --
       [1467]説明
     * libtool: [1468]Libtool-2.4.2 --
       [1469]説明
     * libtoolize: [1470]Libtool-2.4.2
       -- [1471]説明
     * link: [1472]Coreutils-8.19 --
       [1473]説明
     * linux32:
       [1474]Util-linux-2.21.2 --
       [1475]説明
     * linux64:
       [1476]Util-linux-2.21.2 --
       [1477]説明
     * lkbib: [1478]Groff-1.21 --
       [1479]説明
     * ln: [1480]Coreutils-8.19 --
       [1481]説明
     * lnstat: [1482]IPRoute2-3.5.1 --
       [1483]説明
     * loadkeys: [1484]Kbd-1.15.3 --
       [1485]説明
     * loadunimap: [1486]Kbd-1.15.3 --
       [1487]説明
     * locale: [1488]Glibc-2.16.0 --
       [1489]説明
     * localedef: [1490]Glibc-2.16.0
       -- [1491]説明
     * locate: [1492]Findutils-4.4.2
       -- [1493]説明
     * logger: [1494]Util-linux-2.21.2
       -- [1495]説明
     * login: [1496]Shadow-4.1.5.1 --
       [1497]説明
     * logname: [1498]Coreutils-8.19
       -- [1499]説明
     * logoutd: [1500]Shadow-4.1.5.1
       -- [1501]説明
     * logsave: [1502]E2fsprogs-1.42.5
       -- [1503]説明
     * look: [1504]Util-linux-2.21.2
       -- [1505]説明
     * lookbib: [1506]Groff-1.21 --
       [1507]説明
     * losetup:
       [1508]Util-linux-2.21.2 --
       [1509]説明
     * ls: [1510]Coreutils-8.19 --
       [1511]説明
     * lsattr: [1512]E2fsprogs-1.42.5
       -- [1513]説明
     * lsblk: [1514]Util-linux-2.21.2
       -- [1515]説明
     * lscpu: [1516]Util-linux-2.21.2
       -- [1517]説明
     * lsmod: [1518]Kmod-9 -- [1519]説明
     * lzcat: [1520]Xz-5.0.4 --
       [1521]説明
     * lzcmp: [1522]Xz-5.0.4 --
       [1523]説明
     * lzdiff: [1524]Xz-5.0.4 --
       [1525]説明
     * lzegrep: [1526]Xz-5.0.4 --
       [1527]説明
     * lzfgrep: [1528]Xz-5.0.4 --
       [1529]説明
     * lzgrep: [1530]Xz-5.0.4 --
       [1531]説明
     * lzless: [1532]Xz-5.0.4 --
       [1533]説明
     * lzma: [1534]Xz-5.0.4 --
       [1535]説明
     * lzmadec: [1536]Xz-5.0.4 --
       [1537]説明
     * lzmainfo: [1538]Xz-5.0.4 --
       [1539]説明
     * lzmore: [1540]Xz-5.0.4 --
       [1541]説明
     * m4: [1542]M4-1.4.16 -- [1543]説明
     * make: [1544]Make-3.82 --
       [1545]説明
     * makeinfo: [1546]Texinfo-4.13a
       -- [1547]説明
     * man: [1548]Man-DB-2.6.2 --
       [1549]説明
     * mandb: [1550]Man-DB-2.6.2 --
       [1551]説明
     * manpath: [1552]Man-DB-2.6.2 --
       [1553]説明
     * mapscrn: [1554]Kbd-1.15.3 --
       [1555]説明
     * mcookie:
       [1556]Util-linux-2.21.2 --
       [1557]説明
     * md5sum: [1558]Coreutils-8.19 --
       [1559]説明
     * mdate-sh: [1560]Automake-1.12.3
       -- [1561]説明
     * mesg: [1562]Sysvinit-2.88dsf --
       [1563]説明
     * missing: [1564]Automake-1.12.3
       -- [1565]説明
     * mkdir: [1566]Coreutils-8.19 --
       [1567]説明
     * mke2fs: [1568]E2fsprogs-1.42.5
       -- [1569]説明
     * mkfifo: [1570]Coreutils-8.19 --
       [1571]説明
     * mkfs: [1572]Util-linux-2.21.2
       -- [1573]説明
     * mkfs.bfs:
       [1574]Util-linux-2.21.2 --
       [1575]説明
     * mkfs.cramfs:
       [1576]Util-linux-2.21.2 --
       [1577]説明
     * mkfs.ext2:
       [1578]E2fsprogs-1.42.5 --
       [1579]説明
     * mkfs.ext3:
       [1580]E2fsprogs-1.42.5 --
       [1581]説明
     * mkfs.ext4:
       [1582]E2fsprogs-1.42.5 --
       [1583]説明
     * mkfs.ext4dev:
       [1584]E2fsprogs-1.42.5 --
       [1585]説明
     * mkfs.minix:
       [1586]Util-linux-2.21.2 --
       [1587]説明
     * mkinstalldirs:
       [1588]Automake-1.12.3 --
       [1589]説明
     * mklost+found:
       [1590]E2fsprogs-1.42.5 --
       [1591]説明
     * mknod: [1592]Coreutils-8.19 --
       [1593]説明
     * mkswap: [1594]Util-linux-2.21.2
       -- [1595]説明
     * mktemp: [1596]Coreutils-8.19 --
       [1597]説明
     * mk_cmds: [1598]E2fsprogs-1.42.5
       -- [1599]説明
     * mmroff: [1600]Groff-1.21 --
       [1601]説明
     * modinfo: [1602]Kmod-9 --
       [1603]説明
     * modprobe: [1604]Kmod-9 --
       [1605]説明
     * more: [1606]Util-linux-2.21.2
       -- [1607]説明
     * mount: [1608]Util-linux-2.21.2
       -- [1609]説明
     * mountpoint:
       [1610]Util-linux-2.21.2 --
       [1611]説明
     * msgattrib:
       [1612]Gettext-0.18.1.1 --
       [1613]説明
     * msgcat: [1614]Gettext-0.18.1.1
       -- [1615]説明
     * msgcmp: [1616]Gettext-0.18.1.1
       -- [1617]説明
     * msgcomm: [1618]Gettext-0.18.1.1
       -- [1619]説明
     * msgconv: [1620]Gettext-0.18.1.1
       -- [1621]説明
     * msgen: [1622]Gettext-0.18.1.1
       -- [1623]説明
     * msgexec: [1624]Gettext-0.18.1.1
       -- [1625]説明
     * msgfilter:
       [1626]Gettext-0.18.1.1 --
       [1627]説明
     * msgfmt: [1628]Gettext-0.18.1.1
       -- [1629]説明
     * msggrep: [1630]Gettext-0.18.1.1
       -- [1631]説明
     * msginit: [1632]Gettext-0.18.1.1
       -- [1633]説明
     * msgmerge:
       [1634]Gettext-0.18.1.1 --
       [1635]説明
     * msgunfmt:
       [1636]Gettext-0.18.1.1 --
       [1637]説明
     * msguniq: [1638]Gettext-0.18.1.1
       -- [1639]説明
     * mtrace: [1640]Glibc-2.16.0 --
       [1641]説明
     * mv: [1642]Coreutils-8.19 --
       [1643]説明
     * namei: [1644]Util-linux-2.21.2
       -- [1645]説明
     * ncursesw5-config:
       [1646]Ncurses-5.9 -- [1647]説明
     * neqn: [1648]Groff-1.21 --
       [1649]説明
     * newgrp: [1650]Shadow-4.1.5.1 --
       [1651]説明
     * newusers: [1652]Shadow-4.1.5.1
       -- [1653]説明
     * ngettext:
       [1654]Gettext-0.18.1.1 --
       [1655]説明
     * nice: [1656]Coreutils-8.19 --
       [1657]説明
     * nl: [1658]Coreutils-8.19 --
       [1659]説明
     * nm: [1660]Binutils-2.22 --
       [1661]説明
     * nohup: [1662]Coreutils-8.19 --
       [1663]説明
     * nologin: [1664]Shadow-4.1.5.1
       -- [1665]説明
     * nproc: [1666]Coreutils-8.19 --
       [1667]説明
     * nroff: [1668]Groff-1.21 --
       [1669]説明
     * nscd: [1670]Glibc-2.16.0 --
       [1671]説明
     * nstat: [1672]IPRoute2-3.5.1 --
       [1673]説明
     * objcopy: [1674]Binutils-2.22 --
       [1675]説明
     * objdump: [1676]Binutils-2.22 --
       [1677]説明
     * od: [1678]Coreutils-8.19 --
       [1679]説明
     * oldfind: [1680]Findutils-4.4.2
       -- [1681]説明
     * openvt: [1682]Kbd-1.15.3 --
       [1683]説明
     * partx: [1684]Util-linux-2.21.2
       -- [1685]説明
     * passwd: [1686]Shadow-4.1.5.1 --
       [1687]説明
     * paste: [1688]Coreutils-8.19 --
       [1689]説明
     * patch: [1690]Patch-2.6.1 --
       [1691]説明
     * pathchk: [1692]Coreutils-8.19
       -- [1693]説明
     * pcprofiledump:
       [1694]Glibc-2.16.0 -- [1695]説明
     * pdfroff: [1696]Groff-1.21 --
       [1697]説明
     * pdftexi2dvi:
       [1698]Texinfo-4.13a -- [1699]説明
     * peekfd: [1700]Psmisc-22.19 --
       [1701]説明
     * perl: [1702]Perl-5.16.1 --
       [1703]説明
     * perl5.16.1: [1704]Perl-5.16.1
       -- [1705]説明
     * perlbug: [1706]Perl-5.16.1 --
       [1707]説明
     * perldoc: [1708]Perl-5.16.1 --
       [1709]説明
     * perlivp: [1710]Perl-5.16.1 --
       [1711]説明
     * perlthanks: [1712]Perl-5.16.1
       -- [1713]説明
     * pfbtops: [1714]Groff-1.21 --
       [1715]説明
     * pg: [1716]Util-linux-2.21.2 --
       [1717]説明
     * pgawk: [1718]Gawk-4.0.1 --
       [1719]説明
     * pgawk-4.0.1: [1720]Gawk-4.0.1
       -- [1721]説明
     * pgrep: [1722]Procps-3.2.8 --
       [1723]説明
     * pic: [1724]Groff-1.21 --
       [1725]説明
     * pic2graph: [1726]Groff-1.21 --
       [1727]説明
     * piconv: [1728]Perl-5.16.1 --
       [1729]説明
     * pidof: [1730]Sysvinit-2.88dsf
       -- [1731]説明
     * ping: [1732]Inetutils-1.9.1 --
       [1733]説明
     * ping6: [1734]Inetutils-1.9.1 --
       [1735]説明
     * pinky: [1736]Coreutils-8.19 --
       [1737]説明
     * pivot_root:
       [1738]Util-linux-2.21.2 --
       [1739]説明
     * pkg-config:
       [1740]Pkg-config-0.27 --
       [1741]説明
     * pkill: [1742]Procps-3.2.8 --
       [1743]説明
     * pl2pm: [1744]Perl-5.16.1 --
       [1745]説明
     * pmap: [1746]Procps-3.2.8 --
       [1747]説明
     * pod2html: [1748]Perl-5.16.1 --
       [1749]説明
     * pod2latex: [1750]Perl-5.16.1 --
       [1751]説明
     * pod2man: [1752]Perl-5.16.1 --
       [1753]説明
     * pod2text: [1754]Perl-5.16.1 --
       [1755]説明
     * pod2usage: [1756]Perl-5.16.1 --
       [1757]説明
     * podchecker: [1758]Perl-5.16.1
       -- [1759]説明
     * podselect: [1760]Perl-5.16.1 --
       [1761]説明
     * post-grohtml: [1762]Groff-1.21
       -- [1763]説明
     * poweroff:
       [1764]Sysvinit-2.88dsf --
       [1765]説明
     * pr: [1766]Coreutils-8.19 --
       [1767]説明
     * pre-grohtml: [1768]Groff-1.21
       -- [1769]説明
     * preconv: [1770]Groff-1.21 --
       [1771]説明
     * printenv: [1772]Coreutils-8.19
       -- [1773]説明
     * printf: [1774]Coreutils-8.19 --
       [1775]説明
     * prlimit:
       [1776]Util-linux-2.21.2 --
       [1777]説明
     * prove: [1778]Perl-5.16.1 --
       [1779]説明
     * prtstat: [1780]Psmisc-22.19 --
       [1781]説明
     * ps: [1782]Procps-3.2.8 --
       [1783]説明
     * psed: [1784]Perl-5.16.1 --
       [1785]説明
     * psfaddtable: [1786]Kbd-1.15.3
       -- [1787]説明
     * psfgettable: [1788]Kbd-1.15.3
       -- [1789]説明
     * psfstriptable: [1790]Kbd-1.15.3
       -- [1791]説明
     * psfxtable: [1792]Kbd-1.15.3 --
       [1793]説明
     * pstree: [1794]Psmisc-22.19 --
       [1795]説明
     * pstree.x11: [1796]Psmisc-22.19
       -- [1797]説明
     * pstruct: [1798]Perl-5.16.1 --
       [1799]説明
     * ptar: [1800]Perl-5.16.1 --
       [1801]説明
     * ptardiff: [1802]Perl-5.16.1 --
       [1803]説明
     * ptargrep: [1804]Perl-5.16.1 --
       [1805]説明
     * ptx: [1806]Coreutils-8.19 --
       [1807]説明
     * pt_chown: [1808]Glibc-2.16.0 --
       [1809]説明
     * pwcat: [1810]Gawk-4.0.1 --
       [1811]説明
     * pwck: [1812]Shadow-4.1.5.1 --
       [1813]説明
     * pwconv: [1814]Shadow-4.1.5.1 --
       [1815]説明
     * pwd: [1816]Coreutils-8.19 --
       [1817]説明
     * pwdx: [1818]Procps-3.2.8 --
       [1819]説明
     * pwunconv: [1820]Shadow-4.1.5.1
       -- [1821]説明
     * py-compile:
       [1822]Automake-1.12.3 --
       [1823]説明
     * ranlib: [1824]Binutils-2.22 --
       [1825]説明
     * raw: [1826]Util-linux-2.21.2 --
       [1827]説明
     * rcp: [1828]Inetutils-1.9.1 --
       [1829]説明
     * readelf: [1830]Binutils-2.22 --
       [1831]説明
     * readlink: [1832]Coreutils-8.19
       -- [1833]説明
     * readprofile:
       [1834]Util-linux-2.21.2 --
       [1835]説明
     * realpath: [1836]Coreutils-8.19
       -- [1837]説明
     * reboot: [1838]Sysvinit-2.88dsf
       -- [1839]説明
     * recode-sr-latin:
       [1840]Gettext-0.18.1.1 --
       [1841]説明
     * refer: [1842]Groff-1.21 --
       [1843]説明
     * rename: [1844]Util-linux-2.21.2
       -- [1845]説明
     * renice: [1846]Util-linux-2.21.2
       -- [1847]説明
     * reset: [1848]Ncurses-5.9 --
       [1849]説明
     * resize2fs:
       [1850]E2fsprogs-1.42.5 --
       [1851]説明
     * rev: [1852]Util-linux-2.21.2 --
       [1853]説明
     * rexec: [1854]Inetutils-1.9.1 --
       [1855]説明
     * rlogin: [1856]Inetutils-1.9.1
       -- [1857]説明
     * rm: [1858]Coreutils-8.19 --
       [1859]説明
     * rmdir: [1860]Coreutils-8.19 --
       [1861]説明
     * rmmod: [1862]Kmod-9 -- [1863]説明
     * rmt: [1864]Tar-1.26 -- [1865]説明
     * roff2dvi: [1866]Groff-1.21 --
       [1867]説明
     * roff2html: [1868]Groff-1.21 --
       [1869]説明
     * roff2pdf: [1870]Groff-1.21 --
       [1871]説明
     * roff2ps: [1872]Groff-1.21 --
       [1873]説明
     * roff2text: [1874]Groff-1.21 --
       [1875]説明
     * roff2x: [1876]Groff-1.21 --
       [1877]説明
     * routef: [1878]IPRoute2-3.5.1 --
       [1879]説明
     * routel: [1880]IPRoute2-3.5.1 --
       [1881]説明
     * rpcgen: [1882]Glibc-2.16.0 --
       [1883]説明
     * rsh: [1884]Inetutils-1.9.1 --
       [1885]説明
     * rtacct: [1886]IPRoute2-3.5.1 --
       [1887]説明
     * rtcwake:
       [1888]Util-linux-2.21.2 --
       [1889]説明
     * rtmon: [1890]IPRoute2-3.5.1 --
       [1891]説明
     * rtpr: [1892]IPRoute2-3.5.1 --
       [1893]説明
     * rtstat: [1894]IPRoute2-3.5.1 --
       [1895]説明
     * runcon: [1896]Coreutils-8.19 --
       [1897]説明
     * runlevel:
       [1898]Sysvinit-2.88dsf --
       [1899]説明
     * runtest: [1900]DejaGNU-1.5 --
       [1901]説明
     * rview: [1902]Vim-7.3 --
       [1903]説明
     * rvim: [1904]Vim-7.3 -- [1905]説明
     * s2p: [1906]Perl-5.16.1 --
       [1907]説明
     * script: [1908]Util-linux-2.21.2
       -- [1909]説明
     * scriptreplay:
       [1910]Util-linux-2.21.2 --
       [1911]説明
     * scsi_id: [1912]Udev-188
       (systemd-188 から抽出) -- [1913]説明
     * sdiff: [1914]Diffutils-3.2 --
       [1915]説明
     * sed: [1916]Sed-4.2.1 --
       [1917]説明
     * seq: [1918]Coreutils-8.19 --
       [1919]説明
     * setarch:
       [1920]Util-linux-2.21.2 --
       [1921]説明
     * setfont: [1922]Kbd-1.15.3 --
       [1923]説明
     * setkeycodes: [1924]Kbd-1.15.3
       -- [1925]説明
     * setleds: [1926]Kbd-1.15.3 --
       [1927]説明
     * setmetamode: [1928]Kbd-1.15.3
       -- [1929]説明
     * setsid: [1930]Util-linux-2.21.2
       -- [1931]説明
     * setterm:
       [1932]Util-linux-2.21.2 --
       [1933]説明
     * sfdisk: [1934]Util-linux-2.21.2
       -- [1935]説明
     * sg: [1936]Shadow-4.1.5.1 --
       [1937]説明
     * sh: [1938]Bash-4.2 -- [1939]説明
     * sha1sum: [1940]Coreutils-8.19
       -- [1941]説明
     * sha224sum: [1942]Coreutils-8.19
       -- [1943]説明
     * sha256sum: [1944]Coreutils-8.19
       -- [1945]説明
     * sha384sum: [1946]Coreutils-8.19
       -- [1947]説明
     * sha512sum: [1948]Coreutils-8.19
       -- [1949]説明
     * shasum: [1950]Perl-5.16.1 --
       [1951]説明
     * showconsolefont:
       [1952]Kbd-1.15.3 -- [1953]説明
     * showkey: [1954]Kbd-1.15.3 --
       [1955]説明
     * shred: [1956]Coreutils-8.19 --
       [1957]説明
     * shuf: [1958]Coreutils-8.19 --
       [1959]説明
     * shutdown:
       [1960]Sysvinit-2.88dsf --
       [1961]説明
     * size: [1962]Binutils-2.22 --
       [1963]説明
     * skill: [1964]Procps-3.2.8 --
       [1965]説明
     * slabtop: [1966]Procps-3.2.8 --
       [1967]説明
     * sleep: [1968]Coreutils-8.19 --
       [1969]説明
     * sln: [1970]Glibc-2.16.0 --
       [1971]説明
     * snice: [1972]Procps-3.2.8 --
       [1973]説明
     * soelim: [1974]Groff-1.21 --
       [1975]説明
     * sort: [1976]Coreutils-8.19 --
       [1977]説明
     * sotruss: [1978]Glibc-2.16.0 --
       [1979]説明
     * splain: [1980]Perl-5.16.1 --
       [1981]説明
     * split: [1982]Coreutils-8.19 --
       [1983]説明
     * sprof: [1984]Glibc-2.16.0 --
       [1985]説明
     * ss: [1986]IPRoute2-3.5.1 --
       [1987]説明
     * stat: [1988]Coreutils-8.19 --
       [1989]説明
     * stdbuf: [1990]Coreutils-8.19 --
       [1991]説明
     * strings: [1992]Binutils-2.22 --
       [1993]説明
     * strip: [1994]Binutils-2.22 --
       [1995]説明
     * stty: [1996]Coreutils-8.19 --
       [1997]説明
     * su: [1998]Shadow-4.1.5.1 --
       [1999]説明
     * sulogin: [2000]Sysvinit-2.88dsf
       -- [2001]説明
     * sum: [2002]Coreutils-8.19 --
       [2003]説明
     * swaplabel:
       [2004]Util-linux-2.21.2 --
       [2005]説明
     * swapoff:
       [2006]Util-linux-2.21.2 --
       [2007]説明
     * swapon: [2008]Util-linux-2.21.2
       -- [2009]説明
     * switch_root:
       [2010]Util-linux-2.21.2 --
       [2011]説明
     * symlink-tree:
       [2012]Automake-1.12.3 --
       [2013]説明
     * sync: [2014]Coreutils-8.19 --
       [2015]説明
     * sysctl: [2016]Procps-3.2.8 --
       [2017]説明
     * syslogd: [2018]Sysklogd-1.5 --
       [2019]説明
     * tabs: [2020]Ncurses-5.9 --
       [2021]説明
     * tac: [2022]Coreutils-8.19 --
       [2023]説明
     * tail: [2024]Coreutils-8.19 --
       [2025]説明
     * tailf: [2026]Util-linux-2.21.2
       -- [2027]説明
     * talk: [2028]Inetutils-1.9.1 --
       [2029]説明
     * tar: [2030]Tar-1.26 -- [2031]説明
     * taskset:
       [2032]Util-linux-2.21.2 --
       [2033]説明
     * tbl: [2034]Groff-1.21 --
       [2035]説明
     * tc: [2036]IPRoute2-3.5.1 --
       [2037]説明
     * tclsh: [2038]Tcl-8.5.12 --
       [2039]説明
     * tclsh8.5: [2040]Tcl-8.5.12 --
       [2041]説明
     * tee: [2042]Coreutils-8.19 --
       [2043]説明
     * telinit: [2044]Sysvinit-2.88dsf
       -- [2045]説明
     * telnet: [2046]Inetutils-1.9.1
       -- [2047]説明
     * test: [2048]Coreutils-8.19 --
       [2049]説明
     * testgdbm: [2050]GDBM-1.10 --
       [2051]説明
     * texi2dvi: [2052]Texinfo-4.13a
       -- [2053]説明
     * texi2pdf: [2054]Texinfo-4.13a
       -- [2055]説明
     * texindex: [2056]Texinfo-4.13a
       -- [2057]説明
     * tfmtodit: [2058]Groff-1.21 --
       [2059]説明
     * tftp: [2060]Inetutils-1.9.1 --
       [2061]説明
     * tic: [2062]Ncurses-5.9 --
       [2063]説明
     * timeout: [2064]Coreutils-8.19
       -- [2065]説明
     * tload: [2066]Procps-3.2.8 --
       [2067]説明
     * toe: [2068]Ncurses-5.9 --
       [2069]説明
     * top: [2070]Procps-3.2.8 --
       [2071]説明
     * touch: [2072]Coreutils-8.19 --
       [2073]説明
     * tput: [2074]Ncurses-5.9 --
       [2075]説明
     * tr: [2076]Coreutils-8.19 --
       [2077]説明
     * traceroute:
       [2078]Inetutils-1.9.1 --
       [2079]説明
     * troff: [2080]Groff-1.21 --
       [2081]説明
     * true: [2082]Coreutils-8.19 --
       [2083]説明
     * truncate: [2084]Coreutils-8.19
       -- [2085]説明
     * tset: [2086]Ncurses-5.9 --
       [2087]説明
     * tsort: [2088]Coreutils-8.19 --
       [2089]説明
     * tty: [2090]Coreutils-8.19 --
       [2091]説明
     * tune2fs: [2092]E2fsprogs-1.42.5
       -- [2093]説明
     * tunelp: [2094]Util-linux-2.21.2
       -- [2095]説明
     * tzselect: [2096]Glibc-2.16.0 --
       [2097]説明
     * udevadm: [2098]Udev-188
       (systemd-188 から抽出) -- [2099]説明
     * udevd: [2100]Udev-188
       (systemd-188 から抽出) -- [2101]説明
     * ul: [2102]Util-linux-2.21.2 --
       [2103]説明
     * umount: [2104]Util-linux-2.21.2
       -- [2105]説明
     * uname: [2106]Coreutils-8.19 --
       [2107]説明
     * uncompress: [2108]Gzip-1.5 --
       [2109]説明
     * unexpand: [2110]Coreutils-8.19
       -- [2111]説明
     * unicode_start: [2112]Kbd-1.15.3
       -- [2113]説明
     * unicode_stop: [2114]Kbd-1.15.3
       -- [2115]説明
     * uniq: [2116]Coreutils-8.19 --
       [2117]説明
     * unlink: [2118]Coreutils-8.19 --
       [2119]説明
     * unlzma: [2120]Xz-5.0.4 --
       [2121]説明
     * unshare:
       [2122]Util-linux-2.21.2 --
       [2123]説明
     * unxz: [2124]Xz-5.0.4 --
       [2125]説明
     * updatedb: [2126]Findutils-4.4.2
       -- [2127]説明
     * uptime: [2128]Procps-3.2.8 --
       [2129]説明
     * useradd: [2130]Shadow-4.1.5.1
       -- [2131]説明
     * userdel: [2132]Shadow-4.1.5.1
       -- [2133]説明
     * usermod: [2134]Shadow-4.1.5.1
       -- [2135]説明
     * users: [2136]Coreutils-8.19 --
       [2137]説明
     * utmpdump:
       [2138]Sysvinit-2.88dsf --
       [2139]説明
     * uuidd: [2140]Util-linux-2.21.2
       -- [2141]説明
     * uuidgen:
       [2142]Util-linux-2.21.2 --
       [2143]説明
     * vdir: [2144]Coreutils-8.19 --
       [2145]説明
     * vi: [2146]Vim-7.3 -- [2147]説明
     * view: [2148]Vim-7.3 -- [2149]説明
     * vigr: [2150]Shadow-4.1.5.1 --
       [2151]説明
     * vim: [2152]Vim-7.3 -- [2153]説明
     * vimdiff: [2154]Vim-7.3 --
       [2155]説明
     * vimtutor: [2156]Vim-7.3 --
       [2157]説明
     * vipw: [2158]Shadow-4.1.5.1 --
       [2159]説明
     * vmstat: [2160]Procps-3.2.8 --
       [2161]説明
     * w: [2162]Procps-3.2.8 --
       [2163]説明
     * wall: [2164]Util-linux-2.21.2
       -- [2165]説明
     * watch: [2166]Procps-3.2.8 --
       [2167]説明
     * wc: [2168]Coreutils-8.19 --
       [2169]説明
     * whatis: [2170]Man-DB-2.6.2 --
       [2171]説明
     * whereis:
       [2172]Util-linux-2.21.2 --
       [2173]説明
     * who: [2174]Coreutils-8.19 --
       [2175]説明
     * whoami: [2176]Coreutils-8.19 --
       [2177]説明
     * wipefs: [2178]Util-linux-2.21.2
       -- [2179]説明
     * x86_64: [2180]Util-linux-2.21.2
       -- [2181]説明
     * xargs: [2182]Findutils-4.4.2 --
       [2183]説明
     * xgettext:
       [2184]Gettext-0.18.1.1 --
       [2185]説明
     * xsubpp: [2186]Perl-5.16.1 --
       [2187]説明
     * xtrace: [2188]Glibc-2.16.0 --
       [2189]説明
     * xxd: [2190]Vim-7.3 -- [2191]説明
     * xz: [2192]Xz-5.0.4 -- [2193]説明
     * xzcat: [2194]Xz-5.0.4 --
       [2195]説明
     * xzcmp: [2196]Xz-5.0.4 --
       [2197]説明
     * xzdec: [2198]Xz-5.0.4 --
       [2199]説明
     * xzdiff: [2200]Xz-5.0.4 --
       [2201]説明
     * xzegrep: [2202]Xz-5.0.4 --
       [2203]説明
     * xzfgrep: [2204]Xz-5.0.4 --
       [2205]説明
     * xzgrep: [2206]Xz-5.0.4 --
       [2207]説明
     * xzless: [2208]Xz-5.0.4 --
       [2209]説明
     * xzmore: [2210]Xz-5.0.4 --
       [2211]説明
     * yacc: [2212]Bison-2.6.2 --
       [2213]説明
     * yes: [2214]Coreutils-8.19 --
       [2215]説明
     * ylwrap: [2216]Automake-1.12.3
       -- [2217]説明
     * zcat: [2218]Gzip-1.5 --
       [2219]説明
     * zcmp: [2220]Gzip-1.5 --
       [2221]説明
     * zdiff: [2222]Gzip-1.5 --
       [2223]説明
     * zdump: [2224]Glibc-2.16.0 --
       [2225]説明
     * zegrep: [2226]Gzip-1.5 --
       [2227]説明
     * zfgrep: [2228]Gzip-1.5 --
       [2229]説明
     * zforce: [2230]Gzip-1.5 --
       [2231]説明
     * zgrep: [2232]Gzip-1.5 --
       [2233]説明
     * zic: [2234]Glibc-2.16.0 --
       [2235]説明
     * zless: [2236]Gzip-1.5 --
       [2237]説明
     * zmore: [2238]Gzip-1.5 --
       [2239]説明
     * znew: [2240]Gzip-1.5 --
       [2241]説明
     * zsoelim: [2242]Man-DB-2.6.2 --
       [2243]説明

ライブラリ

     * ld.so: [2244]Glibc-2.16.0 --
       [2245]説明
     * libanl: [2246]Glibc-2.16.0 --
       [2247]説明
     * libasprintf:
       [2248]Gettext-0.18.1.1 --
       [2249]説明
     * libbfd: [2250]Binutils-2.22 --
       [2251]説明
     * libblkid:
       [2252]Util-linux-2.21.2 --
       [2253]説明
     * libBrokenLocale:
       [2254]Glibc-2.16.0 -- [2255]説明
     * libbsd-compat:
       [2256]Glibc-2.16.0 -- [2257]説明
     * libbz2*: [2258]Bzip2-1.0.6 --
       [2259]説明
     * libc: [2260]Glibc-2.16.0 --
       [2261]説明
     * libcheck: [2262]Check-0.9.8 --
       [2263]説明
     * libcidn: [2264]Glibc-2.16.0 --
       [2265]説明
     * libcom_err:
       [2266]E2fsprogs-1.42.5 --
       [2267]説明
     * libcrypt: [2268]Glibc-2.16.0 --
       [2269]説明
     * libcurses: [2270]Ncurses-5.9 --
       [2271]説明
     * libdl: [2272]Glibc-2.16.0 --
       [2273]説明
     * libe2p: [2274]E2fsprogs-1.42.5
       -- [2275]説明
     * libexpect-5.45:
       [2276]Expect-5.45 -- [2277]説明
     * libext2fs:
       [2278]E2fsprogs-1.42.5 --
       [2279]説明
     * libfl.a: [2280]Flex-2.5.37 --
       [2281]説明
     * libform: [2282]Ncurses-5.9 --
       [2283]説明
     * libg: [2284]Glibc-2.16.0 --
       [2285]説明
     * libgcc*: [2286]GCC-4.7.1 --
       [2287]説明
     * libgcov: [2288]GCC-4.7.1 --
       [2289]説明
     * libgdbm: [2290]GDBM-1.10 --
       [2291]説明
     * libgettextlib:
       [2292]Gettext-0.18.1.1 --
       [2293]説明
     * libgettextpo:
       [2294]Gettext-0.18.1.1 --
       [2295]説明
     * libgettextsrc:
       [2296]Gettext-0.18.1.1 --
       [2297]説明
     * libgmp: [2298]GMP-5.0.5 --
       [2299]説明
     * libgmpxx: [2300]GMP-5.0.5 --
       [2301]説明
     * libgomp: [2302]GCC-4.7.1 --
       [2303]説明
     * libhistory: [2304]Readline-6.2
       -- [2305]説明
     * libiberty: [2306]Binutils-2.22
       -- [2307]説明
     * libieee: [2308]Glibc-2.16.0 --
       [2309]説明
     * libkmod: [2310]Kmod-9
     * libltdl: [2311]Libtool-2.4.2 --
       [2312]説明
     * liblto_plugin*: [2313]GCC-4.7.1
       -- [2314]説明
     * liblzma*: [2315]Xz-5.0.4 --
       [2316]説明
     * libm: [2317]Glibc-2.16.0 --
       [2318]説明
     * libmagic: [2319]File-5.11 --
       [2320]説明
     * libmcheck: [2321]Glibc-2.16.0
       -- [2322]説明
     * libmemusage: [2323]Glibc-2.16.0
       -- [2324]説明
     * libmenu: [2325]Ncurses-5.9 --
       [2326]説明
     * libmp: [2327]GMP-5.0.5 --
       [2328]説明
     * libmpc: [2329]MPC-1.0 --
       [2330]説明
     * libmpfr: [2331]MPFR-3.1.1 --
       [2332]説明
     * libmudflap*: [2333]GCC-4.7.1 --
       [2334]説明
     * libncurses: [2335]Ncurses-5.9
       -- [2336]説明
     * libnsl: [2337]Glibc-2.16.0 --
       [2338]説明
     * libnss: [2339]Glibc-2.16.0 --
       [2340]説明
     * libopcodes: [2341]Binutils-2.22
       -- [2342]説明
     * libpanel: [2343]Ncurses-5.9 --
       [2344]説明
     * libpcprofile:
       [2345]Glibc-2.16.0 -- [2346]説明
     * libpipeline:
       [2347]Libpipeline-1.2.1
     * libproc: [2348]Procps-3.2.8 --
       [2349]説明
     * libpthread: [2350]Glibc-2.16.0
       -- [2351]説明
     * libquadmath*: [2352]GCC-4.7.1
       -- [2353]説明
     * libquota:
       [2354]E2fsprogs-1.42.5 --
       [2355]説明
     * libreadline: [2356]Readline-6.2
       -- [2357]説明
     * libresolv: [2358]Glibc-2.16.0
       -- [2359]説明
     * librpcsvc: [2360]Glibc-2.16.0
       -- [2361]説明
     * librt: [2362]Glibc-2.16.0 --
       [2363]説明
     * libSegFault: [2364]Glibc-2.16.0
       -- [2365]説明
     * libss: [2366]E2fsprogs-1.42.5
       -- [2367]説明
     * libssp*: [2368]GCC-4.7.1 --
       [2369]説明
     * libstdbuf.so:
       [2370]Coreutils-8.19 --
       [2371]説明
     * libstdc++: [2372]GCC-4.7.1 --
       [2373]説明
     * libsupc++: [2374]GCC-4.7.1 --
       [2375]説明
     * libtcl8.5.so: [2376]Tcl-8.5.12
       -- [2377]説明
     * libtclstub8.5.a:
       [2378]Tcl-8.5.12 -- [2379]説明
     * libthread_db:
       [2380]Glibc-2.16.0 -- [2381]説明
     * libudev: [2382]Udev-188
       (systemd-188 から抽出) -- [2383]説明
     * libutil: [2384]Glibc-2.16.0 --
       [2385]説明
     * libuuid:
       [2386]Util-linux-2.21.2 --
       [2387]説明
     * liby.a: [2388]Bison-2.6.2 --
       [2389]説明
     * libz: [2390]Zlib-1.2.7 --
       [2391]説明
     * preloadable_libintl:
       [2392]Gettext-0.18.1.1 --
       [2393]説明

スクリプト

     * checkfs:
       [2394]LFS-ブートスクリプト-20120901 --
       [2395]説明
     * cleanfs:
       [2396]LFS-ブートスクリプト-20120901 --
       [2397]説明
     * console:
       [2398]LFS-ブートスクリプト-20120901 --
       [2399]説明
          + 設定: [2400]Linux コンソールの設定
     * functions:
       [2401]LFS-ブートスクリプト-20120901 --
       [2402]説明
     * halt:
       [2403]LFS-ブートスクリプト-20120901 --
       [2404]説明
     * hostname:
          + 設定: [2405]システムのホスト名の設定
     * ifdown:
       [2406]LFS-ブートスクリプト-20120901 --
       [2407]説明
     * ifup:
       [2408]LFS-ブートスクリプト-20120901 --
       [2409]説明
     * localnet:
       [2410]LFS-ブートスクリプト-20120901 --
       [2411]説明
          + /etc/hosts:
            [2412]/etc/hosts ファイルの設定
     * modules:
       [2413]LFS-ブートスクリプト-20120901 --
       [2414]説明
     * mountfs:
       [2415]LFS-ブートスクリプト-20120901 --
       [2416]説明
     * mountkernfs:
       [2417]LFS-ブートスクリプト-20120901 --
       [2418]説明
     * network:
       [2419]LFS-ブートスクリプト-20120901 --
       [2420]説明
          + /etc/hosts:
            [2421]/etc/hosts ファイルの設定
          + 設定: [2422]全般的なネットワークの設定
     * rc: [2423]LFS-ブートスクリプト-20120901
       -- [2424]説明
     * reboot:
       [2425]LFS-ブートスクリプト-20120901 --
       [2426]説明
     * sendsignals:
       [2427]LFS-ブートスクリプト-20120901 --
       [2428]説明
     * setclock:
       [2429]LFS-ブートスクリプト-20120901 --
       [2430]説明
          + 設定: [2431]Setclock
            スクリプトの設定
     * static:
       [2432]LFS-ブートスクリプト-20120901 --
       [2433]説明
     * swap:
       [2434]LFS-ブートスクリプト-20120901 --
       [2435]説明
     * sysctl:
       [2436]LFS-ブートスクリプト-20120901 --
       [2437]説明
     * sysklogd:
       [2438]LFS-ブートスクリプト-20120901 --
       [2439]説明
          + 設定: [2440]Sysklogd
            スクリプトの設定
     * template:
       [2441]LFS-ブートスクリプト-20120901 --
       [2442]説明
     * udev:
       [2443]LFS-ブートスクリプト-20120901 --
       [2444]説明
     * udev_retry:
       [2445]LFS-ブートスクリプト-20120901 --
       [2446]説明

その他

     * /boot/config-3.5.2:
       [2447]Linux-3.5.2 -- [2448]説明
     * /boot/System.map-3.5.2:
       [2449]Linux-3.5.2 -- [2450]説明
     * /dev/*: [2451]仮想カーネルファイルシステムの準備
     * /etc/fstab: [2452]/etc/fstab
       ファイルの生成
     * /etc/group:
       [2453]基本的なファイルとリンクの生成
     * /etc/hosts: [2454]/etc/hosts
       ファイルの設定
     * /etc/inittab: [2455]Sysvinit
       の設定
     * /etc/inputrc:
       [2456]/etc/inputrc ファイルの生成
     * /etc/ld.so.conf:
       [2457]ダイナミックローダー の設定
     * /etc/lfs-release: [2458]作業終了
     * /etc/localtime: [2459]Glibc の設定
     * /etc/modprobe.d/usb.conf:
       [2460]Linux モジュールのロード順の設定
     * /etc/nsswitch.conf: [2461]Glibc
       の設定
     * /etc/passwd:
       [2462]基本的なファイルとリンクの生成
     * /etc/profile: [2463]Bash
       シェルの初期起動ファイル
     * /etc/protocols:
       [2464]Iana-Etc-2.30
     * /etc/resolv.conf:
       [2465]/etc/resolv.conf ファイルの生成
     * /etc/services:
       [2466]Iana-Etc-2.30
     * /etc/syslog.conf:
       [2467]Sysklogd の設定
     * /etc/udev: [2468]Udev-188
       (systemd-188 から抽出) -- [2469]説明
     * /etc/vimrc: [2470]Vim の設定
     * /usr/include/asm-generic/*.h:
       [2471]Linux-3.5.2 API ヘッダー --
       [2472]説明
     * /usr/include/asm/*.h:
       [2473]Linux-3.5.2 API ヘッダー --
       [2474]説明
     * /usr/include/drm/*.h:
       [2475]Linux-3.5.2 API ヘッダー --
       [2476]説明
     * /usr/include/linux/*.h:
       [2477]Linux-3.5.2 API ヘッダー --
       [2478]説明
     * /usr/include/mtd/*.h:
       [2479]Linux-3.5.2 API ヘッダー --
       [2480]説明
     * /usr/include/rdma/*.h:
       [2481]Linux-3.5.2 API ヘッダー --
       [2482]説明
     * /usr/include/scsi/*.h:
       [2483]Linux-3.5.2 API ヘッダー --
       [2484]説明
     * /usr/include/sound/*.h:
       [2485]Linux-3.5.2 API ヘッダー --
       [2486]説明
     * /usr/include/video/*.h:
       [2487]Linux-3.5.2 API ヘッダー --
       [2488]説明
     * /usr/include/xen/*.h:
       [2489]Linux-3.5.2 API ヘッダー --
       [2490]説明
     * /var/log/btmp:
       [2491]基本的なファイルとリンクの生成
     * /var/log/lastlog:
       [2492]基本的なファイルとリンクの生成
     * /var/log/wtmp:
       [2493]基本的なファイルとリンクの生成
     * /var/run/utmp:
       [2494]基本的なファイルとリンクの生成
     * man ページ: [2495]Man-pages-3.42
       -- [2496]説明

References

   1. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#CC
   2. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#MIT
   3. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-foreword
   4. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-audience
   5. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-architecture
   6. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-standards
   7. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-why
   8. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-prerequisites
   9. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-hostreqs
  10. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-typography
  11. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-organization
  12. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-errata
  13. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-japanese
  14. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-intro-how
  15. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-intro-whatsnew
  16. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scatter-changelog
  17. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scatter-jchangelog
  18. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-intro-resources
  19. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-intro-askforhelp
  20. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#space-introduction
  21. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#space-creatingpartition
  22. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#space-creatingfilesystem
  23. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#space-mounting
  24. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#materials-introduction
  25. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#materials-packages
  26. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#materials-patches
  27. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#prepare-aboutlfs
  28. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-creatingtoolsdir
  29. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-addinguser
  30. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-settingenviron
  31. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#prepare-aboutsbus
  32. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#prepare-abouttestsuites
  33. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-introduction
  34. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-toolchaintechnotes
  35. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-generalinstructions
  36. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-binutils-pass1
  37. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gcc-pass1
  38. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-linux-headers
  39. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-glibc
  40. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-binutils-pass2
  41. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gcc-pass2
  42. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tcl
  43. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-expect
  44. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-dejagnu
  45. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-check
  46. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-ncurses
  47. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-bash
  48. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-bzip2
  49. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-coreutils
  50. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-diffutils
  51. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-file
  52. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-findutils
  53. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gawk
  54. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gettext
  55. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-grep
  56. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gzip
  57. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-m4
  58. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-make
  59. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-patch
  60. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-perl
  61. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-sed
  62. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tar
  63. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-texinfo
  64. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-xz
  65. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-stripping
  66. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-changingowner
  67. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-introduction
  68. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kernfs
  69. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-pkgmgt
  70. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-chroot
  71. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-creatingdirs
  72. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
  73. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
  74. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-pages
  75. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
  76. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-adjusting
  77. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-zlib
  78. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-file
  79. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
  80. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gmp
  81. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-mpfr
  82. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-mpc
  83. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
  84. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sed
  85. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
  86. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-pkgconfig
  87. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
  88. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
  89. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
  90. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
  91. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
  92. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
  93. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iana-etc
  94. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-m4
  95. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bison
  96. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
  97. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grep
  98. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-readline
  99. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bash
 100. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libtool
 101. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gdbm
 102. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
 103. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
 104. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 105. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 106. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-diffutils
 107. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
 108. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
 109. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-flex
 110. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
 111. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
 112. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
 113. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
 114. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-less
 115. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
 116. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
 117. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
 118. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
 119. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libpipeline
 120. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-make
 121. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
 122. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-patch
 123. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysklogd
 124. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
 125. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-tar
 126. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
 127. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
 128. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
 129. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-aboutdebug
 130. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-strippingagain
 131. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-revisedchroot
 132. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-introduction
 133. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-network
 134. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hosts
 135. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-udev
 136. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-symlinks
 137. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
 138. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-usage
 139. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hostname
 140. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-setclock
 141. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-console
 142. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-sysklogd
 143. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-site
 144. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-profile
 145. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-inputrc
 146. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-introduction
 147. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-fstab
 148. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-kernel
 149. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-grub
 150. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-finish-theend
 151. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-finish-getcounted
 152. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-finish-reboot
 153. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-finish-whatnow
 154. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#appendixa
 155. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#appendixb
 156. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#appendixc
 157. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#scripts
 158. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rc
 159. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#init-functions
 160. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#functions
 161. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mountvirtfs
 162. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#modules
 163. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#udev
 164. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#swap
 165. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setclock
 166. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#checkfs
 167. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mountfs
 168. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#udev_retry
 169. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cleanfs
 170. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#console
 171. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#localnet
 172. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sysctlscript
 173. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sysklogd
 174. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#network
 175. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sendsignals
 176. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rebootscript
 177. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#haltscript
 178. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#template
 179. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#modulessys
 180. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#createfiles
 181. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config-udev-retry
 182. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifup
 183. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifdown
 184. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ipv4static
 185. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ipv4route
 186. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rules
 187. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lfsrules
 188. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#Licenses
 189. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#CC
 190. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#MIT
 191. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#id2977187
 192. http://trac.cross-lfs.org/
 193. http://www.linuxfromscratch.org/blfs/view/svn/
 194. http://pubs.opengroup.org/onlinepubs/9699919799/
 195. http://www.pathname.com/fhs/pub/fhs-2.3.html
 196. http://refspecs.freestandards.org/LSB_4.0.0/
 197. http://www.tldp.org/HOWTO/Software-Building-HOWTO.html
 198. http://www.linuxhq.com/guides/LUG/guide.html
 199. http://www.linuxfromscratch.org/hints/downloads/files/essential_prereading.txt
 200. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-bootable
 201. http://www.linuxfromscratch.org/
 202. http://www.linuxfromscratch.org/lfs/errata/7.2/
 203. http://lfsbookja.sourceforge.jp/
 204. http://www.linuxfromscratch.org/
 205. http://www.linuxfromscratch.org/blfs/view/svn/pst/DocBook.html
 206. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-partitioning
 207. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-getting-materials
 208. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-final-preps
 209. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 210. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 211. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 212. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 213. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 214. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-toolchaintechnotes
 215. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 216. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-bootscripts
 217. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-bootable
 218. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-finalizing
 219. http://www.linuxfromscratch.org/mirrors.html
 220. http://wiki.linuxfromscratch.org/lfs/ticket/3172
 221. http://wiki.linuxfromscratch.org/lfs/ticket/3163
 222. http://wiki.linuxfromscratch.org/lfs/ticket/3164
 223. http://wiki.linuxfromscratch.org/lfs/ticket/3154
 224. http://wiki.linuxfromscratch.org/lfs/ticket/3159
 225. http://wiki.linuxfromscratch.org/lfs/ticket/3161
 226. http://wiki.linuxfromscratch.org/lfs/ticket/3157
 227. http://wiki.linuxfromscratch.org/lfs/ticket/3155
 228. http://wiki.linuxfromscratch.org/lfs/ticket/3160
 229. http://wiki.linuxfromscratch.org/lfs/ticket/3139
 230. http://wiki.linuxfromscratch.org/lfs/ticket/3158
 231. http://wiki.linuxfromscratch.org/lfs/ticket/3156
 232. http://wiki.linuxfromscratch.org/lfs/ticket/3152
 233. http://wiki.linuxfromscratch.org/lfs/ticket/3148
 234. http://wiki.linuxfromscratch.org/lfs/ticket/3147
 235. http://wiki.linuxfromscratch.org/lfs/ticket/3146
 236. http://wiki.linuxfromscratch.org/lfs/ticket/3142
 237. http://wiki.linuxfromscratch.org/lfs/ticket/3140
 238. http://wiki.linuxfromscratch.org/lfs/ticket/3138
 239. http://wiki.linuxfromscratch.org/lfs/ticket/3131
 240. http://wiki.linuxfromscratch.org/lfs/ticket/3143
 241. http://wiki.linuxfromscratch.org/lfs/ticket/3141
 242. http://wiki.linuxfromscratch.org/lfs/ticket/3137
 243. http://wiki.linuxfromscratch.org/lfs/ticket/3098
 244. http://wiki.linuxfromscratch.org/lfs/ticket/3135
 245. http://wiki.linuxfromscratch.org/lfs/ticket/3134
 246. http://wiki.linuxfromscratch.org/lfs/ticket/3133
 247. http://wiki.linuxfromscratch.org/lfs/ticket/3132
 248. http://wiki.linuxfromscratch.org/lfs/ticket/3129
 249. http://wiki.linuxfromscratch.org/lfs/ticket/3127
 250. http://wiki.linuxfromscratch.org/lfs/ticket/3126
 251. http://wiki.linuxfromscratch.org/lfs/ticket/3130
 252. http://wiki.linuxfromscratch.org/lfs/ticket/3120
 253. http://wiki.linuxfromscratch.org/lfs/ticket/3125
 254. http://wiki.linuxfromscratch.org/lfs/ticket/3124
 255. http://wiki.linuxfromscratch.org/lfs/ticket/3123
 256. http://wiki.linuxfromscratch.org/lfs/ticket/3122
 257. http://wiki.linuxfromscratch.org/lfs/ticket/3121
 258. http://wiki.linuxfromscratch.org/lfs/ticket/3117
 259. http://wiki.linuxfromscratch.org/lfs/ticket/3116
 260. http://wiki.linuxfromscratch.org/lfs/ticket/3114
 261. http://wiki.linuxfromscratch.org/lfs/ticket/3119
 262. http://wiki.linuxfromscratch.org/lfs/ticket/3118
 263. http://wiki.linuxfromscratch.org/lfs/ticket/3112
 264. http://wiki.linuxfromscratch.org/lfs/ticket/3110
 265. http://wiki.linuxfromscratch.org/lfs/ticket/3109
 266. http://wiki.linuxfromscratch.org/lfs/ticket/3106
 267. http://wiki.linuxfromscratch.org/lfs/ticket/3103
 268. http://wiki.linuxfromscratch.org/lfs/ticket/3105
 269. http://wiki.linuxfromscratch.org/lfs/ticket/3104
 270. http://wiki.linuxfromscratch.org/lfs/ticket/3102
 271. http://wiki.linuxfromscratch.org/lfs/ticket/3097
 272. http://wiki.linuxfromscratch.org/lfs/ticket/3100
 273. http://wiki.linuxfromscratch.org/lfs/ticket/3094
 274. http://wiki.linuxfromscratch.org/lfs/ticket/3096
 275. http://wiki.linuxfromscratch.org/lfs/ticket/3092
 276. http://wiki.linuxfromscratch.org/lfs/ticket/3091
 277. http://wiki.linuxfromscratch.org/lfs/ticket/3093
 278. http://wiki.linuxfromscratch.org/lfs/ticket/3085
 279. http://wiki.linuxfromscratch.org/lfs/ticket/3085
 280. http://wiki.linuxfromscratch.org/lfs/ticket/3089
 281. http://wiki.linuxfromscratch.org/lfs/ticket/3083
 282. http://wiki.linuxfromscratch.org/lfs/ticket/3084
 283. http://wiki.linuxfromscratch.org/lfs/ticket/3080
 284. http://wiki.linuxfromscratch.org/lfs/ticket/3079
 285. http://wiki.linuxfromscratch.org/lfs/ticket/3078
 286. http://wiki.linuxfromscratch.org/lfs/ticket/3077
 287. http://wiki.linuxfromscratch.org/lfs/ticket/2990
 288. http://wiki.linuxfromscratch.org/lfs/ticket/3074
 289. http://wiki.linuxfromscratch.org/lfs/ticket/3072
 290. http://wiki.linuxfromscratch.org/lfs/ticket/3071
 291. http://wiki.linuxfromscratch.org/lfs/ticket/3070
 292. http://wiki.linuxfromscratch.org/lfs/ticket/3068
 293. http://wiki.linuxfromscratch.org/lfs/ticket/3066
 294. http://wiki.linuxfromscratch.org/lfs/ticket/3067
 295. http://wiki.linuxfromscratch.org/lfs/ticket/3065
 296. http://wiki.linuxfromscratch.org/lfs/ticket/3064
 297. http://wiki.linuxfromscratch.org/lfs/ticket/3061
 298. http://wiki.linuxfromscratch.org/lfs/ticket/3063
 299. http://wiki.linuxfromscratch.org/lfs/ticket/3062
 300. http://wiki.linuxfromscratch.org/lfs/ticket/3057
 301. http://wiki.linuxfromscratch.org/lfs/ticket/3053
 302. http://wiki.linuxfromscratch.org/lfs/ticket/3048
 303. http://wiki.linuxfromscratch.org/lfs/ticket/3059
 304. http://wiki.linuxfromscratch.org/lfs/ticket/3058
 305. http://wiki.linuxfromscratch.org/lfs/ticket/3056
 306. http://wiki.linuxfromscratch.org/lfs/ticket/3055
 307. http://wiki.linuxfromscratch.org/lfs/ticket/3051
 308. http://wiki.linuxfromscratch.org/lfs/ticket/3048
 309. http://wiki.linuxfromscratch.org/lfs/ticket/3048
 310. http://wiki.linuxfromscratch.org/lfs/ticket/3047
 311. http://wiki.linuxfromscratch.org/lfs/ticket/3046
 312. http://wiki.linuxfromscratch.org/lfs/ticket/3045
 313. http://wiki.linuxfromscratch.org/lfs/ticket/3044
 314. http://wiki.linuxfromscratch.org/lfs/ticket/3043
 315. http://wiki.linuxfromscratch.org/lfs/ticket/3042
 316. http://wiki.linuxfromscratch.org/lfs/ticket/3041
 317. http://wiki.linuxfromscratch.org/lfs/ticket/3040
 318. http://wiki.linuxfromscratch.org/lfs/ticket/3037
 319. http://wiki.linuxfromscratch.org/lfs/ticket/3036
 320. http://wiki.linuxfromscratch.org/lfs/ticket/3034
 321. http://wiki.linuxfromscratch.org/lfs/ticket/3031
 322. http://wiki.linuxfromscratch.org/lfs/ticket/3030
 323. http://wiki.linuxfromscratch.org/lfs/ticket/3029
 324. http://wiki.linuxfromscratch.org/lfs/ticket/3028
 325. http://wiki.linuxfromscratch.org/lfs/ticket/3026
 326. http://wiki.linuxfromscratch.org/lfs/ticket/3024
 327. http://wiki.linuxfromscratch.org/lfs/ticket/3023
 328. http://wiki.linuxfromscratch.org/lfs/ticket/3002
 329. http://wiki.linuxfromscratch.org/lfs/changeset/9969
 330. http://wiki.linuxfromscratch.org/lfs/changeset/9973
 331. http://wiki.linuxfromscratch.org/lfs/changeset/9966
 332. http://wiki.linuxfromscratch.org/lfs/changeset/9968
 333. http://wiki.linuxfromscratch.org/lfs/changeset/9963
 334. http://wiki.linuxfromscratch.org/lfs/changeset/9965
 335. http://wiki.linuxfromscratch.org/lfs/changeset/9961
 336. http://wiki.linuxfromscratch.org/lfs/changeset/9962
 337. http://wiki.linuxfromscratch.org/lfs/changeset/9957
 338. http://wiki.linuxfromscratch.org/lfs/changeset/9960
 339. http://wiki.linuxfromscratch.org/lfs/changeset/9955
 340. http://wiki.linuxfromscratch.org/lfs/changeset/9956
 341. http://wiki.linuxfromscratch.org/lfs/changeset/9947
 342. http://wiki.linuxfromscratch.org/lfs/changeset/9954
 343. http://wiki.linuxfromscratch.org/lfs/changeset/9944
 344. http://wiki.linuxfromscratch.org/lfs/changeset/9946
 345. http://wiki.linuxfromscratch.org/lfs/changeset/9943
 346. http://wiki.linuxfromscratch.org/lfs/changeset/9933
 347. http://wiki.linuxfromscratch.org/lfs/changeset/9942
 348. http://wiki.linuxfromscratch.org/lfs/changeset/9921
 349. http://wiki.linuxfromscratch.org/lfs/changeset/9931
 350. http://wiki.linuxfromscratch.org/lfs/changeset/9920
 351. http://wiki.linuxfromscratch.org/lfs/changeset/9917
 352. http://wiki.linuxfromscratch.org/lfs/changeset/9918
 353. http://wiki.linuxfromscratch.org/lfs/changeset/9916
 354. http://wiki.linuxfromscratch.org/lfs/changeset/9908
 355. http://wiki.linuxfromscratch.org/lfs/changeset/9915
 356. http://wiki.linuxfromscratch.org/lfs/changeset/9907
 357. http://wiki.linuxfromscratch.org/lfs/changeset/9899
 358. http://wiki.linuxfromscratch.org/lfs/changeset/9906
 359. http://wiki.linuxfromscratch.org/lfs/changeset/9897
 360. http://wiki.linuxfromscratch.org/lfs/changeset/9898
 361. http://wiki.linuxfromscratch.org/lfs/changeset/9886
 362. http://wiki.linuxfromscratch.org/lfs/changeset/9896
 363. http://wiki.linuxfromscratch.org/lfs/changeset/9883
 364. http://wiki.linuxfromscratch.org/lfs/changeset/9884
 365. http://wiki.linuxfromscratch.org/lfs/changeset/9885
 366. http://wiki.linuxfromscratch.org/lfs/changeset/9882
 367. http://wiki.linuxfromscratch.org/lfs/changeset/9871
 368. http://wiki.linuxfromscratch.org/lfs/changeset/9881
 369. http://wiki.linuxfromscratch.org/lfs/changeset/9869
 370. http://wiki.linuxfromscratch.org/lfs/changeset/9870
 371. http://wiki.linuxfromscratch.org/lfs/changeset/9862
 372. http://wiki.linuxfromscratch.org/lfs/changeset/9868
 373. http://wiki.linuxfromscratch.org/lfs/changeset/9861
 374. http://wiki.linuxfromscratch.org/lfs/changeset/9860
 375. http://wiki.linuxfromscratch.org/lfs/changeset/9858
 376. http://wiki.linuxfromscratch.org/lfs/changeset/9859
 377. http://wiki.linuxfromscratch.org/lfs/changeset/9855
 378. http://wiki.linuxfromscratch.org/lfs/changeset/9856
 379. http://wiki.linuxfromscratch.org/lfs/changeset/9857
 380. http://wiki.linuxfromscratch.org/lfs/changeset/9843
 381. http://wiki.linuxfromscratch.org/lfs/changeset/9854
 382. http://wiki.linuxfromscratch.org/lfs/changeset/9842
 383. http://wiki.linuxfromscratch.org/lfs/changeset/9840
 384. http://wiki.linuxfromscratch.org/lfs/changeset/9841
 385. http://wiki.linuxfromscratch.org/lfs/changeset/9823
 386. http://wiki.linuxfromscratch.org/lfs/changeset/9834
 387. http://wiki.linuxfromscratch.org/lfs/changeset/9823
 388. http://wiki.linuxfromscratch.org/lfs/changeset/9834
 389. http://wiki.linuxfromscratch.org/lfs/changeset/9816
 390. http://wiki.linuxfromscratch.org/lfs/changeset/9810
 391. http://wiki.linuxfromscratch.org/lfs/changeset/9811
 392. http://wiki.linuxfromscratch.org/lfs/changeset/9812
 393. http://wiki.linuxfromscratch.org/lfs/changeset/9807
 394. http://wiki.linuxfromscratch.org/lfs/changeset/9808
 395. http://wiki.linuxfromscratch.org/lfs/changeset/9805
 396. http://wiki.linuxfromscratch.org/lfs/changeset/9806
 397. http://wiki.linuxfromscratch.org/lfs/changeset/9799
 398. http://wiki.linuxfromscratch.org/lfs/changeset/9800
 399. http://wiki.linuxfromscratch.org/lfs/changeset/9801
 400. http://wiki.linuxfromscratch.org/lfs/changeset/9802
 401. http://wiki.linuxfromscratch.org/lfs/changeset/9803
 402. http://wiki.linuxfromscratch.org/lfs/changeset/9804
 403. http://wiki.linuxfromscratch.org/lfs/changeset/9797
 404. http://wiki.linuxfromscratch.org/lfs/changeset/9798
 405. http://wiki.linuxfromscratch.org/lfs/changeset/9793
 406. http://wiki.linuxfromscratch.org/lfs/changeset/9794
 407. http://wiki.linuxfromscratch.org/lfs/changeset/9795
 408. http://wiki.linuxfromscratch.org/lfs/changeset/9796
 409. http://wiki.linuxfromscratch.org/lfs/changeset/9790
 410. http://wiki.linuxfromscratch.org/lfs/changeset/9791
 411. http://wiki.linuxfromscratch.org/lfs/changeset/9792
 412. http://wiki.linuxfromscratch.org/lfs/changeset/9785
 413. http://wiki.linuxfromscratch.org/lfs/changeset/9786
 414. http://wiki.linuxfromscratch.org/lfs/changeset/9787
 415. http://wiki.linuxfromscratch.org/lfs/changeset/9788
 416. http://wiki.linuxfromscratch.org/lfs/changeset/9789
 417. http://wiki.linuxfromscratch.org/lfs/changeset/9783
 418. http://wiki.linuxfromscratch.org/lfs/changeset/9784
 419. http://wiki.linuxfromscratch.org/lfs/changeset/9780
 420. http://wiki.linuxfromscratch.org/lfs/changeset/9781
 421. http://wiki.linuxfromscratch.org/lfs/changeset/9782
 422. http://wiki.linuxfromscratch.org/lfs/changeset/9775
 423. http://wiki.linuxfromscratch.org/lfs/changeset/9776
 424. http://wiki.linuxfromscratch.org/lfs/changeset/9777
 425. http://wiki.linuxfromscratch.org/lfs/changeset/9778
 426. http://wiki.linuxfromscratch.org/lfs/changeset/9773
 427. http://wiki.linuxfromscratch.org/lfs/changeset/9774
 428. http://wiki.linuxfromscratch.org/lfs/changeset/9771
 429. http://wiki.linuxfromscratch.org/lfs/changeset/9763
 430. http://wiki.linuxfromscratch.org/lfs/changeset/9764
 431. http://wiki.linuxfromscratch.org/lfs/changeset/9765
 432. http://wiki.linuxfromscratch.org/lfs/changeset/9766
 433. http://wiki.linuxfromscratch.org/lfs/changeset/9767
 434. http://wiki.linuxfromscratch.org/lfs/changeset/9768
 435. http://wiki.linuxfromscratch.org/lfs/changeset/9769
 436. http://wiki.linuxfromscratch.org/lfs/changeset/9770
 437. http://wiki.linuxfromscratch.org/lfs/changeset/9760
 438. http://www.linuxfromscratch.org/faq/
 439. http://www.linuxfromscratch.org/search.html
 440. http://www.linuxfromscratch.org/mail.html
 441. http://www.linuxfromscratch.org/mirrors.html
 442. http://www.linuxfromscratch.org/faq/#generalfaq
 443. http://www.linuxfromscratch.org/hints/downloads/files/errors.txt
 444. http://www.linuxfromscratch.org/search.html
 445. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-intro-resources
 446. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#version-check
 447. http://catb.org/~esr/faqs/smart-questions.html
 448. http://www.linuxfromscratch.org/blfs//view/svn/postlfs/raid.html
 449. http://www.linuxfromscratch.org/blfs//view/svn/postlfs/aboutlvm.html
 450. http://www.linuxfromscratch.org/blfs//view/svn/postlfs/initramfs.html
 451. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-fstab
 452. http://www.linuxfromscratch.org/blfs/view/svn/postlfs/filesystems.html
 453. http://www.google.com/
 454. http://www.linuxfromscratch.org/lfs/packages.html#packages
 455. file://localhost/home/matsuyama/build/lfsbookja/LFS/wget-list
 456. file://localhost/home/matsuyama/build/lfsbookja/LFS/wget-list
 457. file://localhost/home/matsuyama/build/lfsbookja/LFS/wget-list
 458. file://localhost/home/matsuyama/build/lfsbookja/LFS/wget-list
 459. file://localhost/home/matsuyama/build/lfsbookja/LFS/md5sums
 460. http://www.gnu.org/software/autoconf/
 461. http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz
 462. http://www.gnu.org/software/automake/
 463. http://ftp.gnu.org/gnu/automake/automake-1.12.3.tar.xz
 464. http://www.gnu.org/software/bash/
 465. http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz
 466. http://www.gnu.org/software/binutils/
 467. http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2
 468. http://www.gnu.org/software/bison/
 469. http://ftp.gnu.org/gnu/bison/bison-2.6.2.tar.xz
 470. http://www.bzip.org/
 471. http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz
 472. http://check.sourceforge.net/
 473. http://sourceforge.net/projects/check/files/check/0.9.8/check-0.9.8.tar.gz
 474. http://www.gnu.org/software/coreutils/
 475. http://ftp.gnu.org/gnu/coreutils/coreutils-8.19.tar.xz
 476. http://www.gnu.org/software/dejagnu/
 477. http://ftp.gnu.org/gnu/dejagnu/dejagnu-1.5.tar.gz
 478. http://www.gnu.org/software/diffutils/
 479. http://ftp.gnu.org/gnu/diffutils/diffutils-3.2.tar.gz
 480. http://e2fsprogs.sourceforge.net/
 481. http://prdownloads.sourceforge.net/e2fsprogs/e2fsprogs-1.42.5.tar.gz
 482. http://expect.sourceforge.net/
 483. http://prdownloads.sourceforge.net/expect/expect5.45.tar.gz
 484. http://www.darwinsys.com/file/
 485. ftp://ftp.astron.com/pub/file/file-5.11.tar.gz
 486. http://www.linuxfromscratch.org/lfs/download.html#ftp
 487. http://www.gnu.org/software/findutils/
 488. http://ftp.gnu.org/gnu/findutils/findutils-4.4.2.tar.gz
 489. http://flex.sourceforge.net/
 490. http://prdownloads.sourceforge.net/flex/flex-2.5.37.tar.bz2
 491. http://www.gnu.org/software/gawk/
 492. http://ftp.gnu.org/gnu/gawk/gawk-4.0.1.tar.xz
 493. http://gcc.gnu.org/
 494. http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2
 495. http://www.gnu.org/software/gdbm/
 496. http://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz
 497. http://www.gnu.org/software/gettext/
 498. http://ftp.gnu.org/gnu/gettext/gettext-0.18.1.1.tar.gz
 499. http://www.gnu.org/software/libc/
 500. http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.xz
 501. http://www.gnu.org/software/gmp/
 502. http://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.xz
 503. http://www.gnu.org/software/grep/
 504. http://ftp.gnu.org/gnu/grep/grep-2.14.tar.xz
 505. http://www.gnu.org/software/groff/
 506. http://ftp.gnu.org/gnu/groff/groff-1.21.tar.gz
 507. http://www.gnu.org/software/grub/
 508. http://ftp.gnu.org/gnu/grub/grub-2.00.tar.xz
 509. http://www.gnu.org/software/gzip/
 510. http://ftp.gnu.org/gnu/gzip/gzip-1.5.tar.xz
 511. http://freshmeat.net/projects/iana-etc/
 512. http://anduin.linuxfromscratch.org/sources/LFS/lfs-packages/conglomeration//iana-etc/iana-etc-2.30.tar.bz2
 513. http://www.gnu.org/software/inetutils/
 514. http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.1.tar.gz
 515. http://www.kernel.org/pub/linux/utils/net/iproute2/
 516. http://www.kernel.org/pub/linux/utils/net/iproute2/iproute2-3.5.1.tar.xz
 517. http://ftp.altlinux.org/pub/people/legion/kbd
 518. http://ftp.altlinux.org/pub/people/legion/kbd/kbd-1.15.3.tar.gz
 519. http://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-9.tar.xz
 520. http://www.greenwoodsoftware.com/less/
 521. http://www.greenwoodsoftware.com/less/less-444.tar.gz
 522. http://www.linuxfromscratch.org/lfs/downloads/7.2/lfs-bootscripts-20120901.tar.bz2
 523. http://libpipeline.nongnu.org/
 524. http://download.savannah.gnu.org/releases/libpipeline/libpipeline-1.2.1.tar.gz
 525. http://www.gnu.org/software/libtool/
 526. http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz
 527. http://www.kernel.org/
 528. http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.5.2.tar.xz
 529. http://www.gnu.org/software/m4/
 530. http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2
 531. http://www.gnu.org/software/make/
 532. http://ftp.gnu.org/gnu/make/make-3.82.tar.bz2
 533. http://www.nongnu.org/man-db/
 534. http://download.savannah.gnu.org/releases/man-db/man-db-2.6.2.tar.xz
 535. http://www.kernel.org/doc/man-pages/
 536. http://www.kernel.org/pub/linux/docs/man-pages/man-pages-3.42.tar.xz
 537. http://www.multiprecision.org/
 538. http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz
 539. http://www.mpfr.org/
 540. http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.xz
 541. http://www.gnu.org/software/ncurses/
 542. ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz
 543. http://savannah.gnu.org/projects/patch/
 544. http://ftp.gnu.org/gnu/patch/patch-2.6.1.tar.bz2
 545. http://www.perl.org/
 546. http://www.cpan.org/src/5.0/perl-5.16.1.tar.bz2
 547. http://www.freedesktop.org/wiki/Software/pkg-config
 548. http://pkgconfig.freedesktop.org/releases/pkg-config-0.27.tar.gz
 549. http://procps.sourceforge.net/
 550. http://procps.sourceforge.net/procps-3.2.8.tar.gz
 551. http://psmisc.sourceforge.net/
 552. http://prdownloads.sourceforge.net/psmisc/psmisc-22.19.tar.gz
 553. http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
 554. http://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
 555. http://www.gnu.org/software/sed/
 556. http://ftp.gnu.org/gnu/sed/sed-4.2.1.tar.bz2
 557. http://pkg-shadow.alioth.debian.org/
 558. http://pkg-shadow.alioth.debian.org/releases/shadow-4.1.5.1.tar.bz2
 559. http://www.infodrom.org/projects/sysklogd/
 560. http://www.infodrom.org/projects/sysklogd/download/sysklogd-1.5.tar.gz
 561. http://savannah.nongnu.org/projects/sysvinit
 562. http://download.savannah.gnu.org/releases/sysvinit/sysvinit-2.88dsf.tar.bz2
 563. http://www.gnu.org/software/tar/
 564. http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2
 565. http://tcl.sourceforge.net/
 566. http://prdownloads.sourceforge.net/tcl/tcl8.5.12-src.tar.gz
 567. http://www.iana.org/time-zones
 568. http://www.iana.org//time-zones/repository/releases/tzdata2012e.tar.gz
 569. http://www.gnu.org/software/texinfo/
 570. http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz
 571. http://www.freedesktop.org/wiki/Software/systemd/
 572. http://www.freedesktop.org/software/systemd/systemd-188.tar.xz
 573. http://anduin.linuxfromscratch.org/sources/other/udev-lfs-188-3.tar.bz2
 574. http://userweb.kernel.org/~kzak/util-linux/
 575. http://www.kernel.org/pub/linux/utils/util-linux/v2.21/util-linux-2.21.2.tar.xz
 576. http://www.vim.org/
 577. ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
 578. http://tukaani.org/xz
 579. http://tukaani.org/xz/xz-5.0.4.tar.xz
 580. http://www.zlib.net/
 581. http://www.zlib.net/zlib-1.2.7.tar.bz2
 582. http://www.linuxfromscratch.org/patches/lfs/7.2/bash-4.2-fixes-8.patch
 583. http://www.linuxfromscratch.org/patches/lfs/7.2/binutils-2.22-build_fix-1.patch
 584. http://www.linuxfromscratch.org/patches/lfs/7.2/bzip2-1.0.6-install_docs-1.patch
 585. http://www.linuxfromscratch.org/patches/lfs/7.2/coreutils-8.19-i18n-1.patch
 586. http://www.linuxfromscratch.org/patches/lfs/7.2/flex-2.5.37-bison-2.6.1-1.patch
 587. http://www.linuxfromscratch.org/patches/lfs/7.2/glibc-2.16.0-res_query_fix-1.patch
 588. http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-upstream_fixes-1.patch
 589. http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-backspace-1.patch
 590. http://www.linuxfromscratch.org/patches/lfs/7.2/kmod-9-testsuite-1.patch
 591. http://www.linuxfromscratch.org/patches/lfs/7.2/make-3.82-upstream_fixes-2.patch
 592. http://www.linuxfromscratch.org/patches/lfs/7.2/patch-2.6.1-test_fix-1.patch
 593. http://www.linuxfromscratch.org/patches/lfs/7.2/perl-5.16.1-libc-2.patch
 594. http://www.linuxfromscratch.org/patches/lfs/7.2/procps-3.2.8-fix_HZ_errors-1.patch
 595. http://www.linuxfromscratch.org/patches/lfs/7.2/procps-3.2.8-watch_unicode-1.patch
 596. http://www.linuxfromscratch.org/patches/lfs/7.2/readline-6.2-fixes-1.patch
 597. http://www.linuxfromscratch.org/patches/lfs/7.2/sed-4.2.1-testsuite_fixes-1.patch
 598. http://www.linuxfromscratch.org/patches/downloads/
 599. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 600. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 601. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 602. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-toolchaintechnotes
 603. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 604. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 605. http://www.linuxfromscratch.org/~sbu/
 606. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 607. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 608. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 609. http://www.linuxfromscratch.org//lfs/faq.html#no-ptys
 610. http://www.linuxfromscratch.org/lfs/build-logs/7.2/
 611. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 612. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 613. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 614. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 615. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 616. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 617. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-binutils
 618. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#buildinstr
 619. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-gcc
 620. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-linux-headers
 621. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-binutils-pass1
 622. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
 623. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-glibc
 624. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-binutils
 625. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-settingenviron
 626. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-gcc
 627. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 628. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-bootscripts
 629. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-ncurses
 630. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-bash
 631. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-bzip2
 632. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-coreutils
 633. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-diffutils
 634. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-file
 635. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-findutils
 636. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-gawk
 637. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-gettext
 638. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-grep
 639. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-gzip
 640. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-m4
 641. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-make
 642. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-patch
 643. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-perl
 644. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-sed
 645. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-tar
 646. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-texinfo
 647. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#contents-xz
 648. http://www.linuxfromscratch.org/hints/list.html
 649. http://www.linux-foundation.org/en/Specifications
 650. http://www.linuxfromscratch.org/hints/downloads/files/fakeroot.txt
 651. http://www.slackbook.org/html/package-management.html
 652. http://www.linuxfromscratch.org/hints/list.html
 653. http://www.linuxfromscratch.org/hints/downloads/files/more_control_and_pkg_man.txt
 654. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-grub
 655. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bindmount
 656. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kernfsmount
 657. http://www.pathname.com/fhs/
 658. http://www.linuxbase.org/
 659. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-temporary-tools
 660. http://www.gnu.org/software/libiconv/
 661. http://www.linuxfromscratch.org/blfs/view/svn/postlfs/shells.html
 662. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gcc-pass2
 663. http://www.linuxfromscratch.org/lfs/build-logs/7.2/
 664. http://gcc.gnu.org/ml/gcc-testresults/
 665. http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20003
 666. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#space-creatingfilesystem
 667. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#space-mounting
 668. http://www.linuxfromscratch.org/blfs/view/svn/postlfs/cracklib.html
 669. http://www.linuxfromscratch.org/blfs/view/svn/basicnet/inetutils.html
 670. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-grub
 671. http://www.linuxfromscratch.org/blfs/view/svn/server/databases.html#db
 672. http://www.skbuff.net/iputils/
 673. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-check
 674. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#stable-net-names
 675. http://www.linuxfromscratch.org/blfs/view/svn/postlfs/editors.html
 676. http://www.linuxfromscratch.org/blfs/view/svn/postlfs/editors.html#postlfs-editors-vim
 677. ftp://ftp.vim.org/pub/vim/runtime/spell/
 678. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-chroot
 679. http://www.linuxfromscratch.org/blfs/
 680. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bindmount
 681. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kernfsmount
 682. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-network
 683. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hosts
 684. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-udev
 685. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-symlinks
 686. http://www.linuxfromscratch.org/hints/downloads/files/bsd-init.txt
 687. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#scripts
 688. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
 689. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-usage
 690. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hostname
 691. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-setclock
 692. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-console
 693. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-sysklogd
 694. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-profile
 695. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-inputrc
 696. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
 697. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chapter-building-system
 698. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-symlinks
 699. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-network
 700. http://www.kroah.com/linux/talks/ols_2003_udev_paper/Reprint-Kroah-Hartman-OLS2003.pdf
 701. http://www.kernel.org/pub/linux/kernel/people/mochel/doc/papers/ols-2005/mochel.pdf
 702. http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html
 703. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-udev
 704. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-network
 705. http://www.linuxfromscratch.org/blfs/view/svn/postlfs/devices.html
 706. http://www.linuxfromscratch.org/hints/downloads/files/time.txt
 707. http://www.tldp.org/HOWTO/HOWTO-INDEX/other-lang.html
 708. http://www.linuxfromscratch.org/blfs/view/svn/introduction/locale-issues.html
 709. http://www.linuxfromscratch.org/blfs/view/cvs/general/hdparm.html
 710. http://www.linuxfromscratch.org/hints/downloads/files/kernel-configuration.txt
 711. http://www.linuxfromscratch.org/blfs/view/svn/longindex.html#kernel-config-index
 712. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-udev
 713. http://www.linuxfromscratch.org/blfs/view/svn/multimedia/libisoburn.html
 714. http://www.linuxfromscratch.org/cgi-bin/lfscounter.php
 715. http://freshmeat.net/
 716. http://www.cert.org/
 717. http://www.us-cert.gov/cas/signup.html
 718. http://www.securityfocus.com/archive
 719. http://www.linuxfromscratch.org/blfs/
 720. http://www.linuxfromscratch.org/hints/list.html
 721. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-intro-maillists
 722. http://www.tldp.org/
 723. mailto:gerard@linuxfromscratch.org
 724. mailto:matthew@linuxfromscratch.org
 725. mailto:bdubbs@linuxfromscratch.org
 726. mailto:jim@linuxfromscratch.org
 727. mailto:bryan@linuxfromscratch.org
 728. mailto:randy@linuxfromscratch.org
 729. mailto:dj@linuxfromscratch.org
 730. mailto:ken@linuxfromscratch.org
 731. mailto:ryan@linuxfromscratch.org
 732. mailto:macana@macana-es.com
 733. mailto:johan@linuxfromscratch.org
 734. mailto:lizardo@linuxfromscratch.org
 735. mailto:tr@erdfunkstelle.de
 736. mailto:scott@osuosl.org
 737. mailto:lost@l-w.net
 738. mailto:eujon.sellers@gmail.com
 739. mailto:justin@knierim.org
 740. mailto:manuel@linuxfromscratch.org
 741. mailto:lfalcon@thymbra.com
 742. mailto:guido@primerelay.net
 743. mailto:baafie@planet.nl
 744. mailto:sven.cranshoff@lineo.be
 745. mailto:info@aliensoft.org
 746. mailto:stuart@dontuse.ms
 747. mailto:admin@realhost.de
 748. mailto:Antonin.Sprinzl@tuwien.ac.at
 749. mailto:fredan-lfs@fredan.org
 750. mailto:franck@linuxpourtous.com
 751. mailto:baque@cict.fr
 752. mailto:gyouja@pilgrims.ru
 753. mailto:kontakt@wankoo.org
 754. mailto:satit@wbac.ac.th
 755. mailto:info@shizu-net.jp
 756. http://www.initworld.com/
 757. mailto:jason@dstc.edu.au
 758. mailto:theladyskye@linuxfromscratch.org
 759. mailto:nathan@linuxfromscratch.org
 760. mailto:jeroen@linuxfromscratch.org
 761. mailto:manuel@linuxfromscratch.org
 762. mailto:jhuntwork@linuxfromscratch.org
 763. mailto:nicholas@linuxfromscratch.org
 764. mailto:lizardo@linuxfromscratch.org
 765. mailto:dnicholson@linuxfromscratch.org
 766. mailto:alexander@linuxfromscratch.org
 767. mailto:scot@linuxfromscratch.org
 768. mailto:gschafer@zip.com.au
 769. mailto:jwrober@linuxfromscratch.org
 770. mailto:tushar@linuxfromscratch.org
 771. mailto:jeremy@linuxfromscratch.org
 772. mailto:zwinkles@gmail.com
 773. http://gcc.gnu.org/wiki/Graphite
 774. http://gcc.gnu.org/wiki/GNAT
 775. http://gcc.gnu.org/wiki/Graphite
 776. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
 777. http://creativecommons.org/
 778. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 779. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 780. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bash
 781. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-bash
 782. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
 783. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-binutils-pass1
 784. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-binutils-pass2
 785. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bison
 786. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
 787. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-usage
 788. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 789. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-bzip2
 790. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-check
 791. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
 792. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-coreutils
 793. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-dejagnu
 794. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-diffutils
 795. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-diffutils
 796. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
 797. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-expect
 798. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-file
 799. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-file
 800. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
 801. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-findutils
 802. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-flex
 803. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
 804. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gawk
 805. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
 806. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gcc-pass1
 807. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gcc-pass2
 808. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gdbm
 809. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
 810. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gettext
 811. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
 812. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-glibc
 813. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gmp
 814. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grep
 815. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-grep
 816. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
 817. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
 818. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
 819. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-gzip
 820. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iana-etc
 821. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
 822. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
 823. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
 824. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
 825. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-less
 826. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libpipeline
 827. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libtool
 828. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-kernel
 829. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
 830. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-linux-headers
 831. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-m4
 832. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-m4
 833. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-make
 834. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-make
 835. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
 836. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-pages
 837. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-mpc
 838. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-mpfr
 839. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
 840. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-ncurses
 841. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-patch
 842. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-patch
 843. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
 844. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-perl
 845. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-pkgconfig
 846. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
 847. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
 848. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-site
 849. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-readline
 850. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sed
 851. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-sed
 852. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
 853. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-shadow
 854. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysklogd
 855. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-sysklogd
 856. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
 857. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-sysvinit
 858. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-tar
 859. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tar
 860. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tcl
 861. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
 862. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-texinfo
 863. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
 864. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-udev
 865. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 866. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
 867. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
 868. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-xz
 869. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-zlib
 870. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
 871. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#a2p
 872. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
 873. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#accessdb
 874. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 875. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#acinstall
 876. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 877. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#aclocal
 878. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 879. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#aclocalversion
 880. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
 881. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#addftinfo
 882. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 883. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#addpart
 884. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
 885. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#addr2line
 886. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
 887. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#afmtodit
 888. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 889. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#agetty
 890. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
 891. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#apropos
 892. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
 893. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ar
 894. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
 895. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#as
 896. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
 897. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ata_id
 898. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 899. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autoconf
 900. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 901. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autoheader
 902. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 903. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autom4te
 904. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 905. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#automake
 906. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
 907. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#automake-version
 908. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
 909. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autopoint
 910. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 911. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autoreconf
 912. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 913. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autoscan
 914. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
 915. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#autoupdate
 916. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
 917. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#awk
 918. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
 919. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#badblocks
 920. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
 921. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#base64
 922. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
 923. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#basename
 924. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bash
 925. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bash
 926. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bash
 927. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bashbug
 928. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
 929. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bigram
 930. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bison
 931. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bison
 932. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 933. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#blkid
 934. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 935. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#blockdev
 936. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
 937. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bootlogd
 938. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 939. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bunzip2
 940. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 941. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzcat
 942. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 943. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzcmp
 944. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 945. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzdiff
 946. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 947. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzegrep
 948. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 949. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzfgrep
 950. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 951. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzgrep
 952. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 953. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzip2
 954. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 955. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzip2recover
 956. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 957. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzless
 958. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
 959. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#bzmore
 960. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
 961. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#c
 962. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
 963. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#c-filt
 964. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
 965. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#c2ph
 966. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 967. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cal
 968. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
 969. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#captoinfo
 970. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
 971. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cat
 972. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
 973. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#catchsegv
 974. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
 975. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#catman
 976. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
 977. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cc
 978. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
 979. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cdrom_id
 980. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 981. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cfdisk
 982. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
 983. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chage
 984. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
 985. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chattr
 986. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
 987. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chcon
 988. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 989. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chcpu
 990. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
 991. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chem
 992. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
 993. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chfn
 994. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
 995. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chgpasswd
 996. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
 997. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chgrp
 998. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
 999. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chkdupexe
1000. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1001. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chmod
1002. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1003. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chown
1004. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1005. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chpasswd
1006. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1007. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chroot
1008. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1009. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chrt
1010. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1011. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chsh
1012. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1013. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#chvt
1014. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1015. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cksum
1016. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
1017. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#clear
1018. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-diffutils
1019. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cmp
1020. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
1021. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#code
1022. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1023. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#col
1024. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1025. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#colcrt
1026. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
1027. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#collect
1028. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1029. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#colrm
1030. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1031. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#column
1032. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1033. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#comm
1034. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1035. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#compile
1036. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1037. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#compile_et
1038. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1039. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config.charset
1040. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1041. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config.guess
1042. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1043. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config.rpath
1044. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1045. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config.sub
1046. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1047. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config_data
1048. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1049. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#corelist
1050. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1051. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cp
1052. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1053. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cpan
1054. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1055. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cpan2dist
1056. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1057. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cpanp
1058. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1059. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cpanp-run-perl
1060. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
1061. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cpp
1062. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1063. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#csplit
1064. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1065. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ctrlaltdel
1066. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1067. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ctstat
1068. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1069. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cut
1070. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1071. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cytune
1072. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1073. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#date
1074. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1075. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dd
1076. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1077. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#deallocvt
1078. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1079. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#debugfs
1080. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1081. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#delpart
1082. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1083. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#depcomp
1084. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1085. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#depmod
1086. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1087. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#df
1088. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1089. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dgawk
1090. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-diffutils
1091. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#diff
1092. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-diffutils
1093. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#diff3
1094. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1095. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dir
1096. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1097. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dircolors
1098. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1099. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dirname
1100. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1101. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dmesg
1102. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1103. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dprofpp
1104. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1105. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#du
1106. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1107. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dumpe2fs
1108. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1109. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#dumpkeys
1110. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1111. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e2freefrag
1112. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1113. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e2fsck
1114. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1115. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e2image
1116. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1117. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e2initrd_helper
1118. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1119. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e2label
1120. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1121. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e2undo
1122. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1123. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#e4defrag
1124. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1125. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#echo
1126. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grep
1127. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#egrep
1128. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1129. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#elfedit
1130. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1131. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#elisp-comp
1132. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1133. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#enc2xs
1134. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1135. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#env
1136. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1137. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#envsubst
1138. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1139. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#eqn
1140. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1141. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#eqn2graph
1142. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
1143. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ex
1144. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1145. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#expand
1146. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-expect
1147. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#expect
1148. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1149. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#expiry
1150. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1151. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#expr
1152. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1153. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#factor
1154. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1155. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#faillog
1156. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1157. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fallocate
1158. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1159. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#false
1160. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1161. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fdformat
1162. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1163. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fdisk
1164. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1165. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fgconsole
1166. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grep
1167. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fgrep
1168. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-file
1169. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#file
1170. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1171. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#filefrag
1172. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
1173. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#find
1174. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1175. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#find2perl
1176. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1177. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#findfs
1178. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1179. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#findmnt
1180. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-flex
1181. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#flex
1182. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1183. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#flock
1184. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1185. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fmt
1186. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1187. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fold
1188. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
1189. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#frcode
1190. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1191. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#free
1192. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1193. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck
1194. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1195. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck.cramfs
1196. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1197. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck.ext2
1198. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1199. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck.ext3
1200. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1201. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck.ext4
1202. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1203. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck.ext4dev
1204. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1205. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsck.minix
1206. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1207. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fsfreeze
1208. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1209. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fstab-decode
1210. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1211. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fstrim
1212. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1213. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ftp
1214. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
1215. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#fuser
1216. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
1217. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#g
1218. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1219. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gawk
1220. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1221. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gawk-version
1222. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
1223. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gcc
1224. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
1225. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gccbug
1226. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
1227. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gcov
1228. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1229. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gdiffmk
1230. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1231. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gencat
1232. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1233. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#genl
1234. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1235. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#geqn
1236. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1237. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#getconf
1238. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1239. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#getent
1240. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1241. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#getkeycodes
1242. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1243. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#getopt
1244. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1245. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gettext
1246. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1247. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gettext.sh
1248. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1249. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gettextize
1250. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1251. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gpasswd
1252. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1253. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gprof
1254. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1255. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grap2graph
1256. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1257. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grcat
1258. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grep
1259. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grep
1260. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1261. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grn
1262. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1263. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grodvi
1264. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1265. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groff
1266. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1267. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groffer
1268. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1269. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grog
1270. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1271. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grolbp
1272. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1273. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grolj4
1274. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1275. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grops
1276. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1277. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grotty
1278. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1279. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groupadd
1280. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1281. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groupdel
1282. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1283. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groupmems
1284. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1285. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groupmod
1286. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1287. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#groups
1288. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1289. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grpck
1290. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1291. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grpconv
1292. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1293. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grpunconv
1294. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1295. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-bin2h
1296. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1297. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-bios-setup
1298. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1299. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-editenv
1300. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1301. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-fstest
1302. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1303. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-install
1304. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1305. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-kbdcomp
1306. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1307. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-menulst2cfg
1308. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1309. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkconfig
1310. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1311. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkdevicemap
1312. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1313. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkimage
1314. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1315. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mklayout
1316. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1317. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mknetdir
1318. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1319. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkpasswd-pbkdf2
1320. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1321. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkrelpath
1322. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1323. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkrescue
1324. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1325. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-mkstandalone
1326. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1327. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-ofpathname
1328. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1329. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-probe
1330. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1331. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-reboot
1332. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1333. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-script-check
1334. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1335. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-set-default
1336. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1337. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-setup
1338. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-grub
1339. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#grub-sparc64-setup
1340. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1341. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gtbl
1342. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
1343. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gunzip
1344. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
1345. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gzexe
1346. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
1347. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#gzip
1348. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1349. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#h2ph
1350. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1351. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#h2xs
1352. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1353. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#halt
1354. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1355. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#head
1356. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1357. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#hexdump
1358. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1359. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#hostid
1360. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1361. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#hostname
1362. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1363. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#hostname-gettext
1364. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1365. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#hpftodit
1366. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1367. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#hwclock
1368. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1369. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#i386
1370. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1371. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#iconv
1372. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1373. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#iconvconfig
1374. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1375. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#id
1376. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1377. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifcfg
1378. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-autoconf
1379. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifnames
1380. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1381. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifstat
1382. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1383. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#igawk
1384. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1385. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#indxbib
1386. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
1387. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#info
1388. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
1389. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#infocmp
1390. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
1391. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#infokey
1392. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
1393. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#infotocap
1394. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1395. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#init
1396. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1397. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#insmod
1398. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1399. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#install
1400. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
1401. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#install-info
1402. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1403. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#install-sh
1404. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1405. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#instmodsh
1406. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1407. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ionice
1408. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1409. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ip
1410. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1411. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ipcmk
1412. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1413. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ipcrm
1414. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1415. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ipcs
1416. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1417. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#isosize
1418. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1419. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#join
1420. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1421. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#json_pp
1422. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1423. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#kbdrate
1424. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1425. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#kbd_mode
1426. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1427. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#kill
1428. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
1429. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#killall
1430. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1431. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#killall5
1432. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysklogd
1433. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#klogd
1434. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1435. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#kmod
1436. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1437. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#last
1438. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1439. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lastb
1440. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1441. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lastlog
1442. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1443. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ld
1444. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1445. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ld.bfd
1446. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1447. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ldattach
1448. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1449. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ldconfig
1450. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1451. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ldd
1452. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1453. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lddlibc4
1454. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-less
1455. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#less
1456. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-less
1457. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lessecho
1458. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-less
1459. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lesskey
1460. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-flex
1461. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lex
1462. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
1463. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lexgrog
1464. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-kernel
1465. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lfskernel
1466. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1467. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libnetcfg
1468. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libtool
1469. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libtool
1470. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libtool
1471. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libtoolize
1472. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1473. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#link
1474. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1475. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#linux32
1476. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1477. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#linux64
1478. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1479. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lkbib
1480. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1481. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ln
1482. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1483. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lnstat
1484. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1485. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#loadkeys
1486. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1487. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#loadunimap
1488. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1489. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#locale
1490. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1491. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#localedef
1492. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
1493. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#locate
1494. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1495. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#logger
1496. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1497. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#login
1498. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1499. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#logname
1500. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1501. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#logoutd
1502. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1503. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#logsave
1504. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1505. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#look
1506. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1507. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lookbib
1508. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1509. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#losetup
1510. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1511. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ls
1512. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1513. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lsattr
1514. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1515. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lsblk
1516. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1517. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lscpu
1518. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1519. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lsmod
1520. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1521. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzcat
1522. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1523. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzcmp
1524. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1525. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzdiff
1526. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1527. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzegrep
1528. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1529. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzfgrep
1530. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1531. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzgrep
1532. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1533. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzless
1534. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1535. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzma
1536. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1537. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzmadec
1538. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1539. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzmainfo
1540. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
1541. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#lzmore
1542. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-m4
1543. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#m4
1544. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-make
1545. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#make
1546. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
1547. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#makeinfo
1548. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
1549. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#man
1550. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
1551. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mandb
1552. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
1553. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#manpath
1554. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1555. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mapscrn
1556. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1557. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mcookie
1558. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1559. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#md5sum
1560. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1561. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mdate-sh
1562. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1563. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mesg
1564. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1565. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#missing
1566. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1567. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkdir
1568. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1569. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mke2fs
1570. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1571. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfifo
1572. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1573. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs
1574. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1575. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.bfs
1576. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1577. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.cramfs
1578. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1579. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.ext2
1580. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1581. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.ext3
1582. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1583. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.ext4
1584. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1585. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.ext4dev
1586. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1587. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkfs.minix
1588. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1589. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkinstalldirs
1590. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1591. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mklost-found
1592. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1593. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mknod
1594. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1595. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mkswap
1596. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1597. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mktemp
1598. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1599. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mk_cmds
1600. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1601. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mmroff
1602. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1603. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#modinfo
1604. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1605. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#modprobe
1606. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1607. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#more
1608. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1609. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mount
1610. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1611. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mountpoint
1612. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1613. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgattrib
1614. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1615. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgcat
1616. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1617. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgcmp
1618. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1619. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgcomm
1620. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1621. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgconv
1622. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1623. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgen
1624. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1625. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgexec
1626. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1627. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgfilter
1628. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1629. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgfmt
1630. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1631. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msggrep
1632. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1633. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msginit
1634. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1635. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgmerge
1636. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1637. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msgunfmt
1638. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1639. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#msguniq
1640. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1641. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mtrace
1642. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1643. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mv
1644. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1645. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#namei
1646. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
1647. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ncursesw5-config
1648. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1649. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#neqn
1650. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1651. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#newgrp
1652. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1653. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#newusers
1654. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1655. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ngettext
1656. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1657. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nice
1658. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1659. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nl
1660. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1661. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nm
1662. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1663. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nohup
1664. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1665. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nologin
1666. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1667. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nproc
1668. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1669. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nroff
1670. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1671. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nscd
1672. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1673. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#nstat
1674. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1675. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#objcopy
1676. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1677. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#objdump
1678. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1679. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#od
1680. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
1681. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#oldfind
1682. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1683. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#openvt
1684. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1685. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#partx
1686. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1687. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#passwd
1688. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1689. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#paste
1690. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-patch
1691. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#patch
1692. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1693. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pathchk
1694. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1695. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pcprofiledump
1696. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1697. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pdfroff
1698. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
1699. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pdftexi2dvi
1700. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
1701. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#peekfd
1702. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1703. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#perl
1704. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1705. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#perl-version
1706. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1707. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#perlbug
1708. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1709. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#perldoc
1710. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1711. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#perlivp
1712. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1713. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#perlthanks
1714. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1715. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pfbtops
1716. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1717. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pg
1718. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1719. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pgawk
1720. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1721. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pgawk-version
1722. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1723. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pgrep
1724. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1725. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pic
1726. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1727. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pic2graph
1728. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1729. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#piconv
1730. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1731. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pidof
1732. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1733. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ping
1734. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1735. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ping6
1736. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1737. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pinky
1738. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1739. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pivot_root
1740. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-pkgconfig
1741. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pkgconfig
1742. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1743. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pkill
1744. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1745. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pl2pm
1746. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1747. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pmap
1748. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1749. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pod2html
1750. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1751. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pod2latex
1752. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1753. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pod2man
1754. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1755. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pod2text
1756. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1757. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pod2usage
1758. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1759. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#podchecker
1760. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1761. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#podselect
1762. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1763. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#post-grohtml
1764. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1765. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#poweroff
1766. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1767. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pr
1768. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1769. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pre-grohtml
1770. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1771. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#preconv
1772. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1773. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#printenv
1774. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1775. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#printf
1776. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1777. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#prlimit
1778. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1779. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#prove
1780. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
1781. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#prtstat
1782. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1783. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ps
1784. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1785. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#psed
1786. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1787. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#psfaddtable
1788. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1789. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#psfgettable
1790. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1791. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#psfstriptable
1792. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1793. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#psfxtable
1794. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
1795. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pstree
1796. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-psmisc
1797. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pstree.x11
1798. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1799. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pstruct
1800. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1801. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ptar
1802. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1803. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ptardiff
1804. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1805. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ptargrep
1806. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1807. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ptx
1808. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1809. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pt_chown
1810. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gawk
1811. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pwcat
1812. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1813. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pwck
1814. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1815. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pwconv
1816. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1817. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pwd
1818. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1819. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pwdx
1820. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1821. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#pwunconv
1822. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
1823. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#py-compile
1824. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1825. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ranlib
1826. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1827. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#raw
1828. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1829. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rcp
1830. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1831. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#readelf
1832. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1833. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#readlink
1834. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1835. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#readprofile
1836. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1837. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#realpath
1838. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1839. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#reboot
1840. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
1841. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#recode-sr-latin
1842. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1843. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#refer
1844. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1845. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rename
1846. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1847. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#renice
1848. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
1849. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#reset
1850. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
1851. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#resize2fs
1852. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1853. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rev
1854. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1855. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rexec
1856. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1857. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rlogin
1858. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1859. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rm
1860. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1861. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rmdir
1862. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
1863. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rmmod
1864. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-tar
1865. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rmt
1866. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1867. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#roff2dvi
1868. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1869. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#roff2html
1870. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1871. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#roff2pdf
1872. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1873. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#roff2ps
1874. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1875. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#roff2text
1876. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1877. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#roff2x
1878. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1879. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#routef
1880. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1881. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#routel
1882. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1883. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rpcgen
1884. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
1885. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rsh
1886. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1887. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rtacct
1888. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1889. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rtcwake
1890. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1891. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rtmon
1892. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1893. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rtpr
1894. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1895. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rtstat
1896. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1897. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#runcon
1898. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1899. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#runlevel
1900. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-dejagnu
1901. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#runtest
1902. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
1903. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rview
1904. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
1905. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rvim
1906. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1907. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#s2p
1908. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1909. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#script
1910. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1911. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#scriptreplay
1912. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
1913. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#scsi_id
1914. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-diffutils
1915. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sdiff
1916. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sed
1917. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sed
1918. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1919. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#seq
1920. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1921. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setarch
1922. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1923. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setfont
1924. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1925. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setkeycodes
1926. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1927. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setleds
1928. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1929. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setmetamode
1930. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1931. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setsid
1932. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1933. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setterm
1934. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
1935. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sfdisk
1936. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1937. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sg
1938. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bash
1939. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sh
1940. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1941. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sha1sum
1942. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1943. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sha224sum
1944. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1945. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sha256sum
1946. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1947. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sha384sum
1948. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1949. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sha512sum
1950. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1951. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#shasum
1952. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1953. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#showconsolefont
1954. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
1955. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#showkey
1956. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1957. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#shred
1958. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1959. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#shuf
1960. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
1961. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#shutdown
1962. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1963. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#size
1964. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1965. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#skill
1966. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1967. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#slabtop
1968. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1969. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sleep
1970. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1971. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sln
1972. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
1973. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#snice
1974. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
1975. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#soelim
1976. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1977. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sort
1978. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1979. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sotruss
1980. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
1981. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#splain
1982. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1983. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#split
1984. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
1985. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sprof
1986. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
1987. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ss
1988. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1989. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#stat
1990. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1991. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#stdbuf
1992. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1993. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#strings
1994. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
1995. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#strip
1996. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
1997. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#stty
1998. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
1999. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#su
2000. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
2001. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sulogin
2002. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2003. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sum
2004. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2005. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#swaplabel
2006. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2007. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#swapoff
2008. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2009. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#swapon
2010. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2011. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#switch_root
2012. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
2013. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#symlink-tree
2014. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2015. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sync
2016. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2017. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sysctl
2018. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysklogd
2019. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#syslogd
2020. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2021. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tabs
2022. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2023. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tac
2024. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2025. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tail
2026. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2027. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tailf
2028. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
2029. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#talk
2030. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-tar
2031. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tar
2032. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2033. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#taskset
2034. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
2035. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tbl
2036. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iproute2
2037. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ss
2038. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tcl
2039. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tclsh
2040. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tcl
2041. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tclsh8.5
2042. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2043. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tee
2044. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
2045. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#telinit
2046. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
2047. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#telnet
2048. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2049. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#test
2050. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gdbm
2051. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#testgdbm
2052. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
2053. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#texi2dvi
2054. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
2055. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#texi2pdf
2056. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-texinfo
2057. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#texindex
2058. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
2059. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tfmtodit
2060. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
2061. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tftp
2062. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2063. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tic
2064. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2065. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#timeout
2066. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2067. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tload
2068. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2069. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#toe
2070. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2071. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#top
2072. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2073. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#touch
2074. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2075. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tput
2076. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2077. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tr
2078. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-inetutils
2079. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#traceroute
2080. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-groff
2081. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#troff
2082. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2083. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#true
2084. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2085. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#truncate
2086. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2087. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tset
2088. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2089. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tsort
2090. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2091. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tty
2092. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
2093. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tune2fs
2094. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2095. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tunelp
2096. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2097. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#tzselect
2098. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
2099. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#udevadm
2100. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
2101. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#udevd
2102. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2103. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ul
2104. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2105. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#umount
2106. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2107. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#uname
2108. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2109. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#uncompress
2110. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2111. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unexpand
2112. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
2113. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unicode_start
2114. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kbd
2115. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unicode_stop
2116. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2117. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#uniq
2118. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2119. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unlink
2120. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2121. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unlzma
2122. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2123. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unshare
2124. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2125. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#unxz
2126. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
2127. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#updatedb
2128. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2129. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#uptime
2130. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
2131. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#useradd
2132. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
2133. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#userdel
2134. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
2135. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#usermod
2136. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2137. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#users
2138. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-sysvinit
2139. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#utmpdump
2140. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2141. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#uuidd
2142. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2143. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#uuidgen
2144. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2145. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vdir
2146. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
2147. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vi
2148. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
2149. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#view
2150. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
2151. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vigr
2152. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
2153. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vim
2154. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
2155. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vimdiff
2156. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
2157. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vimtutor
2158. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-shadow
2159. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vipw
2160. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2161. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#vmstat
2162. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2163. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#w
2164. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2165. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#wall
2166. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2167. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#watch
2168. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2169. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#wc
2170. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
2171. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#whatis
2172. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2173. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#whereis
2174. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2175. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#who
2176. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2177. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#whoami
2178. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2179. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#wipefs
2180. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2181. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#x86_64
2182. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-findutils
2183. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xargs
2184. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
2185. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xgettext
2186. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-perl
2187. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xsubpp
2188. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2189. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xtrace
2190. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-vim
2191. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xxd
2192. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2193. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xz
2194. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2195. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzcat
2196. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2197. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzcmp
2198. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2199. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzdec
2200. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2201. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzdiff
2202. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2203. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzegrep
2204. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2205. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzfgrep
2206. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2207. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzgrep
2208. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2209. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzless
2210. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2211. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xzmore
2212. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bison
2213. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#yacc
2214. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2215. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#yes
2216. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-automake
2217. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ylwrap
2218. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2219. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zcat
2220. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2221. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zcmp
2222. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2223. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zdiff
2224. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2225. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zdump
2226. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2227. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zegrep
2228. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2229. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zfgrep
2230. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2231. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zforce
2232. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2233. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zgrep
2234. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2235. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zic
2236. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2237. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zless
2238. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2239. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zmore
2240. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gzip
2241. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#znew
2242. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-db
2243. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#zsoelim
2244. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2245. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ld.so
2246. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2247. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libanl
2248. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
2249. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libasprintf
2250. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
2251. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libbfd
2252. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2253. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libblkid
2254. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2255. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libBrokenLocale
2256. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2257. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libbsd-compat
2258. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bzip2
2259. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libbz2
2260. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2261. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libc
2262. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-check
2263. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libcheck
2264. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2265. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libcidn
2266. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
2267. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libcom_err
2268. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2269. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libcrypt
2270. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2271. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libcurses
2272. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2273. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libdl
2274. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
2275. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libe2p
2276. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-expect
2277. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libexpect
2278. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
2279. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libext2fs
2280. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-flex
2281. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libfl.a
2282. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2283. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libform
2284. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2285. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libg
2286. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2287. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgcc
2288. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2289. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgcov
2290. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gdbm
2291. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgdbm
2292. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
2293. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgettextlib
2294. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
2295. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgettextpo
2296. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
2297. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgettextsrc
2298. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gmp
2299. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgmp
2300. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gmp
2301. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgmpxx
2302. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2303. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libgomp
2304. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-readline
2305. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libhistory
2306. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
2307. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libiberty
2308. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2309. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libieee
2310. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kmod
2311. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libtool
2312. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libltdl
2313. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2314. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#liblto_plugin
2315. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-xz
2316. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#liblzma
2317. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2318. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libm
2319. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-file
2320. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmagic
2321. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2322. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmcheck
2323. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2324. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmemusage
2325. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2326. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmenu
2327. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gmp
2328. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmp
2329. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-mpc
2330. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmpc
2331. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-mpfr
2332. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmpfr
2333. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2334. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libmudflap
2335. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2336. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libncurses
2337. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2338. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libnsl
2339. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2340. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libnss
2341. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-binutils
2342. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libopcodes
2343. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-ncurses
2344. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libpanel
2345. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2346. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libpcprofile
2347. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-libpipeline
2348. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-procps
2349. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libproc
2350. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2351. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libpthread
2352. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2353. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libquadmath
2354. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
2355. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libquota
2356. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-readline
2357. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libreadline
2358. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2359. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libresolv
2360. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2361. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#librpcsvc
2362. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2363. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#librt
2364. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2365. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libSegFault
2366. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-e2fsprogs
2367. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libss
2368. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2369. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libssp
2370. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-coreutils
2371. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libstdbuf
2372. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2373. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libstdc
2374. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gcc
2375. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libsupc
2376. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tcl
2377. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libtcl8.5.so
2378. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-tools-tcl
2379. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libtclstub8.5.a
2380. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2381. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libthread_db
2382. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
2383. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libudev
2384. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-glibc
2385. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libutil
2386. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-util-linux
2387. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libuuid
2388. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-bison
2389. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#liby.a
2390. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-zlib
2391. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#libz
2392. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-gettext
2393. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#preloadable_libintl.so
2394. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2395. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#checkfs-bootscripts
2396. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2397. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#cleanfs-bootscripts
2398. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2399. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#console-bootscripts
2400. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-console
2401. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2402. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#functions-bootscripts
2403. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2404. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#halt-bootscripts
2405. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hostname
2406. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2407. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifdown-bootscripts
2408. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2409. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ifup-bootscripts
2410. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2411. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#localnet-bootscripts
2412. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hosts
2413. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2414. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#modules-bootscripts
2415. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2416. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mountfs-bootscripts
2417. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2418. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mountkernfs-bootscripts
2419. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2420. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#network-bootscripts
2421. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hosts
2422. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-network
2423. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2424. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rc-bootscripts
2425. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2426. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#reboot-bootscripts
2427. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2428. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sendsignals-bootscripts
2429. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2430. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#setclock-bootscripts
2431. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-setclock
2432. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2433. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#static-bootscripts
2434. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2435. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#swap-bootscripts
2436. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2437. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sysctl-bootscripts
2438. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2439. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sysklogd-bootscripts
2440. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-sysklogd
2441. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2442. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#template-bootscripts
2443. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2444. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#udev-bootscripts
2445. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-bootscripts
2446. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#udev-retry-bootscripts
2447. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-kernel
2448. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#config
2449. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-kernel
2450. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#System.map
2451. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-kernfs
2452. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-bootable-fstab
2453. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
2454. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-hosts
2455. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-sysvinit
2456. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-inputrc
2457. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-ld
2458. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-finish-theend
2459. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-glibc
2460. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-modprobe
2461. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-glibc
2462. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
2463. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-scripts-profile
2464. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iana-etc
2465. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#resolv.conf
2466. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-iana-etc
2467. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-sysklogd
2468. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-udev
2469. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#etc-udev
2470. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#conf-vim
2471. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2472. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#asm-generic
2473. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2474. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#asm
2475. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2476. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#drm
2477. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2478. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#linux
2479. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2480. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#mtd
2481. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2482. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#rdma
2483. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2484. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#scsi
2485. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2486. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#sound
2487. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2488. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#video
2489. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-linux-headers
2490. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#xen
2491. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
2492. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
2493. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
2494. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-createfiles
2495. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#ch-system-man-pages
2496. file://localhost/home/matsuyama/build/lfsbookja/LFS/7.2/lfsbookja-7.2.html#man-pages
