レンタルサーバ + Webシステム開発 = E-business

■レンタルサーバご利用参考資料
サーバご利用の参考にJF Project によるJF (Japanese FAQ)を掲載しています。

Linux JF(Japanese FAQ)Project.
JF は, Linux に関する解説文書・FAQ などを作成・収集・配布するプロジェクトです.

グリーンネット・トップページへ戻る


一覧に戻る
Linux From Scratch

第 5.0 版

Gerard Beekmans

濱崎康平 - 日本語訳

koh@bj.wakwak.com

Copyright (C) 1999-2003 by Gerard Beekmans

この本は必要最低限のソフトだけを使って、ゼロから Linux システムを作る過
程を説明します。

Copyright (c) 1999-2003, Gerard Beekmans

All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

 ・ Redistributions in any form must retain the above copyright notice,
    this list of conditions and the following disclaimer.
   
 ・ Neither the name of "Linux From Scratch" nor the names of its
    contributors may be used to endorse or promote products derived
    from this material without specific prior written permission.
   
 ・ Any material derived from Linux From Scratch must contain a
    reference to the "Linux From Scratch" project.
   
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

(訳注:以下は参考訳であり法的な効力を持つのは上記の原文です。また、日本
語訳の権利は原文に準ずるものとします。)

改訂の有無に拘らず、ソースとバイナリ形式による再配布と使用は、以下の条
件が入るならば許可される。

 ・ どのような形式の再配布も、上記の著作権の通知とこの条件の一覧、以下
    の免責事項を含まなければならない。
   
 ・ "Linux From Scratch" という名称とその貢献者の名前はどちらも、特別な
    事前の文面での許可なしにこの資料から由来する成果や創作品を推薦、奨
    励するために使われてはならない。
   
 ・ Linux From Scratch から由来する成果や創作品は "Linux From Scratch"
    プロジェクトへの出典を含まなければならない。
   
このソフトウェアは著作権保持者と貢献者によって "そのまま" 規定され、市
販性や特定の目的のための適合性への暗示的な保証を含む、またそれだけに限
らずあらゆる明示的または暗示的な保証をしない。如何なる場合においても代
理責任者または貢献者は直接的、間接的、二次的、例外的、典型的な被害(以
下のものを含むがそれだけに限らない−代用となる物やサービスの入手。機能
、情報、または利益の損失。業務の中断など)についてどれほどその原因とな
ったとしても、また責任のあらゆる理論において、対照的に厳密な責任であろ
うと、そのような被害の可能性についての忠告をも含むこのソフトウェアのい
かなる使用方法によって起こる不法行為(過失その他を含む)であろうと、法
的責任を負わないものとする。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

献呈

私の愛する協力的な妻 Berverly Beekmans に捧ぐ。

Table of Contents
序文
   
    はじめに
    この本を読まれる方へ
       
        どんな人がこの本を読もうと思うか
        この本を読もうとしない人
       
    あらかじめ必要なこと
    構造
       
        第一部 - 導入
        第二部 - 構築の準備
        第三部 - LFS システムの構築
        第四部 - 付録
       
I. 第一部ー導入
   
    1. はじめに
       
        どのように行なわれるか
        本書で使う凡例と表記方法
        本書の版
        改訂の記録
        リソース
        謝辞
        日本語訳について
       
    2. 重要な情報
       
        $LFS について
        SBU について
        テストスイートについて
        質問の仕方
       
II. 第二部ー構築の準備
   
    3. 新しいパーティションを準備する
       
        はじめに
        新しいパーティションを作成する
        新しいパーティションにファイルシステムを作成する
        新しいパーティションのマウント
       
    4. 必要なもの: パッケージとパッチ
       
        はじめに
        すべてのパッケージ
        必要なパッチ
       
    5. 暫定システムの構成
       
        はじめに
        Toolchain 技術情報
        $LFS/tools ディレクトリを作成する
        LFS というユーザを追加する
        環境を設定する
        Binutils-2.14 のインストール - 第 1 段階
        GCC-3.3.1 のインストール第1段階
        Linux-2.4.22 ヘッダのインストール
        Glibc-2.3.2 のインストール
        Glibc の"閉じ込め"
        Tcl-8.4.4 のインストール
        Expect-5.39.0 のインストール
        DejaGnu-1.4.3 のインストール
        GCC-3.3.1 のインストール
        Binutils-2.14 のインストール
        Gawk-3.1.3 のインストール
        Coreutils-5.0 のインストール
        Bzip2-1.0.2 のインストール
        Gzip-1.3.5 のインストール
        Diffutils-2.8.1 のインストール
        Findutils-4.1.20 のインストール
        Make-3.80 のインストール
        Grep-2.5.1 のインストール
        Sed-4.0.7 のインストール
        Gettext-0.12.1 のインストール
        Ncurses-5.3 のインストール
        Patch-2.5.4 のインストール
        Tar-1.13.25 のインストール
        Texinfo-4.6 のインストール
        Bash-2.05b のインストール
        Util-linux-2.12 のインストール
        Perl-5.8.0 のインストール
        不必要なものを取り除く
       
III. 第三部ー LFSシステムの構築
   
    6. 基本的なシステムソフトウェアをインストールする
       
        はじめに
        デバッグシンボルについて
        chroot 環境へ入る
        所有権を変更する
        ディレクトリを作成する
        prov と devpts ファイルシステムのマウント
        必要なシンボリックリンクを作成する
        passwd と group ファイルを作成する
        デバイスの作成 (Makedev-1.7)
        Linux-2.4.22 のインストール
        Man-pages-1.60 のインストール
        Glibc-2.3.2 のインストール
        Toolchain を再調整する
        Binutils-2.14 のインストール
        GCC-3.3.1 のインストール
        Coreutils-5.0 のインストール
        Zlib-1.1.4 のインストール
        Lfs-Utils-0.3 のインストール
        Findutils-4.1.20 のインストール
        Gawk-3.1.3 のインストール
        Ncurses-5.3 のインストール
        Vim-6.2 のインストール
        M4-1.4 のインストール
        Bison-1.875 のインストール
        Less-381 のインストール
        Groff-1.19 のインストール
        Sed-4.0.7 のインストール
        Flex-2.5.4a のインストール
        Gettext-0.12.1 のインストール
        Net-tools-1.60 のインストール
        Inetutils-1.4.2 のインストール
        Perl-5.8.0 のインストール
        Texinfo-4.6 のインストール
        Autoconf-2.57 のインストール
        Automake-1.7.6 のインストール
        Bash-2.05b のインストール
        File-4.04 のインストール
        Libtool-1.5 のインストール
        Bzip2-1.0.2 のインストール
        Diffutils-2.8.1 のインストール
        Ed-0.2 のインストール
        Kbd-1.08 のインストール
        E2fsprogs-1.34 のインストール
        Grep-2.5.1 のインストール
        Grub-0.93 のインストール
        Gzip-1.3.5 のインストール
        Man-1.5m2 のインストール
        Make-3.80 のインストール
        Modutils-2.4.25 のインストール
        Patch-2.5.4 のインストール
        Procinfo-18 のインストール
        Procps-3.1.11 のインストール
        Psmisc-21.3 のインストール
        Shadow-4.0.3 のインストール
        Sysklogd-1.4.1 のインストール
        Sysvinit-2.85 のインストール
        Tar-1.13.25 のインストール
        Util-linux-2.12 のインストール
        GCC-2.95.3 のインストール
        改訂された chroot コマンド
        LFS-Bootscripts-1.12 のインストール
        システム構成要素を設定する
       
    7. システムブートスクリプトを設定する
       
        はじめに
        これらのスクリプトによってブートプロセスがどのように働くか?
        setclock スクリプトを設定する
        私は loadkeys スクリプトが必要ですか?
        sysklogd スクリプトを設定する
        localnet スクリプトを設定する
        /etc/hosts ファイルを作成する
        ネットワークスクリプトを設定する
       
    8. LFSシステムを起動できるようにする
       
        はじめに
        /etc/fstab ファイルを作成する
        Linux-2.4.22 のインストール
        LFS システムを起動できるようにする
       
    9. 最後に
       
        最後に
        ユーザリストに登録しよう
        システムを再起動する
        まだ他に?
       
IV. 第四部ー付録
   
    A. パッケージの説明と依存性
       
        はじめに
        Autoconf
        Automake
        Bash
        Binutils
        Bison
        Bzip2
        Coreutils
        DejaGnu
        Diffutils
        E2fsprogs
        Ed
        Expect
        File
        Findutils
        Flex
        Gawk
        GCC
        Gettext
        Glibc
        Grep
        Groff
        Grub
        Gzip
        Inetutils
        Kbd
        Less
        LFS-Bootscripts
        Lfs-Utils
        Libtool
        Linux (the kernel)
        M4
        Make
        MAKEDEV
        Man
        Man-pages
        Modutils
        Ncurses
        Net-tools
        Patch
        Perl
        Procinfo
        Procps
        Psmisc
        Sed
        Shadow
        Sysklogd
        Sysvinit
        Tar
        Tcl
        Texinfo
        Util-linux
        Vim
        Zlib
       
    B. プログラムとライブラリファイルの目録
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

序文

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

私は数多くの異なった Linux ディストリビューションを使ってきましたが、そ
のどれ一つにも満足できませんでした。ブートスクリプトの配置が好きではあ
りませんでしたし、いくつかのプログラムがデフォルトで設定されているのも
好きではありませんでした。非常に多くのその手のことが私を悩ませました。
結局、私が自分の Linux システムに完全に満足しようとするなら、ソースコー
ドだけを使ってゼロから私自身のシステムを構築する必要があるということに
気がつきました。私はどんな種類のあらかじめコンパイルされたパッケージも
、いくつかの基本的なユーティリティをインストールするCD-ROMやブートディ
スクも使わないことを決心しました。また、私のシステムを開発するのに現在
の私の Linux システムを使うことにしました。

この荒っぽい考えはそのときは非常に困難に思えて、またしばしば不可能な作
業にも思えました。依存性やコンパイル時のエラーなどのあらゆる種類の問題
を整理したあとで、ちゃんと使える注文建築の Linux システムがつくり出され
ました。私はこのシステムを Linux From Scratch システム、又は短く LFS シ
ステムと呼びました。

ご自分の LFS で素晴しい時間を過ごせますように。

-- 
Gerard Beekmans
gerard@linuxfromscratch.org

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

この本を読まれる方へ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

どんな人がこの本を読もうと思うか

この本を読む理由づけはいろいろあるでしょう。一番の理由は Linux システム
をソースコードからそのままインストールするためでしょう。多くの人が "そ
こにあるものをただダウンロードしてインストールできるのに、なぜ手動で
Linux システムをゼロから構築する苦労をしようとするのか?" という疑問を
挙げます。これはいい質問で、この節を設けた動機でもあります。

LFS 存在のひとつの重要な理由は、Linux システムがどのように動くかについ
て隅々まで学ぶ人たちを手伝うためです。 LFS システムを構築することは、
Linux システムを動かしているもの、そしてそのそれぞれがどのように一緒に
、また依存しあいながら動くかを明らかにするのに役立ちます。この学習経験
が提供する最もいいことの一つは、Linux を自分の好みやニーズに合わせてカ
スタマイズする能力です。

LFS の基本的に重要なことは、誰か他の人が完成したものに頼らずに、自分の
システムをもっと多く管理するようにすることです。 LFS と共にあなたが運転
席にすわり、ディレクトリのレイアウトやブートスクリプトの設定など、シス
テムのあらゆる面を自分で決定します。あなたはまた、どこに、なぜ、どのよ
うにプログラムをインストールするかを決定します。

LFS のもう一つの特典は、非常にコンパクトな Linux システムを作る能力です
。標準のディストリビューションをインストールするときに、あなたはいつも
、全く使うことがないようないくつかのプログラムをインストールすることを
強いられます。それらは貴重なディスクスペースを、悪くすれば CPU サイクル
を浪費しながら、ただそこに居座るだけです。 LFS システムを 100 MB 以下で
構築することは難しくありません。まだ多くきこえますか?私達の内の何人か
は、非常に小さな組み込み LFS システムを作る研究を行ってきています。私達
は Apache ウェブサーバーを走らせるだけに充分なシステムを約 8 MB のディ
スクスペースでうまく構築しました。さらに切りつめて、5 MB かそれ以下も可
能でしょう。これは普通のディストリビューションでは到底できないでしょう
。

配布された Linux をファーストフードで買うハンバーガーに例えることが出来
ます。つまり、自分が何を食べているのかについて考えていない、ということ
です。一方、LFS はハンバーガーではなくハンバーガーを作るレシピを提供し
ます。これは、気に入らない材料を取り除き、またハンバーガーの風味を増す
材料を加えるなど、よく吟味することができます。レシピに納得したら、材料
を準備しましょう。あなたはただ好きなように作ります。炙る、焼く、揚げる
、丸焼きにする、生で食べても構いません。

さらに別のこじつけをするなら、LFS を完成した家にたとえることもできます
。 LFS は家の骨組み構造を提供しますが、それをどう建築するかはあなた次第
です。計画はやりたいように自由に修正してください。

注文建築の Linux システムの利点の最後の一つはセキュリティです。システム
全体をソースコードからコンパイルすることで、すべての物を検査し、必要だ
と考えるすべてのセキュリティパッチをあてる権限があります。誰かがセキュ
リティホールを修正するバイナリパッケージをコンパイルするのを待つ必要は
ありません。パッチを検討し、自分でパッチをあてない限り、新しいバイナリ
パッケージが正しく構築され、実際に問題を適切に修正できているとの保証は
得られません。

自分で自分の LFS システムを構築することについて、ここに載せきれないほど
非常に多くの理由があります。この節は氷山の一角に過ぎません。あなたは
LFS システムの経験を積むにしたがって、情報と知識が真にもたらす力を独力
で見つけるでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

この本を読もうとしない人

どんな理由にしろ、恐らくこの本を読みたくないと感じる人がいるでしょう。
ゼロから自分の Linux システムを構築したいと思わないなら、この本を読みた
いとは思わないでしょう。私達の目的は、完壁で使用に適した基礎レベルのシ
ステムをあなたが構築するのを手伝うことです。コンピュータが起動するあい
だに何がおきているのかを知りたいだけならば、"From Power Up To Bash
Prompt" HOWTO を勧めます。この HOWTO は本書と似た最低限のシステムを構築
していますが、厳密には BASH プロンプトまで起動できるシステムを作りだす
ことに焦点を当てています。

どちらを読むか決めかねているなら、まず何がしたいのかをはっきりさせまし
ょう。Linux システムを、その方法を学びながら構築したいのであれば、恐ら
く本書が最もよい選択でしょう。目的がまったく教育上のもので、今の完成し
たシステムに何の計画も持っていなければ、恐らく "From Power Up To Bash
Prompt" HOWTO がより良い選択となるでしょう。

"From Power Up To Bash Prompt" HOWTO は http://axiom.anu.edu.au/~okeefe
/p2b/ か The Linux Documentation Project のウェブサイト http://
www.tldp.org/HOWTO/From-PowerUp-To-Bash-Prompt-HOWTO.html にあります。

(訳注: "From Power Up To Bash Prompt" HOWTO の日本語訳は Linux JF
Project のウェブサイト http://www.linux.or.jp/JF/JFdocs/
From-PowerUp-To-Bash-Prompt-HOWTO.html にあります。)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

あらかじめ必要なこと

この本は読者が Linux ソフトウェアの使用とインストールについて相当量の知
識を持っていると想定します。LFS システムを構築しはじめる前に、以下の
HOWTOを読んだ方がいいでしょう。

 ・ Software-Building-HOWTO
   
    これは Linux における "一般的な" UNIX ソフトウェアの構築とインスト
    ールについての広範囲なガイドです。この HOWTO は以下の場所で手に入り
    ます。 http://www.tldp.org/HOWTO/Software-Building-HOWTO.html
   
    (訳注:この HOWTO の日本語訳は Linux JF Project のウェブサイト 
    http://www.tldp.org/HOWTO/Software-Building-HOWTO.html で利用可能で
    す。)
   
 ・ The Linux Users' Guide
   
    このガイドは分類されたLinuxソフトウェアの使いかたを扱い、以下の場所
    で手に入ります。 http://espc22.murdoch.edu.au/~stewart/guide/
    guide.html.
   
 ・ The Essential Pre-Reading Hint
   
    これは特に Linux の初心者向けに書かれた LFS ヒント集です。これは、
    ほとんどが広い分野のトピックを網羅する、役立につ情報源へのリンクに
    なっています。 LFS をインストールしようとする人は、少なくともこのヒ
    ント集の中の多くのトピックについて理解しておいたほうがよいでしょう
    。これは以下の場所で手に入ります。 http://www.linuxfromscratch.org/
    hints/downloads/files/essential_prereading.txt
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

構造

この本は以下の 4 つの部分に別けられています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

第一部 - 導入

第一部ではどのようにインストールするかについていくつかの重要な情報を説
明し、この本についてのメタ情報、つまりこの本の版、改訂記録、謝辞、提携
メーリングリストなどを与えます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

第二部 - 構築の準備

第二部ではどのように構築の準備をするかという説明をします。パーティショ
ンの作成、パッケージのダウンロード、暫定ツールのコンパイルなど。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

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

第三部では LFS システムの構築へガイドします。すべてのパッケージ一つ一つ
をコンパイルしてインストールし、ブートスクリプトを設定し、カーネルをイ
ンストールします。その結果できあがる基本的な Linux システムは、他のソフ
トウェアを構築することができ、システムを好きなように広げる土台となりま
す。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

第四部 - 付録

第四部は二つの付録からなります。一つめはインストールされたパッケージの
アルファベット順のリストで、それぞれのパッケージにはその公式のダウンロ
ード場所と内容、インストールの依存性が与えられています。二つめの付録の
リストは、これらのパッケージによってインストールされるすべてのプログラ
ムとライブラリのアルファベット順のリストです。これによってあるプログラ
ムやライブラリがどのパッケージに属するものかすぐに分かります。

(初めの付録の大半は第二部と第三部に集約されています。これはこの本をや
や厚くしますが、より読みやすくなると信じています。また、インストールを
行っている間に付録を参照し続ける必要はありません。この行ったり来たりは
、特に本書のプレーンテキスト版を読んでいる場合には本当に嫌な仕事になり
ます。)

I. 第一部ー導入

Table of Contents
1. はじめに
2. 重要な情報

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 1. はじめに

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

どのように行なわれるか

まず、あらかじめインストールした Linux ディストリビューション( Debian
や Mandrake, Red Hat, SuSE など)を使って LFS システムを構築しようとし
ています。この現在の Linux システム(ホスト)は出発点として使われます。
なぜならば、新しいシステムを構築するのにコンパイラやリンカ、シェルとい
ったプログラムを必要とするからです。必要なツールは、通常、ディストリビ
ューションをインストールするときのオプションの一つとして "development"
を選択していれば利用できます。

第 3 章では、まず新規の Linux ネイティブなパーティションとファイルシス
テムを作成します。そこが新しい LFS システムがコンパイルされ、またインス
トールされる場所になります。そのあとに第 4 章で、LFS システムを構築する
のに必要なすべてのパッケージとパッチをダウンロードし、新しいファイルシ
ステム上にそれらを保存します。

第 5 章では基本的な開発セット( toolchain ともいいます)を構成する数多
くのパッケージのインストールについて説明します。この toolchain は第 6
章で実際のシステムを構築するのに使われます。これらのパッケージの内のい
くつかは鶏と卵の関係を解決するのに必要になります。たとえばコンパイラを
コンパイルするのにはコンパイラが必要です。

第 5 章でまず行なわれることは toolchain の構築の第 1 段階で、Binutils
と GCC の作成です。これらのパッケージのプログラムは、ホストシステムから
独立して使えるように静的にリンクされます。二つ目にやることは C ライブラ
リである Glibc を構築することです。Glibc は第 1 段階で構築したばかりの
toolchain によってコンパイルされます。三つ目にやることは toolchain の構
築の第 2 段階です。今回の toolchain は新しく構築された Glibc に対して動
的にリンクされます。第 5 章の残りは、二回目の構築で作成した toolchain
を使ってすべてのパッケージを構築し、ホストから独立した新しい Glibc に動
的にリンクすることです。これが完了したとき、LFS インストールプロセスは
もはや実行中のカーネルを除いてホストディストリビューションに依存しませ
ん。

"これはどうも自分のホストディストリビューションから逃げだすだけなのに、
大変な仕事のように見える"と考えているかもしれませんね。十分な技術的な説
明は、静的リンクと動的リンクの違いについての説明も含めて、第 5 章の初め
で行っています。

第 6 章では実際の LFS システムが構築されます。 chroot ( change root )
プログラムを使って仮想的な環境に入り、そのルートディレクトリが LFS パー
ティションに設定されるシェルを開始します。これは、LFS パーティションを
ルートパーティションとしてマウントするようにカーネルを再起動して指示す
ることととてもよく似ています。実際に再起動せずに chroot を使う理由は、
起動可能なシステムを作るには今すぐに必要としない余計な仕事が要求される
からです。しかし主な利点としては、chroot を使えば LFS が構築されている
間にホストを使い続けることができることです。パッケージのコンパイルが完
了するのを待っている間、ヴァーチャルコンソールを他のものに変えるか、X
デスクトップでただいつものようにコンピュータを使っていればいいのですか
ら。

インストールを終らせるために、第 7 章でブートスクリプトが設定され、カー
ネルとブートローダーが第 8 章で設定されます。第 9 章はこの本を終らせた
あとにあなたを助けるいくつかの助言を含みます。最後に、コンピュータを再
起動して新しい LFS システムを動かす準備ができます。

これが構築過程の簡単な説明です。それぞれの段階の詳細な情報は、あなたが
進むにしたがってそれぞれの章の中とパッケージの紹介の中で説明されます。
もし今何か完全にはっきりしなくても心配しないで下さい。すべてはすぐにぴ
ったりとつじつまが合います。

第 2 章を注意深く読んで下さい。第 5 章までとそれ以降について、あらかじ
め知っておかなくてはいけないいくつかの重要事項を説明しています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

本書で使う凡例と表記方法

理解しやすくするために、本書全体を通して数多くの凡例と表記方法がありま
す。以下にいくつかの例を示します。

./configure --prefix=/usr                                              

    これは、囲まれたテキスト部分に注意して、見た通りに入力するように示
    されています。このような形は、どのコマンドについて説明しているのか
    をはっきりさせるために説明部分でも使っています。
   
install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir'

    この形式(等幅フォント)のテキストは、コマンドを使って出される結果
    について画面表示を示したもので、また /etc/ld.so.conf のようにファイ
    ル名を表すのにも使われます。
   
強調

    この形式のテキストは本書ではいくつかの目的で使われます。主に重要な
    点の強調で、また何を入力するのかの例を示すのにも使われます。
   
http://www.linuxfromscratch.org/

    この形式のテキストはハイパーリンクに使われます。本書と、ダウンロー
    ドできる場所やウェブサイトにある HOWTO 類のような外部のページの両方
    に使われます。
   
cat > $LFS/etc/group << "EOF"                                          
root:x:0:                                                              
bin:x:1:                                                               
......                                                                 
EOF                                                                    

    このように項目を示したものは、主に設定ファイルを作るときに使われま
    す。最初のコマンドは、EOF という文字列があるところまでの行すべてを
    入力し、 $LFS/etc/group というファイルを作成するのをシステムに伝え
    ます。したがって、このようなすべての項目は通常見た通りに入力します
    。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

本書の版

これは 2003 年 11 月 5 日に発行された Linux From Scratch 第 5 版です。
もしこの本が 2 ヶ月以上古いものであれば、改訂版がたぶん入手可能です。調
べるためには以下の URL にリストされたミラーの一つをチェックして下さい。
http://www.linuxfromscratch.org/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

改訂の記録

5.0 - November 5th, 2003

 ・ 更新:
   
     □ automake-1.7.6
       
     □ bash-2.05b
       
     □ binutils-2.14
       
     □ e2fsprogs-1.34
       
     □ file-4.04
       
     □ findutils-4.1.20
       
     □ gawk-3.1.3
       
     □ gcc-3.3.1
       
     □ gettext-0.12.1
       
     □ glibc-2.3.2
       
     □ glibc-2.3.2-sscanf-1.patch
       
     □ grep-2.5.1
       
     □ groff-1.19
       
     □ gzip-1.3.5
       
     □ less-381
       
     □ lfs-bootscripts-1.12
       
     □ libtool-1.5
       
     □ linux-2.4.22
       
     □ man-1.5m2
       
     □ man-1.5m2-80cols.patch
       
     □ man-1.5m2-manpath.patch
       
     □ man-1.5m2-pager.patch
       
     □ man-pages-1.60
       
     □ modutils-2.4.25
       
     □ procps-3.1.11
       
     □ procps-3.1.11.patch
       
     □ psmisc-21.3
       
     □ sed-4.0.7
       
     □ sysvinit-2.85
       
     □ tar-1.13.25
       
     □ texinfo-4.6
       
     □ util-linux-2.12
       
     □ vim-6.2
       
 ・ 追加:
   
     □ bash-2.05b-2.patch
       
     □ bison-1.875-attribute.patch
       
     □ coreutils-5.0
       
     □ coreutils-5.0-uname.patch
       
     □ coreutils-5.0-hostname-2.patch
       
     □ dejagnu-1.4.3
       
     □ expect-5.39.0
       
     □ expect-5.39.0.patch
       
     □ gawk-3.1.3.patch
       
     □ gcc-2.95.3
       
     □ gcc-2.95.3-2.patch
       
     □ gcc-2.95.3-no-fixinc.patch
       
     □ gcc-2.95.3-returntype-fix.patch
       
     □ gcc-3.3.1-no_fixincludes-2.patch
       
     □ gcc-3.3.1-specs-2.patch
       
     □ gcc-3.3.1-suppress-libiberty.patch
       
     □ grub-0.93
       
     □ grub-0.93-gcc33-1.patch
       
     □ inetutils-1.4.2
       
     □ lfs-utils-0.3
       
     □ ncurses-5.3-etip-2.patch
       
     □ ncurses-5.3-vsscanf.patch
       
     □ perl-5.8.0-libc-3.patch
       
     □ shadow-4.0.3-newgroup-fix.patch
       
     □ tcl-8.4.4
       
     □ zlib-1.1.4-vsnprintf.patch
       
 ・ 削除:
   
     □ bin86-0.16.3
       
     □ fileutils-4.1
       
     □ fileutils-4.1.patch
       
     □ findutils-4.1-segfault.patch
       
     □ findutils-4.1.patch
       
     □ glibc-2.3.1-libnss.patch
       
     □ glibc-2.3.1-root-perl.patch
       
     □ gzip-1.2.4b.patch
       
     □ lilo-22.2
       
     □ netkit-base-0.17
       
     □ sh-utils-2.0
       
     □ sh-utils-2.0.patch
       
     □ sh-utils-2.0-hostname.patch
       
     □ tar-1.13.patch
       
     □ textutils-2.1
       
     □ vim-6.1.patch
       
 ・ 2003 年 11 月 2 日 [alex]: 付録 A "に対する最終確認" の行を全てコメ
    ントアウトする。
   
 ・ 2003 年 10 月 28 日 [greg]: "Glibc の閉じ込め" と "toolchain の再調
    整"の sed を強化する。
   
 ・ 2003 年 10 月 26 日 [greg]: 第 6 章 Glibc: 第 5 章の Glibc に適合す
    るよう /etc/ld.so.conf を作成するコマンドを追加する。終了バグ 700.
   
 ・ 2003 年 10 月 24 日 [alex]: 付録 A Tushar の投稿をもとに依存性を簡
    潔な形式へ変更する。
   
 ・ 2003 年 10 月 23 日 [gerard] 第 9 章最後に: 他のディストリビューシ
    ョンとより整合するため /etc/lfs のファイル名を /etc/lfs-release に
    変更する。
   
 ・ 2003 年 10 月 23 日 [alex]: "章" への参照のほとんどをより適切な
    "xref" クロスリファレンスに変更する。
   
 ・ 2003 年 10 月 22 日 [alex]: 第 6 章 Gawk と Shadow: 文章を調整する
    。いくつかの組み指定を追加する。
   
 ・ 2003 年 10 月 22 日 [alex]: 第 6 章 chroot 環境への移行: ここでは余
    り意味がないので set +h コマンドを落とす。いくつかあとの章で行う。
   
 ・ 2003 年 10 月 15 日 [greg]: 第 9 章: 最終的な strip コマンドを手直
    し。第 6 章からのディレクトリの削除についてのパラグラフを再配置する
    。
   
 ・ 2003 年 10 月 14 日 [greg]: 第 8 章 LFS システムを起動可能にする:
    Grub の詳細を発展、警告を追加する。
   
 ・ 2003 年 10 月 14 日 [alex]: 付録 A Perl と Procps の内容を更新する
    。
   
 ・ 2003 年 10 月 14 日 [alex]: 第 4 章と第 5 章作業及び保管場所として
    の $LFS/source ディレクトリの使用の提示を追加する。
   
 ・ 2003 年 10 月 13 日 [greg]: 第 9 章システムの再起動: umount コマン
    ドを手直しする。
   
 ・ 2003 年 10 月 11 日 [alex]: Bruce Dubbs の投稿によって必要ディスク
    スペースと SBU を改変する。
   
 ・ 2003 年 10 月 11 日 [alex]: 第 5 章 Toolchain 技術情報: いくつかの
    組み指定を追加、変更する。
   
 ・ 2003 年 10 月 9 日 [gerard]: lfs-bootscripts-1.12 に更新する。
   
 ・ 2003 年 10 月 9 日 [greg]: "整然と生成された"ウェブサイトのページで
    起きるふさわしくない空白の問題を修正するための内部組み指定の手直し
    する。極めて重要となる全ての  (とその閉
    じタグ)へ置き換える。
   
 ・ 2003 年 10 月 9 日 [alex]: 第 6 章基本的なネットワーク: この半分を
    Lfs-Utils の項へ、残りの半分を Perl の項へ移動する。
   
 ・ 2003 年 10 月 8 日 [alex]: 第 8 章起動可能にする: screen の形式を改
    変、いくつかの段落を言い替える。
   
 ・ 2003 年 10 月 8 日 [alex]: 一連の使用されない実体を削除する。
   
 ・ 2003 年 10 月 7 日 [jeremy]: 第 5 章と第 6 章のリンクテストに何も出
    力されないのは悪いことだという旨の注意を追加する。
   
 ・ 2003 年 10 月 7 日 [alex]: パッチの実体をバージョン番号だけ含むもの
    からファイル名を全て含むものに変更する。
   
 ・ 2003 年 10 月 7 日 [jeremy]: 第 1 章 IRC の#LFS-support についての
    注意を追加する。
   
 ・ 2003 年 10 月 7 日 [greg]: 序文: まず読むべき極めて重要なヒントにつ
    いての注意を追加する。終了バグ 585.
   
 ・ 2003 年 10 月 6 日 [alex]: 第 5 章と第 6 章、及び付録 A の Contents
    差部セクションの書式を変更する。
   
 ・ 2003 年 10 月 6 日 [greg]: "Glibc の閉じ込め"と"toolchain の再調整"
    の項の sed を簡易化。"どのようになされるか"の項を再整理する。
   
 ・ 2003 年 10 月 5 日 [greg]: 第 5 章: "Toolchain 技術情報"という項を
    新しく追加する。古い"なぜ静的リンクを使うか"という項を統合し設計し
    なおす。終了バグ 658.
   
 ・ 2003 年 10 月 4 日 [alex]: そこここで言い替えや組み指定の追加する。
   
 ・ 2003 年 10 月 4 日 [greg]: 第 5 章 Binutils 第1段階: ld の静的な再
    構築を確実にするために付加的な LDFLAGS を追加する。
   
 ・ 2003 年 10 月 2 日 [greg]: 第 6 章: リンカ調整コマンドが ginstall
    シンボリックリンクの存在するホストで問題となるために INSTALL=/tools
    /bin/install を元に戻す。
   
 ・ 2003 年 10 月 2 日 [greg]: 第 6 章 Shadow: MD5 パスワードを有効にす
    る。終了バグ 600.
   
 ・ 2003 年 9 月 27 日 [greg]: 第 5 章 Expect: 冗長なスクリプトがインス
    トールされないように微調整。第 6 章極めて重要なシンボリックリンク:
    冗長なリンクを削除する。第 6 章 man: PATH を削除する。終了バグ 574.
   
 ・ 2003 年 9 月 27 日 [greg]: 付録 A に Tcl, Expect 及び DehaGnu の項
    目を追加する。終了バグ 661.
   
 ・ 2003 年 9 月 26 日 [jeremy]: devpts の問題の新しい回避策を追加する
    。
   
 ・ 2003 年 9 月 24 日 [greg]: 全域に渡って様々な変更する。アドレッシン
    グバグ 675.
   
 ・ 2003 年 9 月 24 日 [alex]: 付録 A 略説の書式、及びそのほとんどの内
    容を変更する。
   
 ・ 2003 年 9 月 22 日 [greg]: 第 8 章 /etc/fstab ファイルの作成:
    devpts のマウントをデフォルトにする。
   
 ・ 2003 年 9 月 22 日 [jeremy]: mii-tool 編集を修正する Net-tool パッ
    チを追加する。
   
 ・ 2003 年 9 月 22 日 [jwrober]: 第 5 章なぜ静的か、のページを静的リン
    ク去れたバイナリと動的リンクされたものの違いをより正確に表現するよ
    う更新する。指摘してくれた Ian Molton に感謝。バグ 602 を修正する。
   
 ・ 2003 年 9 月 22 日 [jeremy]: 何もしないので DejaGnu から make コマ
    ンドを削除する。
   
 ・ 2003 年 9 月 22 日 [jeremy]: これ以上失敗するとは期待できないので
    Tcl の make check から-k を削除する。
   
 ・ 2003 年 9 月 22 日 [jeremy]: man ヒントへの参照を BLFS への指示に変
    更する。
   
 ・ 2003 年 9 月 22 日 [jeremy]: もし chroot を抜けて再び入った場合に
    devpts をマウントすることを思い出す注意を追加する。
   
 ・ 2003 年 9 月 22 日 [jeremy]: 何も行わないので Patch と Diffutils か
    ら make check を削除する。
   
 ・ 2003 年 9 月 22 日 [greg]: 第 5 章環境設定: 偶発的に構築が中断する
    のを止めるために CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD 環境変数の解
    除を追加する。
   
 ・ 2003 年 9 月 22 日 [greg]: 第 5 章: GCC 第2段階: scc-3.3.1-specs-2
    /.patch に更新する。Ncurses: --enable-overwrite 及び説明の追加する
    。
   
 ・ 2003 年 9 月 19 日 [jeremy]: bash への適切な +h フラグの使用のため
    に bash タグを訂正する。
   
 ・ 2003 年 9 月 19 日 [jwrober]: 謝辞のページへ様々な更新する。
   
 ・ 2003 年 9 月 18 日 [jeremy]: 第 5 章 - GCC 第2段階: 解凍する3つの
    tarball についていくつかの付加的なコメントを追加する。
   
 ・ 2003 年 9 月 17 日 [greg]: 第 6 章 - GCC-2.95.3: 理性的な注意を追加
    する。
   
 ・ 2003 年 9 月 17 日 [jwrober]: 謝辞のページをウェブサイトに整合する
    よう更新する。
   
 ・ 2003 年 9 月 17 日 [jeremy]: File を 4.04 に更新する。
   
 ・ 2003 年 9 月 17 日 [jeremy]: 第 6 章 bash の --login の実行2ヶ所を
    +h 指示を含めるよう変更する。
   
 ・ 2003 年 9 月 17 日 [greg]: 第 5 章と第 6 章 Glibc の閉じ込めと
    toolchain の再調整: 新しい ldscripts だけを入れる代わりに新しいリン
    カ全体をインストールするため "make -C ld install-data-local" の代わ
    りに "make -C ld install" を行う。
   
 ・ 2003 年 9 月 17 日 [alex]: 公式文章に準じ 'Tcl' と 'DejaGnu' の綴り
    を規格化する。
   
 ・ 2003 年 9 月 17 日 [alex]: 依存性を正しくアルファベット順に。
   
 ・ 2003 年 9 月 16 日 [alex]: 新しい Coreutil に対する依存性を最終的に
    更新する。
   
 ・ 2003 年 9 月 16 日 [greg]: 第 5 章と第 6 章 Glibc の閉じ込めと
    toolchain の再調整: サニティチェックの追加する。
   
 ・ 2003 年 9 月 16 日 [greg]: 第 5 章と第 6 章 Binutils, GCC 及び
    Glibc: テストスイーツについての注意を追加する。
   
 ・ 2003 年 9 月 15 日 [alex]: いくつかの誤植と矛盾を訂正する。
   
 ・ 2003 年 9 月 14 日 [greg]: 第 6 章改訂された chroot コマンド: 必要
    の無くなった set +h を削除する。
   
 ・ 2003 年 9 月 14 日 [alex]: いくつかの誤植を修正し、組み指定を追加す
    る。第 5 章の取り除きの項からプログラムファイルの除去を落とす。
   
 ・ 2003 年 9 月 14 日 [greg]: 第 6 章極めて重要なシンボリックリンクの
    作成: GCC に abi_check を実行させるため /usr/lib/libgcc_s.so.1 を追
    加する。将来の NPTL はこれを必要とする。
   
 ・ 2003 年 9 月 13 日 [jwrober]: 第 6 章の passwd と group の作成のペ
    ージに PLFS ヒント文章を追加する。
   
 ・ 2003 年 9 月 13 日 [jwrober]: "どのようになされるか"のページがより
    PLFS ヒントの文章を含むよう更新する。
   
 ・ 2003 年 9 月 13 日 [jwrober]: 序文誰が読むかと誰が読まないかを一つ
    の読者のページへ結合する。
   
 ・ 2003 年 9 月 13 日 [greg]: 第 2 章テストスイーツについての新しい項
    を追加する。
   
 ・ 2003 年 9 月 12 日 [jeremy]: 第 5 章 - Ncurses: --without-ada
    configure スイッチについての説明を追加する。
   
 ・ 2003 年 9 月 12 日 [jeremy]: 第 5 章 Gawk: テストスイーツの追加する
    。
   
 ・ 2003 年 9 月 12 日 [jeremy]: 第 5 章 Grep: Anderson Lizardo の好意
    によって configure スイッチの説明を追加する。
   
 ・ 2003 年 9 月 12 日 [gerard]: /usr/lib/locale ディレクトリの作成を削
    除する。これは第 6 章の間に作られ、ここには Glibc がより適切。
   
 ・ 2003 年 9 月 11 日 [jwrober]: 第 5 章 GCC 第2段階 specs パッチテキ
    ストを、より抽象的だが実際的により正確に修正する。Anderson Lizardo
    の提供による。
   
 ・ 2003 年 9 月 11 日 [jwrober]: 第 5 章 Anderson Lizardo の提供で Tcl
    インストール指示の文法を修正する。
   
 ・ 2003 年 9 月 11 日 [jwrober]: 第 5 章 Anderson Lizardo の提供で
    Glibc の閉じ込めのページの /lib/ld.so.1 についてちょっとした文章的
    な変更する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: この本へ Grub を付け加えた後に、第 8
    章へブートローダの追加する。
   
 ・ 2003 年 9 月 11 日 [gerard]: Bin86 と LILO の削除とその Grub による
    置き換え。
   
 ・ 2003 年 9 月 11 日 [jeremy]: 任意選択の toolchain 以外のテストを落
    とす。テストの失敗に対して Wiki を使うことの注意を追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: Bison パッチの追加、CVS からのバックポ
    ート、pwlib 編集の問題の修正する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: libiberty のインストールをなくす Greg
    の GCC へのパッチを追加、及び Binutil がその libiberty を留めるよう
    変更する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: 第 5 章に Binutils のソースと構築ディ
    レクトリを削除しないよう思い出させる警告タグを追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: Anderson Lizardo からの新しい
    perl-libc-3 パッチを追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: パッケージページにある Findutils パッ
    ケージのダウンロードリンクの修正する。終了バグ 578.
   
 ・ 2003 年 9 月 11 日 [jeremy]: 第 6 章 GCC 2.95.3: C++ のコンパイルを
    削除、Zack の return-type パッチを追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: 第 6 章 Coreutils: ホスト名バイナリと
    そのチェックをなくす coreutils-5.0-hostname-2.patch を追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: Glibc と DejaGnu の失敗したテストにつ
    いてのいくつかの注意を追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: Glibc 第 5 章と第 6 章の両方にチェック
    に必要な最小のロケールを含めるコマンドを追加する。
   
 ・ 2003 年 9 月 11 日 [jeremy]: 第 6 章 Zlib での CFLAGS の munging を
    -fPIC を加える注意の方を選んで削除する。
   
 ・ 2003 年 9 月 8 日 [matt]: 第 5 章 /tools/share から不必要な公式文章
    を削除する rm コマンドを修正する。
   
 ・ 2003 年 9 月 6 日 [matt]: 第 6 章導入部の"静的"ディレクトリへの参照
    を削除する。
   
 ・ 2003 年 9 月 6 日 [jeremy]: 第 4 章いくつかのパッケージのダウンロー
    ド場所を更新する。
   
 ・ 2003 年 9 月 5 日 [jeremy]: 第 5 章 GCC 第2段階: make check エラー
    の説明を訂正する。
   
 ・ 2003 年 9 月 5 日 [jeremy]: 第 6 章 Makedev: デフォルトで devpts を
    使うので、デフォルトのデバイス作成を generic-nopty に変更する。
   
 ・ 2003 年 9 月 5 日 [jeremy]: 第 6 章 GCC: /usr/lib/cpp の削除を熟考
    することの言い回しを訂正する。
   
 ・ 2003 年 9 月 5 日 [jeremy]: perl libc パッチを -2 に訂正し、古い /
    stage1 構造を /tools へ変更する。
   
 ・ 2003 年 9 月 5 日 [jeremy]: 第 6 章 GCC specs パッチを更新し、
    man-1.5m2 へ更新する。
   
 ・ 2003 年 9 月 4 日 [jeremy]: 第 6 章ディレクトリの作成: /usr/tmp の
    作成を消去する。終了バグ 176.
   
 ・ 2003 年 9 月 4 日 [jeremy]: 第 6 章 Proc のマウント: devpts ファイ
    ルシステムのchroot へのマウントをここに追加する。終了バグ 533.
   
 ・ 2003 年 9 月 4 日 [jeremy]: 第 6 章 Proc のマウント: 項の最後に、
    lfs 構築過程を一度中断した後再開した場合に proc がまだマウントされ
    ているかどうかのチェックについての警告を追加する。
   
 ・ 2003 年 9 月 4 日 [jeremy]: 第 6 章 Gzip: Gzip のインストールで使わ
    れる sed コマンドのあとにある理由の説明をより良いものに改変する。終
    了バグ 551.
   
 ・ 2003 年 9 月 4 日 [jeremy]: 第 4 章パッチのダウンロード: Tushar の
    パッチプロジェクトについての注意、及びホームページへのリンクを追加
    する。
   
 ・ 2003 年 9 月 4 日 [matt]: Util-linux が /stage1 にインストールされ
    たヘッダとライブラリを利用しない問題を修正する。
   
 ・ 2003 年 9 月 4 日 [matt]: リンクが Glibc のインストールでまだ必要と
    されるため、第 6 章カーネルヘッダのインストールから "rm /bin/pwd"
    の指示を削除する。
   
 ・ 2003 年 9 月 2 日 [alex]: Jeremy に投稿された値から全ての SBU を調
    整する。
   
 ・ 2003 年 9 月 2 日 [jeremy]: 最終的に /stage1 を /tools へ改名する。
   
 ・ 2003 年 9 月 2 日 [alex]: いくつかの主要な本の構造ファイルを統合す
    る。
   
 ・ 2003 年 9 月 2 日 [alex]: ダウンロードリストをアルファベット順にし
    て、Tcl の指示に注意を追加する。
   
 ・ 2003 年 9 月 2 日 [alex]: 組織と $LFS 及び SBU の項で言い換えをする
    。
   
 ・ 2003 年 9 月 1 日 [jeremy]: 第 6 章 Groff PAGE 変数で A4 かハガキを
    選ぶ事についての注意を追加する。
   
 ・ 2003 年 9 月 1 日 [jeremy]: shadow に Greg Schafer からの newgrp パ
    ッチを追加する。
   
 ・ 2003 年 8 月 31 日 [jeremy]: 第 6 章 Inetutils --disable-whois と
    --disable-servers を追加する。
   
 ・ 2003 年 8 月 31 日 [jeremy]: GCC 3.3.1 の fixinclude 過程について
    Greg の新しい指示を追加する。また fixinclude 過程にある Glibc の閉
    じ込めと GCC 第2段階へ余分な言い回しも追加する。
   
 ・ 2003 年 8 月 31 日 [alex]: いくつかのパラグラフで言い換え、足りない
    組み指定を追加、及び changelog の再調整をする。
   
 ・ 2003 年 8 月 31 日 [alex]: 挿話の'最終確認'の行を wrap. その他いく
    つかのちょっとした加筆をする。
   
 ・ 2003 年 8 月 30 日 [jeremy]: GCC 3.3.1 への fix-include パッチを更
    新する。
   
 ・ 2003 年 8 月 29日 [alex]: Glibc パッチ集からの sscanf パッチについ
    ての指示を更新する。
   
 ・ 2003 年 8 月 29 日 [jeremy]: Zack の GCC 3.3 についてのミニヒントに
    基づく修正と彼の文章からのパッチを含む GCC バージョン 3.3.1 へ更新
    する。
   
 ・ 2003 年 8 月 29 日 [alex]: 時代遅れになった Netkit-base, Fileutils,
    Sh-utils 及び Textutils ファイルを削除する。
   
 ・ 2003 年 8 月 29 日 [alex]: 足りない組み指定をいくつか追加、/static
    のいくつかを /stage1 のものに変更する。
   
 ・ 2003 年 8 月 29 日 [alex]: 第 6 章 make check の前の全ての足りない
    文章を追加、及びその他の行を言い換え。
   
 ・ 2003 年 8 月 28 日 [matt]: パッケージを linux-2.4.22,
    man-pages-1.60, expect-5.39.0, findutils-4.1.20 及び tcl-8.4.4 に更
    新する。
   
 ・ 2003 年 8 月 28 日 [jeremy]: bash-2.05b-2.patch ファイルに
    ftp.gnu.org からの7つのパッチを新しく含める。
   
 ・ 2003 年 8 月 28 日 [alex]: 第 6 章 - toolchain の再調整: つけ忘れた
    バックスラッシュを追加する。
   
 ・ 2003 年 8 月 28 日 [alex]: いくつかの誤植を修正し足りない組み指定を
    追加する。
   
 ・ 2003 年 8 月 28 日 [alex]: 第 6 章 Binutils 及び GCC: pure-lfs ヒン
    トからの文章を統合する。
   
 ・ 2003 年 8 月 27 日 [jeremy]: 第 6 章 Inetutils: --sysconfdir=/etc
    及び --localstatedir=/var の追加と ping バイナリを /usr/bin から /
    bin へ移動。
   
 ・ 2003 年 8 月 27 日 [alex]: 第 6 章 Glibc: pure-lfs ヒントからの文章
    を統合する。
   
 ・ 2003 年 8 月 26 日 [jeremy]: 第 7 章 /etc/hosts の作成:
    www.mydomain.org を .mydomain.org へ変更する。
   
 ・ 2003 年 8 月 26 日 [alex]: 第 6 章と第 8 章カーネル manpages のイン
    ストールを第 6 章から第 8 章へ移動する。
   
 ・ 2003 年 8 月 26 日 [jeremy]: 第 4 章 LFS パーティションのマウント:
    制限的すぎる許可でのマウントについての文章を追加する。
   
 ・ 2003 年 8 月 26 日 [jeremy]: 第 6 章ディレクトリの作成: /dev/shm デ
    ィレクトリの作成を追加する。
   
 ・ 2003 年 8 月 26 日 [jeremy]: 第 8 章 fstab の作成: /dev/shm への
    tmpfs ファイルシステムのマウントを追加する。
   
 ・ 2003 年 8 月 26 日 [jeremy]: 第 8 章カーネルのインストール: tmpfs
    のサポートを組み込んでカーネルをコンパイルする催促を追加する。
   
 ・ 2003 年 8 月 25 日 [alex]: 第 6 章 Shadow と Util-Linux のインスト
    ールの文章のタイプミスを訂正している間に書き直し。
   
 ・ 2003 年 8 月 25 日 [alex]: 第 5 章と第 6 章 "閉じ込め"と"再調整"の
    見た目を類似させる。
   
 ・ 2003 年 8 月 24 日 [alex]: 第 4 章多くの小さなファイルを一つのファ
    イルに結合する。パッケージとパッチを別のページに分ける。
   
 ・ 2003 年 8 月 17 日 [alex]: 第 5 章 Bash から Perl まで: コマンドの
    間に文章を置く。ツールのサイズを減らすために不必要なシンボルを削除
    するセクションを追加する。
   
 ・ 2003 年 8 月 16 日 [alex]: 第 5 章 Make から Texinfo まで: コマンド
    の間に文章を置く。
   
 ・ 2003 年 8 月 11 日 [alex]: 第 5 章 Binutils 第 1 段階から Findutils
    まで: 何ヶ所かちょっとした文章の調整をする。第 2 段階には内容と依存
    性を載せなくする。
   
 ・ 2003 年 8 月 11 日 [alex]: 第 4 章 GCC の core と g++, テストスイー
    トの tar ball を別々にリストする。
   
 ・ 2003 年 8 月 11 日 [alex]: 第 4 章 wget スクリプトの言及を消去する
    。
   
 ・ 2003 年 8 月 9 日 [alex]: 第 5 章 Binutils 第 2 段階と GCC 第 2 段
    階: pure-lfs ヒントからの文章を統合する。
   
 ・ 2003 年 8 月 8 日 [alex]: 第 5 章 Tcl と Expect, Dejagnu: 多少の文
    章を追加する。
   
 ・ 2003 年 8 月 6 日 [gerard]: インストールされるすべてのプログラムと
    ライブラリ、そしてインストールのページへの参照のリストである、付録
    B を追加する Alex Groenewoud のパッチをあてる。
   
 ・ 2003 年 7 月 30 日 [gerard]: 第 6 章 Vim: グローバルな vimrc と
    gvimrc の場所が定義される方法を変更する。
   
 ・ 2003 年 7 月 30 日 [gerard]: 第 5 章 Binutils 第 2 段階: Binutils
    2.14 に更新したことで必要のなくなった lib パッチを削除する。
   
 ・ 2003 年 7 月 30 日 [gerard]: 第 5 章 Binutils 第 1 段階: make
    configure-host を追加する。
   
 ・ 2003 年 7 月 30 日 [gerard]: binutils-2.14, linux-2.4.21,
    expect-5.38.4, gawk-3.1.3, texinfo-4.6, util-linux-2.12,
    man-pages-1.58, lfs-utils-0.3, vim-6.2, gettext-0.12.1,
    automake-1.7.6, file-4.03, e2fsprogs-1.34, procps-3.1.11,
    psmisc-21.3 に更新する。
   
 ・ 2003 年 6 月 3 日 [gerard]: 第 6 章 Gawk: /bin/awk の削除という項を
    削除する。このシンボリックリンクはもう作られない。
   
 ・ 2003 年 5 月 21 日 [gerard]: 第 6 章 GCC-2.95.3: 実行時にライブラリ
    が見つかるよう、/etc/ld.so.conf ファイルに /opt/gcc-2.95.3/lib を追
    加する。
   
 ・ 2003 年 5 月 21 日 [gerard]: 第 5 章 Gzip: コマンドを簡単にする。
   
 ・ 2003 年 5 月 21 日 [gerard]: 第 5 章 Bzip2: コマンドを簡単にする。
   
 ・ 2003 年 5 月 21 日 [gerard]: 第 6 章 Shadow: すべてのシャドウ化され
    たパスワードの有効化を完全にするために、grpconv コマンドを追加する
    。
   
 ・ 2003 年 5 月 21 日 [winkie]: 第 6 章 File の作成: すべての ln コマ
    ンドはもうすこし長い ln コマンドに直せる。
   
 ・ 2003 年 5 月 21 日 [winkie]: 第 5 章 Glibc のインストール: (害の無
    い)エラーを避けるため、Glibc を構築する前に ld.so.conf ファイルを
    作成する。
   
 ・ 2003 年 5 月 21 日 [winkie]: 第 6 章 Glibc のインストール: 現在は
    PLFS を使っているので、何もしない 'exec /stage1/bin/bash' を行って
    困惑させないようにする。
   
 ・ 2003 年 5 月 21 日 [winkie]: 第 5 章 & 第 6 章 Coreutils のインスト
    ール: 第 5 章でルートでないことだけをテストするが、第 6 章ではすべ
    てをテストする。
   
 ・ 2003 年 5 月 21 日 [winkie]: 第 5 章 Expect のインストール: これ以
    上 --prefix=/stage1 というオプションを渡して困惑させないようにする
    。これはまったく必要がない。
   
 ・ 2003 年 5 月 16 日 [gerard]: 第 6 章: Net-tools: make install を 
    make update に変更する。
   
 ・ 2003 年 5 月 15 日 [timothy]: 第 5 章: Patch のインストール: PPC 上
    で構築するためのパッチを修正するため、./configure コマンドの前に 
    CPPFLAGS=-D_GNU_SOURCE を追加する。
   
 ・ 2003 年 5 月 13 日 [gerard]: 第 6 章: exec /path/to/bash --login を
    実行したときに、ハッシングオプションを無効にするために set +h も実
    行するようにする。バグ #531 を修正する。
   
 ・ 2003 年 5 月 13 日 [gerard]: 第 6 章基本的なネットワーク: echo コマ
    ンドのシングルクオートをダブルクオーツに変更する。これをやらないと
    、$(hostname) が展開されず、Perl のホスト名を調べるというこのコマン
    ドの唯一の目的がうまくいかない。
   
 ・ 2003 年 5 月 13 日 [winkie]: すべての && を削除する。bug syntax を
    更新する。第 6 章の必要な場所に "make check/test" を追加する。
   
 ・ 2003 年 5 月 13 日 [winkie]: 第 6 章: 文章を洗練するため "所有権の
    変更" パッチをあてる。終了バグ #511.
   
 ・ 2003 年 5 月 13 日 [winkie]: 第 6 章: 文章を洗練するため "システム
    構成要素を設定する" パッチをあてる。終了バグ #510.
   
 ・ 2003 年 5 月 13 日 [gerard]: 第 6 章: Tcl と Expect, Dejagnu を削除
    する。第 6 章で GCC を通過してしまえばこれらは使われない。/stage1/
    bin の中の版で十分間にあう。
   
 ・ 2003 年 5 月 13 日 [winkie]: 第 6 章 Shadow のインストール: インス
    トールの前に /usr/bin/passwd ファイルのことについて触れる。Shadow
    が passwd ファイルが /bin/passwd にあると思わないようにする。
   
 ・ 2003 年 5 月 13 日 [winkie]: 第 6 章 Procps のインストール: /lib/
    libproc.so シンボリックリンクを削除する。Procps 自身以外のパッケー
    ジはこのライブラリを使わないし、つかうべきではない。
   
 ・ 2003 年 5 月 13 日 [winkie]: 第 6 章 Net-tools のインストール: make
    を実行する前に "make config" を実行する。バグ #462 と #497 を修正す
    る。
   
 ・ 2003 年 5 月 13 日 [gerard]: 第 6 章 Ncurses: vsscanf パッチを追加
    する。
   
 ・ 2003 年 5 月 12 日 [gerard]: 第 5 章 Gzip: make check を削除する。
    これは何もしない。
   
 ・ 2003 年 5 月 12 日 [winkie]: 第 5 章 Texinfo のインストール: texmf
    データをインストールしないようにする。これは何にも使われない。
   
 ・ 2003 年 5 月 12 日 [winkie]: 第 5 章と第 6 章 Ncurses のインストー
    ル: 第 6 章のシンボリックリンクの作成で libcurses.* と
    libncurses++.a を含むように更新し、それぞれのファイルの属性が 644
    になるように変更する。第 5 章では libcurses.* ファイルを必要としな
    いので、これらを削除する。
   
 ・ 2003 年 5 月 12 日 [gerard]: 第 6 章基本的なネットワーク: /etc/
    hosts に $(hostname) を追加する。これなしでは Perl のホスト名テスト
    が通らない。
   
 ・ 2003 年 5 月 12 日 [gerard]: 第 6 章 GCC: /usr/include/libiberty.h
    を削除しようとしないようにする。これは初めの場所にはインストールさ
    れない。
   
 ・ 2003 年 5 月 12 日 [winkie]: findutils-4.1.7 と gzip-1.3.5,
    tar-1.13.25 にそれぞれ更新する。
   
 ・ 2003 年 5 月 12 日 [winkie]: 第 5 章 Perl のインストール: Perl に対
    してあるモジュールを構築するためのコマンドを追加する。これは
    Coreutils の "make check" に適合させるため。バグ #528 を部分的に修
    正する。
   
 ・ 2003 年 5 月 12 日 [winkie]: 第 5 章 Gzip のインストール: 第 6 章で
    は解凍コマンドを調べたり使うものは何もないので、これを作らないよう
    にする。
   
 ・ 2003 年 5 月 12 日 [winkie]: 第 5 章 Bzip2 のインストール: "make"
    の実行は "make check" の実行を暗示しているので、これを手動で実行す
    る理由は何もない。
   
 ・ 2003 年 5 月 12 日 [winkie]: 第 5 章 Lfs-Utils のインストール: 削除
    する。インストールされる前に mktemp を調べるパッケージは GCC だけで
    、それが gcc バグについてのすべて。
   
 ・ 2003 年 5 月 11 日 [gerard]: 第 6 章 - GCC-2.95.3: C++ の追加をうま
    く完了するために --enable-threads=posix を追加する。
   
 ・ 2003 年 5 月 11 日 [gerard]: 第 6 章 GCC-2.95.3: GCC の
    -Wreturn-type についてのバージョンバグを修整するため
    --enable-languages=c,c++ を追加する。バグ #525 を修正する。
   
 ・ 2003 年 5 月 11 日 [gerard]: 第 5 章 Bash: --without-bash-malloc 設
    定オプションを削除する。
   
 ・ 2003 年 5 月 11 日 [gerard]: gcc-3.2.3-specs-4.patch に更新する。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章基本的なネットワークの設定: 項
    を追加する。基本的な /etc/hosts ファイル郡を作成し、IANA から /etc/
    services と /etc/protocols を作成する。バグ #359 と #515 を修正する
    。
   
 ・ 2003 年 5 月 11 日 [winkie]: lfs-utils-0.2.2 に更新する。これは適切
    なネットワークの設定のために二つのファイルを追加する。
   
 ・ 2003 年 5 月 11 日 [winkie]: Netkit-base 0.17 を削除する。Inetutils
    1.4.2 を追加する。バグ #490 を修正する。
   
 ・ 2003 年 5 月 11 日 [winkie]:
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Ncurses のインストール: その他
    のライブラリのシンボリックリンクのセットに合わせるために、シンボリ
    ックリンク郡を修正する。ここではこれ以上の組み込みをしない。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Procps のインストール: XSCPT=
    "" とそれに対応する段落を削除する。これはもう必要ない。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Ncurses のインストール:
    configure スクリプトに --without-debug を渡すようにする。これは何ヶ
    所かで抜けているように思える。
   
 ・ 2003 年 5 月 11 日 [timothy]: 第 5 章と第 6 章 Bzip2 のインストール
    、Zlib のインストール: バグ #524 によって構築のコマンドを修正する。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Glibc のインストール:
    linuxthreads の man page もインストールするようにする。これはどこか
    で消えてしまっていた。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Grep のインストール: Grep がな
    にかバグのある Glibc の regex を使わないようにするために、
    --with-included-regex を追加する。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Coreutils のインストール:
    uname コマンドのある機能をパッチで修正する。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Net-tools のインストール:
    "make update" の代わりに正規の古い "make install" だけを行うように
    する。前者は現在うまくいっている。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 GCC のインストール: インストー
    ルのあとで、/usr/include/libiberty.h を削除する。これは GCC の構築
    ツリーの外では使われない。
   
 ・ 2003 年 5 月 11 日 [winkie]: Bash 2.05b に更新し、そのパッチを追加
    する。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章 Zlib のインストール: gzprintf
    () にあるバッファオーバーフローを修正するパッチをあてる。
   
 ・ 2003 年 5 月 11 日 [winkie]: 第 6 章システム構成要素の設定: 適切な
    場所で見つけられるように、btmp と wtmp, lastlog, utmp の作成の場所
    を Shadow の直前に移動する。
   
 ・ 2003 年 5 月 10 日 [winkie]: 第 6 章 Automake のインストール: イン
    ストールの前に "make" を実行する。これは現在の新しい版の Automake
    では必要となる。
   
 ・ 2003 年 5 月 10 日 [winkie]: 第 6 章 Vim のインストール: パッチを削
    除する。これは GCC 3.2.1 からは要求されない。
   
 ・ 2003 年 5 月 10 日 [winkie]: 第 6 章 mtab ファイルを作成する: 削除
    する。/proc をマウントすることは私達にとっては /etc/mtab を作成する
    のと同じ効果がある。
   
 ・ 2003 年 5 月 10 日 [winkie]: 第 6 章 Make のインストール: /usr/bin/
    make ファイルの修正を削除する。これはもう間違っておかしな所有権と許
    可属性でインストールされることはない。
   
 ・ 2003 年 5 月 10 日 [winkie]: 第 6 章 Glibc のインストール: シンボリ
    ックリンクの代わりに /etc/localtime をファイルにする。シンボリック
    リンクの方法は /usr が別のパーティションにあるシステムではうまくい
    かない。
   
 ・ 2003 年 5 月 10 日 [winkie]: 第 6 章 E2fsprogs: e2fsprogs に対する
    install-info コマンドを削除する。"make install" ターゲットがこれを
    扱ってくれる。
   
 ・ 2003 年 5 月 10 日 [gerard]: すべての CFLAGS と LDFLAGS 変数を重要
    でないところ(つまり、静的な Binutils と GCC, Zlib を -fPIC でコン
    パイルするときは除く。)では削除する。
   
 ・ 2003 年 5 月 10 日 [gerard]: 第 5 章 Binutils (第 1 段階、第 2 段
    階)と Glibc の閉じ込め、toolchain の調整: ツールを置くディレクトリ
    を(第 6 章では tooldir=/usr とするように) /stage1 に変更する。
   
 ・ 2003 年 5 月 10 日 [gerard]: 第 5 章 Kernel headers: -H オプション
    について知らないディストリビューションがあるので、cp -H の使用を削
    除する。
   
 ・ 2003 年 5 月 10 日 [gerard]: 新しく gcc-3.2.3-specs-3.patch にする
    。
   
 ・ 2003 年 5 月 10 日 [gerard]: 第 6 章 toolchain の調整: よりアーキテ
    クチャ依存性をなくす。
   
 ・ 2003 年 5 月 10 日 [gerard]: 第 5 章 Glibc の閉じ込め: よりアーキテ
    クチャ依存性をなくす。
   
 ・ 2003 年 5 月 7 日 [gerard]: GCC No Debug パッチを削除する。もう
    gcc-core と gcc-g++ パッケージがダウンロードされたと仮定しないよう
    にしたので、適切な --enable-languages オプションを追加する。
   
 ・ 2003 年 5 月 7 日 [gerard]: 第 6 章 Glibc 第 2 段階を削除する。これ
    は pure-lfs の統合によってもう必要ない。
   
 ・ 2003 年 5 月 7 日 [gerard]: flex-2.5.4a に再び戻す。新しい版は正し
    く動かない。
   
 ・ 2003 年 5 月 5 日 [gerard]: 第 5 章から zlib のインストールを削除す
    る(ここに含めたのは間違いだった)。
   
 ・ 2003 年 5 月 5 日 [gerard]: pure-lfs を統合する間に紛れ込んだ様々な
    バグを修正する。
   
 ・ 2003 年 5 月 2 日 [gerard]: automake-1.7.4, e2fsprogs-1.33,
    file-4.02, flex-2.5.31, gawk-3.1.2, gcc-3.2.3, glibc-2.3.2,
    grep-2.5.1, groff-1.19, less-381, libtool-1.5, man-1.5l,
    man-pages-1.56, modutils-2.4.25, procps-3.1.8, sed-4.0.7,
    sysvinit-2.85, texinfo-4.5, util-linux-2.11z に更新する。
   
 ・ 2003 年 5 月 2 日 [gerard]: fileutils-4.1, sh-utils-2.0,
    textutils-2.1 を削除する(これらはすべて coreutils-5.0 によって置き
    換えられる。)。
   
 ・ 2003 年 5 月 2 日 [gerard]: binutils-2.13.2-libc.patch,
    coreutils-5.0, dejagnu-1.4.3, expect-5.38, gawk-3.1.2, gcc-2.95.3,
    tcl-8.4.2 を追加する。
   
 ・ 2003 年 5 月 5 日 [gerard]: Greg Schafer と Ryan Oliver によって書
    かれた Pure LFS ヒントからの新しいインストール体系を統合する。
   
2003 年 4 月 28 日第 4.1 版公開。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

リソース

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

FAQ

LFS システムを構築している間に、エラーに遭遇したり、何か疑問がある場合
、また本書の中で誤植を見つけたと思ったら、まず次のところで FAQ (よくあ
る質問集)を調べてください。 http://www.linuxfromscratch.org/faq/.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

IRC

LFS コミュニティの何人かのメンバーが、私達のコミュニティの IRCサーバー
上で援助活動をしています。このサポートを利用する前に、質問の回答につい
て、少なくとも LFS FAQ とメーリングリストのアーカイブを調べてくださるよ
うお願いします。 IRC サーバーは irc.linuxfromscratch.org port 6667 にあ
ります。サポートチャンネルは #LFS-support という名前です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

メーリングリスト

linuxfromscratch.org は LFS プロジェクトの発展に寄与する複数のメーリン
グリストを主催しています。これらのリストは、主要な開発メーリングリスト
やその他のサポートメーリングリストなどを含みます。

どのメーリングリストが利用可能か、どのように購読するのか、アーカイブの
場所といった情報は以下のURLを訪ねて下さい。http://
www.linuxfromscratch.org/mail.html

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ニュースサーバ

linuxfromscratch.org で主催されるすべてのメーリングリストは NNTP サーバ
を通しても利用できます。メーリングリストにポストされたすべてのメッセー
ジは対応するニュースグループにコピーされ、その逆もなされます。

ニュースサーバは news.linuxfromscratxh.org で利用できます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ミラーサイト

手近なウェブサイトにアクセスし、必要なパッケージをより便利にダウンロー
ドするために、LFS プロジェクトは世界中に数多くのミラーサイトを持ってい
ます。最新のミラーサーバーのリストを得るために以下のウェブサイトを訪れ
て下さい。 http://www.linuxfromscratch.org/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

連絡について

質問やコメントはすべて LFS メーリングリストのどれか一つに投稿してくださ
い。(上記参照)

Gerard Beekmans に個人的に連絡をとりたいなら、以下のアドレスにメールを
送って下さい。 gerard@linuxfromscratch.org 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

謝辞

以下に記す人々と団体に、その Linux From Scratch への貢献に対して感謝し
ます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

現在のプロジェクトチームメンバ

 ・ Gerard Beekmans 
     ー Linux-From-Scratch の発起人、LFS
    プロジェクトのオーガナイザ
   
 ・ Matthew Burgess 
     ー LFS のゼネラルメンテナ、LFS 本の
    編集者
   
 ・ Craig Colton 
     ー LFS と ALFS, BLFS, Hints プロジェクトの
    ロゴ製作者
   
 ・ Jeroen Coumans 
     ーウェブサイトの開発者、FAQのメンテナ
   
 ・ Bruce Dubbs 
     ー LFS の品質保証チームリーダ、BLFS
    本の編集者
   
 ・ Alex Groenewoud 
     ー LFS 本の編集者
   
 ・ Mark Hymers 
     ー CVS のメンテナ、BLFS 本の製作者、以
    前の LFS 本の編集者
   
 ・ James Iwanek 
     ーシステム管理チームのメンバ
   
 ・ Nicholas Leippe 
     ー Wiki のメンテナ
   
 ・ Anderson Lizardo 
     ーウェブサイトのバックエンドスクリプ
    トの製作者、かつメンテナ
   
 ・ Bill Maltby 
     ー LFS プロジェクトのオーガナイザ
   
 ・ Scot Mc Pherson 
     ー LFS NNTP ゲートウェイのメンテナ
   
 ・ Ryan Oliver 
     ーテストチームのリーダ、PLFS の共同製作
    者
   
 ・ James Robertson 
     ー Bugzilla のメンテナ、Wiki の開発
    者、LFS 本の編集者
   
 ・ Greg Schafer 
     ー Toolchain のメンテナ、LFS 本の編集者
    、PLFS の共同製作者
   
 ・ Tushar Teredesai 
     ー BLFS 本の編集者、Hints と Patches
    プロジェクトのメンテナ
   
 ・ Jeremy Utley 
     ー LFS 本の編集者、Bugzilla のメンテ
    ナ
   
 ・ さまざまな LFS や BLFS メーリングリストの数え切れないほど多くの人々
    。彼らは提案やテストをし、バグの報告や説明、またいろいろなパッケー
    ジのインストールについての経験を提出することで、この本を起こしてく
    れた。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

翻訳者

 ・ Manuel Canales Esparcia 
     ースペイン語 LFS 翻訳プロジェクト
   
 ・ Johan Lenglet 
     ーフランス語 LFS 翻訳プロジェクト
   
 ・ Anderson Lizardo 
     ーポルトガル語 LFS 翻訳プロジェクト
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ミラーサーバのメンテナ

 ・ Jason Andrade   ー
    au.linuxfromscratch.org ミラー
   
 ・ William Astle   ー
    ca.linuxfromscratch.org ミラー
   
 ・ Baque   -- lfs.cict.fr ミラー
   
 ・ Stephan Brendel   ー
    lfs.netservice-neuss.de ミラー
   
 ・ Ian Chilton   ー
    us.linuxfromscratch.org, linuxfromscratch.co.uk ミラー
   
 ・ Fredrik Danerklint 
     ー se.linuxfromscratch.org ミラー
   
 ・ David D.W. Downey 
     ー lfs.learnbyexample.com ミラー
   
 ・ Eduardo B. Fonseca 
     ー br.linuxfromscratch.org ミラー
   
 ・ Hagen Herrschaft   ー
    de.linuxfromscratch.org ミラー
   
 ・ Tim Jackson   ー
    linuxfromscratch.idge.net ミラー
   
 ・ Barna Koczka   ー
    hu.linuxfromscratch.org ミラー
   
 ・ Roel Neefs  ー
    linuxfromscratch.rave.org ミラー
   
 ・ Simon Nicoll   ー
    uk.linuxfromscratch.org ミラー
   
 ・ Ervin S. Odisho 
     ー lfs.activalink.net ミラー
   
 ・ Guido Passet  
    ー nl.linuxfromscratch.org ミラー
   
 ・ Mikhail Pastukhov   ー
    lfs.130th.net ミラー
   
 ・ Jeremy Polen  
    ー us2.linuxfromscratch.org ミラー
   
 ・ UK Mirror Service  ー
    linuxfromscratch.mirror.co.uk ミラー
   
 ・ Thomas Skyt   ー
    dk.linuxfromscratch.org ミラー
   
 ・ Antonin Sprinzl 
     ー at.linuxfromscratch.orgミラー
   
 ・ Dag Stenstad   ー
    no.linuxfromscratch.org の提供、Ian Chilton  ーその運営者
   
 ・ Parisian sysadmins 
     ー www2.fr.linuxfromscratch.org ミ
    ラー
   
 ・ Jesse Tie-Ten-Quee 
     ー linuxfromscratch.org サーバの提供
    とその運営
   
 ・ Alexander Velin   --
    bg.linuxfromscratch.org ミラー
   
 ・ Martin Voss   ー
    lfs.linux-matrix.net ミラー
   
 ・ Pui Yong   ー
    sg.linuxfromscratch.org ミラー
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

寄贈者

 ・ Dean Benson   か
    なりの金銭的な寄付
   
 ・ DREAMWVR.COM  LFS とその関係したサブプロジ
    ェクトへの、さまざまな援助物の寄贈によるかつての後援
   
 ・ Hagen Herrschaft   現在 lorien
    という名前で運用中の 2.2GHz P4 システムの寄贈
   
 ・ O'Reilly  SQL と PHP についての書籍の寄贈
   
 ・ VA Software  Linux.com を代表してVA
    Linux 420 (以前の StartX SP2 )ワークステーションの寄贈
   
 ・ Mark Stone  初代 linuxfromscratch.orgサー
    バーである shadowfax, 750 MHz P3、512 MB RAM と 9 GB SCSIドライブ 2
    台の寄贈、これはサーバー移転のあと belgarath と改名
   
 ・ Jesse Tie-Ten-Quee 
     Yamaha CDRW 8824E CD ライタの寄贈
   
 ・ さまざまな LFS や BLFS メーリングリストの数え切れないほど多くの人々
    。彼らは提案し、バグの報告を提出し、また批評することでこの本をより
    よくしてくれた。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

以前のチームメンバと寄稿者

 ・ Timothy Bauscher 
     ー LFS 本の編集者、Hints プロジェク
    トのメンテナ
   
 ・ Robert Briggs linuxfromscratch.org と linuxfromscratch.com のドメイ
    ン名の元々の寄贈
   
 ・ Ian Chilton   Hints
    プロジェクトの保守管理
   
 ・ Marc Heerdink 
     ー LFS 本の編集者
   
 ・ Seth W. Klein 
     ー LFS FAQ の製作者
   
 ・ Garrett LeSage  
    ーオリジナル LFS バナーの製作者
   
 ・ Simon Perreault 
     ー Hints プロジェクトのメンテナ
   
 ・ Geert Poels  
    ー Garrett LeSage による LFS バナーに基づいた、オリジナル BLFS バナ
    ーの製作者
   
 ・ Frank Skettino   ー古い
    ウェブサイトの初期デザイナーー http://www.oswd.org/ を参照
   
 ・ Jesse Tie-Ten-Quee 
     IRC での限りない質問へ非常に忍耐強く
    回答してくれたこと
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

日本語訳について

Linux From Scratch 日本語訳の維持管理は Linux JF Project  が行っています。誤字・脱字のご指摘、日本語訳につい
てのご意見などは Linux JF Project のメーリングリスト へお願いします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

謝辞

Linux From Scratch を日本語に翻訳するにあたり、次の方々に査読、校正をし
ていただきました。この場を借りてお礼を申し上げます。ありがとうございま
した。(順不同、敬称略)

 ・ 中谷千絵 >
   
 ・ 川崎貴彦 >
   
 ・ かとうてるお >
   
 ・ かねこせいじ >
   
また、Linux JF Project のメーリングリストでご意見や助言を頂いた方々にも
重ねてお礼を申し上げます。ありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 2. 重要な情報

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

$LFS について

以下の段落を注意深く読んで下さい。本書を通じて LFS 変数が繰り返し使われ
ます。すべての変数 $LFS はマウントされた LFS システムを含むパーティショ
ンのあるディレクトリに置き換えられなければいけません。パーティションを
どのように作り、何処にマウントするかということは第 3 章で充分に詳しく説
明します。さしあたり LFS パーティションは /mnt/lfs にマウントされている
と仮定しましょう。

./configure --prefix=$LFS/tools というようなコマンドを実行するように言
われた時には、実際には ./configure --prefix=/mnt/lfs/tools を実行する必
要があります。

シェルで入力されたコマンドや、編集や作成されたファイルの中など、これが
どこに書かれていようとそうすることが重要です。

一つの解決方法は、LFS という環境変数を設定することです。この方法では
$LFS を /mnt/lfs に置き換える変わりに、文字通り入力することができます。
これは以下のコマンドを実行することで遂行されます。

export LFS=/mnt/lfs                                                    

このようにしておけば、./configure --prefix=$LFS/tools というようなコマ
ンドを実行するよう言われたなら、その通りに入力してもよいでしょう。お使
いのシェルは、コマンドラインを処理するときに、つまりコマンドをタイプし
終わって Enter を押したときに "$LFS" を "/mnt/lfs" に置き換えるはずです
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

SBU について

たいていの方はそれぞれのパッケージをコンパイルしてインストールするのに
大体どれくらいの時間がかかるのかあらかじめ知りたいでしょう。しかし
"Linux From Scratch" は非常に多くの異なるシステムで構築されるので、実際
の所要時間を見積もることはほとんどできません。最も早いシステムでは一番
大きなパッケージ( Glibc )でも 20 分以上かからないでしょうが、一番遅い
システムでは 3 日かそれくらいかかるでしょう―冗談ではなく、その程度の差
があります。というわけで、所要時間を示す代わりに、私達は静的 Binutils
単位( SBU と略記します)を使うというアイディアを採用しました。

つまりこういうことです。この本であなたが最初にコンパイルするものは第 5
章で静的にリンクされた Binutils で、このパッケージをコンパイルするのに
かかる時間が、私達が "静的 Binutils 単位" または "SBU" と呼ぶものにあた
ります。その他すべてのものをコンパイルするために必要な時間は、この時間
を単位として比で表されます。

たとえば、静的リンクバージョンの GCC を構築するのにかかる時間は 4.4 SBU
です。お使いのシステムで、静的な Binutils をコンパイルしインストールす
るのに 10 分かかったとすると、静的な GCC を構築するのにおおむね 45 分か
かるということです。幸運なことに、大半の構築時間は 1 Binutils よりも非
常に短いです。

お使いのホストのコンパイラが GCC-2 ベースなら、リストされた SBU 値は最
終的にいくらか過小評価気味になるということを記しておきます。これは、SBU
はほとんど最初のパッケージにあたるので、古い GCC によってコンパイルされ
る一方、残りのシステムは大体 30% ほど遅いことで知られる新しい GCC-3.3.1
でコンパイルされるということが原因です。

SBU が SMP ベースのマシンではうまくいかないということも記しておきます。
幸運にもマルチプロセッサーをお使いなら、そんなことは気にならないくらい
あなたのシステムは速いでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

テストスイートについて

ほとんどのパッケージはテストスイート(訳注:テストセット一式のこと)を
準備しています。新しく構築したパッケージにテストスイートを実行するのは
、すべてのものが正しくコンパイルされたことをきちんと調査できるので、通
常とてもよいことです。チェック機構を動かすテストスイートは、開発者が目
論んだ通りにパッケージが機能するのを検証します。しかしながら、そのパッ
ケージに全くバグがないことを保証するわけではありません。

他のものよりもより重要なテストスイートがいくつかあります。たとえば、中
心となる toolchain ― GCC やBinutils,Glibc ( C library ) などーについて
のテストスイートは、システムを適切に機能させるという中心的な役割を担い
ますから、一番重要なものです。ただ、注意しておきますが、GCC と Glibc へ
のテストスイーツは、特に遅いハードウェアでは完了するのに非常に長い時間
がかかります。

本書にしたがって進んでいくと、さまざまなテストスイートを実行する構築コ
マンドに出会います。問題になるテストスイートについての相対的な重要性を
説明することになるでしょうから、実行するかしないかを自分で決めることが
できます。

    Note: Binutils と GCC のテストスイーツを実行するときの一般的な問題
    は、仮想ターミナルを使い果たしてしまうことです。これは異常に多くの
    テストが失敗するという症状になります。これには多くの原因があります
    。最もありそうなのは、ホストシステムが正しくセットアップされた 
    devpts ファイルシステムを持っていないことです。このことについては後
    ほど第 5 章で詳しく議論します。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

質問の仕方

本書を使っていて問題に遭遇し、それが FAQ ( http://
www.linuxfromscratch.org/faq )にもなかったら、インターネットリレーチャ
ット( IRC )かメーリングリストに参加している人たちが助けてくれるでしょ
う。 LFS メーリングリストについては第 1 章のメーリングリストでわかりま
す。あなたの問題に私達が手を貸し究明して解決するために、助けを求めると
きはできるかぎり適切な情報を書くようにしてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

書くべきこと

直面している問題についての手短な説明は別にして、依頼事項に含まないとい
けない大事な事柄は次のようなものです。

 ・ 使っている本の版(これは第 5.0 版です)
   
 ・ LFS を作るのに使っているホストディストリビューションとそのバージョ
    ン
   
 ・ 問題を起こしているパッケージまたは項目
   
 ・ 受け取った通りの正確なエラーメッセージまたは状況
   
 ・ この本からなにか逸脱したかどうか
   
(本書から離れて行ったことがあっても、援助したくないということはありま
せん。結局、LFS もひとつの選択ということですし。この節は、あなたの問題
について、他の原因の可能性をを調べる際の役に立てようとして含めています
。)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

設定に関する問題

設定のためのスクリプトを実行しているときに何かうまくいかなくなったら、
config.log ファイルに目を通して下さい。このファイルには、画面に出力され
なかった設定中のエラーを含んでいるかもしれません。質問をしようと思った
なら、関連する行を含めてください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

コンパイルの問題

問題の原因を見つけるための私たちの手がかりとして、画面出力と種々のファ
イルの内容は役に立ちます。 ./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 commands.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 variable.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 reference 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                                           

という行とそのあとの項目だけを含めます。これは問題を診断するには十分で
はありません。なぜならこれは何が悪いのかではなくただ何かおかしくなった
ということだけを伝えているからです。役に立つ情報を含めるには、上の例に
挙げたような項目全体がすべて含まれていなければいけません。というのは、
そこには実行されたコマンドとそのエラーメッセージがあるからです。

一般向けにインターネットでの質問の仕方についてのよくまとまった記事が
Eric S. Raymond によって書かれました。それはオンラインで入手でき http:/
/catb.org/~esr/faqs/smart-questions.html にあります。その文章を読んで中
にあるヒントに従い、まずより多くの反応を得られるように、本当に必要な助
言を得られるようになりましょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

テストスイートの問題

多くのパッケージが重要性に応じて、実行をお勧めするテストスイートを提供
しています。パッケージは時折失敗や予期された失敗を引き起こします。この
ようなエラーに出くわしたら、それがすでに既知のものであり、そのようなエ
ラーを記録していないかどうかを、LFS Wiki ページ http://
wiki.linuxfromscratch.org/ で調べてください。すでに分かっていることなら
、通常は心配いりません。

II. 第二部ー構築の準備

Table of Contents
3. 新しいパーティションを準備する
4. 必要なもの: パッケージとパッチ
5. 暫定システムの構成

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 3. 新しいパーティションを準備する

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

この章では LFS システムを置くパーティションを用意します。パーティション
を作成し、そこにファイルシステムを作り、それをマウントします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

新しいパーティションを作成する

新しい Linux システムを構築するために、いくらかのスペース、つまり空のデ
ィスクスペースを必要とします。空きパーティションがなく、またハードディ
スク上に新しく作る余裕もないとしたら、LFS を現在のディストリビューショ
ンがインストールされている同じパーティション上に構築することができます
。ディスクスペースが不足でもやってみようと思うなら、下記の場所にあるヒ
ントを参照してください。 http://www.linuxfromscratch.org/hints/
downloads/files/lfs_next_to_existing_systems.txt

最小のシステムでも、約 1.2 GB 程度のパーティションが必要となります。こ
れはすべてのソースの tarball を入れて、パッケージをコンパイルするのに十
分な量です。しかし、LFS システムを主要な Linux システムとして使うつもり
なら、恐らくさらにソフトをインストールする必要があり、これよりも多くの
スペース、恐らくは 2 GB か 3 GB を必要とするでしょう。

マシンに十分な RAM があることはほとんどないので、小さなディスクスパーテ
ィションをスワップスペースとして使うという考えは良いものです。このスペ
ースは、より緊急なデータに対してメモリに空きを作り、まためったに使わな
いデータを保存するためにカーネルによって使われます。 LFS システムのため
のスワップスペースは、お使いのホストシステムと共有できるので、既にスワ
ップパーティションがあるならもう一つ作る必要はありません。

cfdisk や fdisk のようなディスクパーティショニングプログラムを、新しい
パーティションが作られるべきハードディスクの名前を引数にして実行しまし
ょう。たとえば、プライマリ IDE ディスクに対しては /dev/hda となります。
必要ならば Linux ネイティブパーティションとスワップパーティションを作成
しましょう。これらのプログラムの使いかたがわからないなら、cfdisk や 
fdisk の man page を参照してください。

hda5 のような、新しいパーティションの名称を憶えておいて下さい。本書では
それを LFS パーティションとして言及します。スワップパーティションを作っ
ているなら、その名称も憶えておいて下さい。これらの名前は後ほど、/etc/
fstab ファイルなどに必要となります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

新しいパーティションにファイルシステムを作成する

さて、空のパーティションができましたから、そこにファイルシステムを作成
できます。 Linux の世界で最も広く使われているのはセカンドエクステンデッ
ド( ext2 )ファイルシステムですが、今日の大容量ハードディスクではいわ
ゆるジャーナリングファイルシステムが段々と普及してきています。ここでは
ext2 ファイルシステムを作りますが、他のファイルシステムの構築の説明が下
記の場所にあります。 http://www.linuxfromscratch.org/blfs/view/stable/
postlfs/filesystems.html

LFSパーティションに ext2 ファイルシステムを作成するには、以下のように実
行して下さい。

mke2fs /dev/xxx                                                        

xxx は、hda5 のような LFS パーティションの名前に置き換えて下さい。

(新しく)スワップパーティションを作成したら、それもまたスワップパーテ
ィションとして(上で mke2fs を行なったように、フォーマットとして知られ
る)初期化をしなければいけません。

mkswap /dev/yyy                                                        

yyy はスワップパーティションの名前に置き換えて下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

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

さてこれでファイルシステムができましたので、このパーティションにアクセ
スできるようにしましょう。このためには、そのパーティションをマウントし
、そしてマウントポイントを選択しなければいけません。本書では、ファイル
システムは /mnt/lfs の下にマウントされたと仮定しますが、どのディレクト
リを選択しても問題ありません。

マウントポイントを選んでそれを LFS 環境変数に指定しましょう。

export LFS=/mnt/lfs                                                    

それではマウントポイントを作成し LFS ファイルシステムをマウントしましょ
う。

mkdir -p $LFS                                                          
mount /dev/xxx $LFS                                                    

xxx は LFS パーテションの名前に置き換えて下さい。

LFS に対して複数のパーティションを使う(一つは / に、もう一つは /usr と
いったように)と決めたら、このようにマウントして下さい。

mkdir -p $LFS                                                          
mount /dev/xxx $LFS                                                    
mkdir $LFS/usr                                                         
mount /dev/yyy $LFS/usr                                                

もちろん、xxx と yyy は適切なパーティション名に置き換えて下さい。

また、この新しいパーティションは( nosuid や nodev, noatime オプション
のような)非常に制限的な許可属性を付けてマウントしないよう良く確認して
ください。 mount コマンドをパラメーターなしで実行することで、LFS パーテ
ィションがどのオプションでマウントされているか知ることができます。
nosuid や nodev, noatime であることがわかったら、マウントし直さなければ
いけません。

さて、作業場所ができましたから、パッケージをダウンロードする用意が整い
ました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 4. 必要なもの: パッケージとパッチ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

下記に示すものは、基本的な Linux システムを構築するためにダウンロードし
なければいけないパッケージのリストです。リストされたパッケージのバージ
ョン番号は、うまく動くと分かっているソフトウェアのバージョンであり、本
書ではこれらを基本とします。あるバージョンでの構築コマンドが新しいバー
ジョンではうまく行かないということがあるので、経験豊かな LFS 構築者でな
い限り新しいバージョンを試さないことを強く勧めます。また、今のところま
だうまく動いていない既知の問題があるために、たいていは最新版を使わない
というやり方にはしばしば立派な理由があります。

これらすべての URL は、可能であれば、http://www.freshmeat.net/ でそれぞ
れのプロジェクトのページになっています。 Freshmeat というページは、公式
のダウンロードサイトへの簡単なアクセスを提供していますし、それ以外にも
プロジェクトのウェブサイトやメーリングリスト、FAQ、改訂記録などへのアク
セスも提供しています。

これらのダウンロードの場所がいつも利用できるという保証はできません。本
書が発行されて以降ダウンロードの場所が変更になっているなら、パッケージ
を google してみて下さい。それでもうまくいかないなら、本書のエラッタペ
ージ http://linuxfromscratch.org/lfs/print/ を調べてみるか、いっそのこ
と http://linuxfromscratch.org/lfs/packages.html にリストされた別のダウ
ンロードの方法を試してみるといいかもしれません。

ダウンロードしたパッケージとパッチすべてを、構築作業中ずっと利用しやす
い場所に置いておかなければいけません。また、ソースを解凍し、構築するた
めの作業用のディレクトリが必要となるでしょう。うまくいく一つの案として
は $LFS/sources を tarball とパッチの置き場、かつその作業ディレクトリと
して使うというものです。これですべての必要なものは LFS パーティションに
置かれ、構築過程のすべての段階で利用できるようになります。

そこで、ダウンロードをする前に、root で次のように実行します:

mkdir $LFS/sources                                                     

さらに、root でダウンロードすることはないでしょうから、このディレクトリ
を一般ユーザーで書き込み可能(かつ sticky )にします。

chmod a+wt $LFS/sources                                                

使いやすくするため、リストの先頭は wget  プログ
ラムで使えるファイルへのリンクになっています。このファイルと wget プロ
グラムを使うと、ひとつひとつ手動でダウンロードするのではなく、すべての
ファイルを一度にダウンロードできるので簡単です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

すべてのパッケージ

以下のパッケージをダウンロードするか何らかの方法で入手します。

Autoconf (2.57) - 792 KB:
http://freshmeat.net/projects/autoconf/

Automake (1.7.6) - 545 KB:
http://freshmeat.net/projects/automake/

Bash (2.05b) - 1,910 KB:
http://freshmeat.net/projects/gnubash/

Binutils (2.14) - 10,666 KB:
http://freshmeat.net/projects/binutils/

Bison (1.875) - 796 KB:
http://freshmeat.net/projects/bison/

Bzip2 (1.0.2) - 650 KB:
http://freshmeat.net/projects/bzip2/

Coreutils (5.0) - 3,860 KB:
http://freshmeat.net/projects/coreutils/

DejaGnu (1.4.3) - 1,775 KB:
http://freshmeat.net/projects/dejagnu/

Diffutils (2.8.1) - 762 KB:
http://freshmeat.net/projects/diffutils/

E2fsprogs (1.34) - 3,003 KB:
http://freshmeat.net/projects/e2fsprogs/

Ed (0.2) - 182 KB:
http://freshmeat.net/projects/ed/

Expect (5.39.0) - 508 KB:
http://freshmeat.net/projects/expect/

File (4.04) - 338 KB: (*) 下の注意を見てください
http://freshmeat.net/projects/file/

Findutils (4.1.20) - 760 KB:
http://freshmeat.net/projects/findutils/

Flex (2.5.4a) - 372 KB:
ftp://ftp.gnu.org/gnu/non-gnu/flex/

Gawk (3.1.3) - 1,596 KB:
http://freshmeat.net/projects/gnuawk/

GCC (2.95.3) - 9,618 KB:
http://freshmeat.net/projects/gcc/

GCC-core (3.3.1) - 10,969 KB:
http://freshmeat.net/projects/gcc/

GCC-g++ (3.3.1) - 2,017 KB:
http://freshmeat.net/projects/gcc/

GCC-testsuite (3.3.1) - 1,033 KB:
http://freshmeat.net/projects/gcc/

Gettext (0.12.1) - 5,593 KB:
http://freshmeat.net/projects/gettext/

Glibc (2.3.2) - 13,064 KB:
http://freshmeat.net/projects/glibc/

Glibc-linuxthreads (2.3.2) - 211 KB:
http://freshmeat.net/projects/glibc/

Grep (2.5.1) - 545 KB:
http://freshmeat.net/projects/grep/

Groff (1.19) - 2,360 KB:
http://freshmeat.net/projects/groff/

Grub (0.93) - 870 KB:
ftp://alpha.gnu.org/pub/gnu/grub/

Gzip (1.3.5) - 324 KB:
ftp://alpha.gnu.org/gnu/gzip/

Inetutils (1.4.2) - 1,019 KB:
http://freshmeat.net/projects/inetutils/

Kbd (1.08) - 801 KB:
http://freshmeat.net/projects/kbd/

Less (381) - 259 KB:
http://freshmeat.net/projects/less/

LFS-Bootscripts (1.12) - 25 KB:
http://downloads.linuxfromscratch.org/lfs-bootscripts-1.12.tar.bz2

Lfs-Utils (0.3) - 221 KB:
http://www.linuxfromscratch.org/~winkie/downloads/lfs-utils/

Libtool (1.5) - 2,751 KB:
http://freshmeat.net/projects/libtool/

Linux (2.4.22) - 28,837 KB:
http://freshmeat.net/projects/linux/

M4 (1.4) - 310 KB:
http://freshmeat.net/projects/gnum4/

Make (3.80) - 899 KB:
http://freshmeat.net/projects/gnumake

MAKEDEV (1.7) - 8 KB:
http://downloads.linuxfromscratch.org/MAKEDEV-1.7.bz2

Man (1.5m2) - 196 KB:
http://freshmeat.net/projects/man/

Man-pages (1.60) - 627 KB:
http://freshmeat.net/projects/man-pages/

Modutils (2.4.25) - 215 KB:
http://freshmeat.net/projects/modutils/

Ncurses (5.3) - 2,019 KB:
http://freshmeat.net/projects/ncurses/

Net-tools (1.60) - 194 KB:
http://freshmeat.net/projects/net-tools/

Patch (2.5.4) - 182 KB:
http://freshmeat.net/projects/patch/

Perl (5.8.0) - 10,765 KB:
http://freshmeat.net/projects/perl/

Procinfo (18) - 24 KB:
http://freshmeat.net/projects/procinfo/

Procps (3.1.11) - 242 KB:
http://freshmeat.net/projects/procps/

Psmisc (21.3) - 259 KB:
http://freshmeat.net/projects/psmisc/

Sed (4.0.7) - 678 KB:
http://freshmeat.net/projects/sed/

Shadow (4.0.3) - 760 KB:
http://freshmeat.net/projects/shadow/

Sysklogd (1.4.1) - 80 KB:
http://freshmeat.net/projects/sysklogd/

Sysvinit (2.85) - 91 KB:
http://freshmeat.net/projects/sysvinit/

Tar (1.13.25) - 1,281 KB:
ftp://alpha.gnu.org/gnu/tar/

Tcl (8.4.4) - 3,292 KB:
http://freshmeat.net/projects/tcltk/

Texinfo (4.6) - 1,317 KB:
http://freshmeat.net/projects/texinfo/

Util-linux (2.12) - 1,814 KB:
http://freshmeat.net/projects/util-linux/

Vim (6.2) - 3,193 KB:
http://freshmeat.net/projects/vim/

Zlib (1.1.4) - 144 KB:
http://freshmeat.net/projects/zlib/

これらのパッケージの総容量: 134 MB

    Note: File (4.04) はあなたがこれを読んでいるときには入手できないか
    もしれません。メインのダウンロードの場所は新しいバージョンがリリー
    スされると古いバージョンを取り除いてしまうことで知られています。代
    わりのダウンロードの場所については、付録 A の対応した章を参照して下
    さい。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

必要なパッチ

これらすべてのパッケージに加えて、さらにいくつかのパッチが必要となりま
す。これらはパッケージの中の、メンテナーによって修正されるべき小さな誤
りを訂正するか、もしくは私たちのやり方に合うようにちょっとした改訂を行
ないます。以下の物が必要となります。

Bash Patch - 7 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/bash-2.05b-2.patch

Bison Attribute Patch - 2 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
bison-1.875-attribute.patch

Coreutils Hostname Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
coreutils-5.0-hostname-2.patch

Coreutils Uname Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
coreutils-5.0-uname.patch

Ed Mkstemp Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/ed-0.2-mkstemp.patch

Expect Spawn Patch - 6 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
expect-5.39.0-spawn.patch

Gawk Libexecdir Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gawk-3.1.3-libexecdir.patch

GCC No-Fixincludes Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-3.3.1-no_fixincludes-2.patch

GCC Specs Patch - 10 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/gcc-3.3.1-specs-2.patch

GCC Suppress-Libiberty Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-3.3.1-suppress-libiberty.patch

GCC-2 Patch - 16 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/gcc-2.95.3-2.patch

GCC-2 No-Fixincludes Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-2.95.3-no-fixinc.patch

GCC-2 Return-Type Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-2.95.3-returntype-fix.patch

Glibc Sscanf Patch - 2 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
glibc-2.3.2-sscanf-1.patch

Grub Gcc33 Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/grub-0.93-gcc33-1.patch

Kbd More-Programs Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
kbd-1.08-more-programs.patch

Man 80-Columns Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/man-1.5m2-80cols.patch

Man Manpath Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/man-1.5m2-manpath.patch

Man Pager Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/man-1.5m2-pager.patch

Ncurses Etip Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
ncurses-5.3-etip-2.patch

Ncurses Vsscanf Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
ncurses-5.3-vsscanf.patch

Net-tools Mii-Tool-Gcc33 Patch - 2 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
net-tools-1.60-miitool-gcc33-1.patch

Perl Libc Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/perl-5.8.0-libc-3.patch

Procps Locale Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
procps-3.1.11-locale-fix.patch

Shadow Newgrp Patch - 1 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
shadow-4.0.3-newgrp-fix.patch 

Zlib Vsnprintf Patch - 10 KB:
http://www.linuxfromscratch.org/patches/lfs/5.0/
zlib-1.1.4-vsnprintf.patch

上記の必要なパッチに加えて、LFS コミュニティによって作成された多くの選
択可能なパッチが存在します。これらのほとんどはちょっとした問題を解決す
るか、デフォルトでは有効になっていない機能を有効にするものです。どうぞ
遠慮なく http://www.linuxfromscratch.org/patches/ に置かれたパッチのデ
ータベースを調べてみて、使ってみたいと思うパッチがあれば持って行って下
さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 5. 暫定システムの構成

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

この章で、は最小限の Linux システムをコンパイルしてインストールします。
この最小限のシステムは、次の章で最終的な LFS システムを構成を始めるのに
十分なツール類も同時にインストールします。

この最小限のシステムの構築には、二つの段階があります。初めに新しくホス
トから独立した toolchain (コンパイラ、アセンブラ、リンカとライブラリ)
を構築し、それからこれらをその他のとても重要なツールを構築するために使
います。

この章でコンパイルされるファイルは $LFS/tools ディレクトリ下にインスト
ールされ、次の章でインストールされるファイルと分けて置かれます。ここで
コンパイルされるパッケージは暫定的なものなので、のちに LFS システムとな
るものをそれによって汚したくありません。

何が Linux システムを動かしているかということを学ぶ上でのポイントは、そ
れぞれのパッケージが何に使われ、ユーザーやシステムがなぜそれらを必要と
するかということを知ることです。そのために、実際のインストールの前に、
それぞれのパッケージについて手短な説明がされています。パッケージの中の
、それぞれのプログラムの簡単な説明については、付録 A の対応する項を参照
して下さい。

構築の説明は bash シェルを使っているものと仮定します。また、既にパッケ
ージのソースを解凍しており、構築コマンドを使う前に解凍したソースのディ
レクトリに移動( cd )していると仮定しています。

いくつかのパッケージは構築の前にパッチを当てますが、パッチは問題を回避
する必要があるときにだけ必要です。この章と次の章のでは、しばしばパッチ
が必要になりますが、ときおり片方の章でだけ必要となります。ですから、ダ
ウンロードしたパッチの説明がこの章で見当たらないように思えても心配しな
いで下さい。

大半のパッケージのインストールの間、画面上を流れるコンパイラのあらゆる
種類の警告を見るでしょう。これらは正常で、無視しても安全です。これらは
ただ警告があると言っているだけで、その警告の大半はコンパイラが C か C++
の文法的な記述の使いかたに、無効ではないにせよ非難を言っているものです
。それは、C 言語の標準的な記述方法はたびたび変更されていて、いくつかの
パッケージはいまだに実際には問題とならない古い記述法を使っている、とい
うだけのことです。

言うに及ばす、普通はそれぞれのパッケージをインストールしたあと、スペー
スの整理と余裕の確保のために、ソースと構築要のディレクトリを削除する方
がよいです。

続ける前に、以下のことを実行して LFS 環境変数が正しく設定されていること
を確かめておきましょう。

echo $LFS                                                              

結果がお使いの LFS パーティションのマウントポイント、例に従ったとしたら
/mnt/lfs というパスが表示されることを確かめましょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Toolchain 技術情報

この節では、全体的な構築方法の背景となっている論理的根拠と、技術的な詳
細のいくつかを説明しようと考えています。ここですべてをすぐに理解しなけ
ればならないというわけではありません。それらの大半は、一度実際に構築を
行なえば理解できるでしょう。いつでもここを参照しに戻って来て下さい。

第 5 章の目的は、chroot で入れる健全で暫定的な環境を提供することです。
そうすれば、そのような環境はクリーンですから、第 6 章で目的の LFS シス
テムについて問題を起こさない構築を行えます。これを行なう上で、可能な限
りホストシステムから分離しようとし、必要なものが揃っていて独立で動かせ
る toolchain を構築します。構築の過程が、新しい読者にとって危険が最小限
になると同時に、最大限の教育的価値を持つように考えられてきたということ
を記しておくべきですね。言いかえると、より進んだ技術がシステムを構築す
るのに使われたということです。

    Important: 先に行く前に、しばしば target triplet (ターゲットを示す
    三語)と言われるプラットフォームの名称を確認しておいたほうがよいで
    しょう。一般的に、この「target triplet」とは、たとえば 
    i686-pc-linux-gnu のようなものです。お使いの「target triplet」を確
    定する簡単な方法は、多くのパッケージと一緒になっている config.guess
    スクリプトを実行することでしょう。 Binutils のソースを解凍し、スク
    リプト ./config.guess を実行してその結果をメモしておきましょう。
   
    また、動的ローダーとして言及されるプラットフォームの動的リンカの名
    前も、Binutils の一部であるスタンダードリンカ ld と混同しないために
    確認しておかなければいけません。動的リンカは Glibc によって提供され
    、プログラムによって必要とされる共有ライブラリを探してロードすると
    いう仕事をし、プログラムが走るように準備してから実行します。大半の
    人にとっては動的リンカの名前は ld-linux.so.2 となるでしょう。あまり
    普及していないプラットフォームでは、その名前は ld.so.1 か、もしくは
    新しい 64 ビットのプラットフォームでは全く異なったものになるかもし
    れません。ホストシステムの /lib ディレクトリの中を調べて、お使いの
    プラットフォームの動的リンカの名前を確認しておくべきです。絶対に確
    実な方法は、ホストシステムから適当にバイナリを選んで、'readelf -l
    <バイナリの名前> | grep interpreter' を実行してその結果を見ることで
    す。すべてのプラットフォームを含む信頼できる参考事項は Glibc ソース
    ツリーのルートにある shlib-バージョンのファイルの中です。
   
第 5 章の構築方法がどのように行なわれるかについて、いくつかの技術的要点

 ・ 同じ場所にインストールされたツール類が、どのように協力して働き、ち
    ょっとした GNU マジックを利用するかということの、原理的なクロスコン
    パイルへの類似
   
 ・ プログラムが選択したライブラリに対してだけリンクされるのを確実にす
    るため、標準のリンカライブラリのパス検索の注意深い操作
   
 ・ どのターゲットに動的リンカが使われるかをコンパイラに伝えるための、
    gcc のスペックファイルの注意深い操作
   
Binutils は最初にインストールされます。なぜなら、アセンブラとリンカそれ
ぞれのどの機能を有効にするか、無効にするかを決定するために ./configure
を実行している間、GCC と Glibc は共に様々な機能のテストを行なうからです
。これは人が最初に気がつくよりもより重要なことです。不正確に設定されて
しまった GCC と Glibc は、微妙に壊れた toolchain になり、そのような破損
の影響はディストリビューション全体の構築が終りに近づくまであらわれない
かもしれません。ありがたいことに、通常は時間を浪費する前に(破損箇所が
あれば)テストスイートの失敗が警告してくれます。

Binutils はそのアセンブラとリンカを、/tools/bin と /tools/
$TARGET_TRIPLET/bin の 2 ヶ所にインストールします。実際には、一つの場所
のツールはもう一つへのハードリンクになっています。リンカの重要な一面は
、そのライブラリ検索の規則です。詳細な情報は ld に --verbose フラグを渡
すことで得られます。たとえば 'ld --verbose | grep SERCH' と実行すれば、
現在の検索パスとその規則を表示します。 --verbose スイッチを渡してダミー
プログラムをコンパイルすることで、どのファイルが実際に ld によってリン
クされるかを知ることができます。たとえばえば 'gcc dummy.c -Wl,
--verbose 2>&1 | grep succeeded' と実行すればリンクの間に開くことに成功
したファイルを表示します。

次にインストールされるパッケージは GCC で、その ./configure を実行する
と、たとえば次のようなメッセージがあります。

    checking what assembler to use... /tools/i686-pc-linux-gnu/bin/as  
    checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld     
   
これは上述した理由で重要です。これはまた、GCC の設定スクリプトはどのツ
ールを使うかを探すために $PATH ディレクトリを検索しないことも示していま
す。しかし、gcc 自身の実際の操作の間、その同じ検索パスは必ずしも使われ
ません。 gcc がどのスタンダードリンカを使うかは 'gcc -print-prog-name=
ld' を実行してみれば分るでしょう。詳細な情報は gcc に -v フラグを渡して
ダミープログラムをコンパイルすれば得られます。たとえば 'gcc -v dummy.c'
を実行すれば、gcc のインクルードの検索パスとその規則を含んだ、プリプロ
セッサとコンパイル、アセンブルの段階についての詳細な情報を表示します。

次にインストールされるパッケージは Glibc です。Glibc を構築する上でもっ
とも重要な考慮すべきことは、コンパイラとバイナリツール、カーネルヘッダ
ーです。コンパイラは、一般的には Glibc がいつも $PATH ディレクトリにみ
つける gcc を使うので問題ありません。バイナリツールとカーネルヘッダーは
それよりもすこし厄介です。ですから、危険がないように、正しい選択をする
ように利用できる設定スイッチを使います。 ./configure の実行のあとで、重
要な細かい点すべてについて glibc-build ディレクトリにある config.make
ファイルの内容をチェックできます。どのバイナリツールを使用するかを管理
するための CC="gcc -B/tools/bin" の使用といったようなものや、コンパイラ
のインクルード検索パスを管理するための -nostdinc や -isystem フラグの使
用といった興味深い項目をメモしておきましょう。これらの項目は Glibc パッ
ケージの重要な面を強調するのに役立ちます。このパッケージは、構築の手続
きの点で非常に独立性が高く、一般的には toolchain のデフォルトを当てにし
ません。

Glibc のインストール後、検索とリンクが /tools プリフィックスの中だけで
行なわれるようにいくつかの調整をします。検索パスを /tools/lib だけに強
く限るように調整した ld をインストールします。それから gcc のスペックフ
ァイルを /tools/lib の中の新しい動的リンカを指すように修正します。この
最後のステップはプロセス全体の中で非常に重要です。上述のように、動的リ
ンカヘの強いパスの制限は実行ファイルで共有するすべての ELF に組み込まれ
ます。 'readelf -l <バイナリの名前> | grep interpreter' を実行すること
でこれを検査することが出来ます。 gcc のスペックファイルを修正することで
、第 5 章の最期までここでコンパイルされたすべてのプログラムが /tools/
lib にある新しい動的リンカを使うことを確実にしています。

新しい動的リンカを使う必要性はまた、GCC の第 2 段階でスペックファイルの
パッチをあてるためです。これに失敗すると、ホストシステムの /lib ディレ
クトリにある動的リンカの名前を GCC プログラムがそれ自身の中に組み込んだ
状態となり、ホストから離しておくという目的を駄目にしてしまいます。

Binutils の第 2 段階の間、ld のライブラリ検索パスをコントロールするため
に --with-lib-path という設定スイッチを利用することができます。第 5 章
の残りのパッケージのすべては /tools にある新しい Glibc に対して構築しま
す。

第 6 章の chroot 環境に入ってから最初にインストールするメジャーパッケー
ジは、上述したようなその独立的な性質から Glibc となります。一度この
Glibc が /usr にインストールされれば、すばやく toolchain のデフォルトを
転換し、第 6 章のターゲットとなる実際の LFS システムの残りの構築へ続き
ます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

静的リンクについての注意

ほとんどのプログラムはその目的とする処理以外にも、非常に多くの作業を行
う必要があります。これらは共通作業だったり、ごく細かい作業だったりしま
す。たとえばメモリ配置やディレクトリ検索、ファイルの読み書き、文字列操
作、パターンマッチング計算、そしてそのほかの多くの仕事があります。それ
ぞれのプログラムに再び車輪を発明させるような(訳注:車輪は便利な発明の象
徴)義務を課す代わりに、 GNU システムがこれらすべての基本的な関数を、す
でにでき上がったライブラリとして提供します。あらゆる Linux システムでの
主要なライブラリは Glibc です。

プログラムが使うライブラリの機能をリンクするには、基本的に静的、または
動的の二つの方法があります。プログラムが静的にリンクされた時には使われ
る関数のコードは実行ファイルに含まれ、結果として大きくてかさばるプログ
ラムとなります。プログラムが動的にリンクされた時には、含まれるものは動
的リンカへの参照となるライブラリと関数の名前で、より小さな実行ファイル
となります。( 3 番目の方法は動的リンカのプログラミングインターフェイス
を使うことです。より詳しい情報は dlopen の man ページを見て下さい。)

動的リンクは Linux でデフォルトになっていて、静的リンクに対して主に三つ
のメリットがあります。第一には、プログラムの様々な集まり全体の中に含ま
れる同じコードの多くのコピーを持つ変わりに、ハードディスク上に実行可能
なライブラリのたった一つのコピーがあればいいので、ディスクスペースを節
約します。第二に、いくつかのプログラムが同じライブラリの機能を同時に使
う時に、その機能のコード一つだけがコアに必要とされるということで、メモ
リの節約になります。第三に、ライブラリの機能がバグフィックスされるか、
または改善されると、その改善された機能を使うプログラムすべてをコンパイ
ルしなおす代わりに、このライブラリただ一つだけをコンパイルすれば良いと
いうことです。

動的リンクがいくつかのメリットを持っているとすると、それではなぜこの章
で初めの二つのパッケージを静的リンクにしたのでしょうか?歴史的、教育的
、そして技術的な三つの理由があります。歴史的な理由は、以前のバージョン
の LFS ではこの章ですべてのプログラムを静的にリンクしていたからです。教
育的な理由は、その違いを知るということは有益であるからです。技術的な理
由は、そうすることでホストから独立した要素を得て、それらのプログラムは
ホストから独立して使えることを意味します。しかし、初めの二つのパッケー
ジが動的にリンクされたときに、全体的に成功した LFS システムが構築される
という点では、あまり価値がありません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

$LFS/tools ディレクトリを作成する

この章でコンパイルされたすべてのプログラムは、次の章でコンパイルされる
プログラムと分けておくために $LFS/tools へインストールされます。ここで
コンパイルされるプログラムは暫定的なツールで、最終的な LFS システムの一
部とはならず、それらを別のディレクトリに置いておくことであとで簡単に捨
てられるようにします。

あとで、どんなファイルが使われているか、またはリンクされたかを調べるの
に、お使いのシステムのバイナリ類を検索したいなら、検索をより簡単にする
ため固有の名前をつけるといいでしょう。単純な "tools" の代わりに
"tools-for-lfs" というようなものが使えるかもしれません。

次のコマンドを実行し、必要なディレクトリを作成します。

mkdir $LFS/tools                                                       

次のステップはお使いのホストシステム上に /tools のシンボリックリンクを
作成することです。これは、LFS パーティションに今まさに作成したディレク
トリを指していることになります。

ln -s $LFS/tools /                                                     

シンボリックリンクは toolchain がいつも /tools を参照するようにコンパイ
ルすることを可能にしてくれて、それはコンパイラとリンカ、アセンブラがこ
の章(まだホストからのツールをいくつか使っています。)と次の章( LFS パ
ーティションに chroot されています。)で一緒に働くことを意味します。

    Note: 上のコマンドを良く調べましょう。見ているだけでは戸惑うだけで
    す。ln コマンドは様々なシンタクスの種類があるので、エラーだと思って
    報告する前に ln の man ページを確認しましょう。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS というユーザを追加する

root でログインしているときは、たった一つのミスがシステム全体にダメージ
を与えるか、または台なしにすらしてしまいます。ですから、この章では一般
ユーザで構築を行なうことをお勧めします。もちろんあなた自身のユーザー名
を使うこともできますが、すっきりとした作業環境を簡単に設定できるよう、
新しく lfs というユーザーを作り、インストール作業中はこれを使います。 
root で以下のコマンドを実行し新しいユーザーを加えて下さい。

useradd -s /bin/bash -m lfs                                            
passwd lfs                                                             

それでは、この新しい lfs というユーザにディレクトリの所有権を与え、$LFS
/tools への完全なアクセス権限を与えましょう。

chown lfs $LFS/tools                                                   

もし提案したように別の作業ディレクトリを作っていたら、lfs というユーザ
にもそのディレクトリの所有権を与えましょう。

chown lfs $LFS/sources                                                 

次に、ユーザ lfs でログインします。これは仮想コンソールか、ディスプレイ
マネージャー、または次のように su コマンドも使えます。

su - lfs                                                               

この "-" は su に新しいまっさらな( i.e. 環境変数を引き継がないなど)シ
ェルを始めるよう伝えます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

環境を設定する

ユーザ lfs でログインしている間、適切な作業環境を設定するために以下のコ
マンドを実行します。

cat > ~/.bash_profile << "EOF"                                         
set +h                                                                 
umask 022                                                              
LFS=/mnt/lfs                                                           
LC_ALL=POSIX                                                           
PATH=/tools/bin:$PATH                                                  
export LFS LC_ALL PATH                                                 
unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD                            
EOF                                                                    
                                                                       
source ~/.bash_profile                                                 

set +h コマンドは bash のハッシュ機能を無効にします。普通ハッシュは便利
な機能で、bash は同じ実行ファイルを探すのにその都度パスを検索することを
避けるため、実行ファイルのフルパス名を憶えるためのハッシュテーブルを使
います。しかし、インストールしてすぐに使えるツールをインストールしたい
のです。ハッシュ機能を無効にすることで、"対話的な" コマンド(たとえば 
make, patch, sed, cp など)は、構築作業中いつも最新版を使うことになりま
す。

ユーザファイル作成マスクを 022 に設定することは新しく作成したファイルや
ディレクトリをその所有者にのみ書き込み可能で、その他のユーザーには読み
込み、実行可能にします。

LFS 変数はもちろん選択したマウントポイントに設定しなければいけません。

LC_ALL 変数は、特定の地域の習慣に従うメッセージを作って、あるプログラム
の地域化を管理します。もしお使いのホストシステムが Glibc の 2.2.4 より
も古いバージョンを使っていて、この章の間に LC_ALL を "POSIX" か "C" 以
外に設定すると、 chroot 環境から出て、再度戻ろうとすると、トラブルを引
き起こすかもしれません。 LC_ALL を "POSIX" (または同義の "C" ) に設定す
ることで chroot 環境ですべてが期待通りにいくようにします。

標準のパスに /tools/bin を含めたので、この章全体でずっと書いているよう
に、構築したツール類はあとの構築過程の間、使えるようになります。

CC と CXX, CPP, LD_LIBRARY_PATH, LD_PRELOAD 環境変数はすべて、第 5 章の
toolchain を壊す危険性があります。ですので、アクシデントを防ぐためにこ
れらを解除します。

さてそれでは、作ったばかりのプロフィールをソース( source コマンド)し
た後で、あとの章で役に立ってくれる暫定的なツールを構築する準備ができま
した。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils-2.14 のインストール - 第 1 段階

推定構築時間:           1.0 SBU                                        
推定必要ディスクスペース:  194 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils の内容

Binutils はオブジェクトファイルとアーカイブで働くリンカ、アセンブラ、そ
の他のツールを含むソフトウェア開発ツールの集まりです。

インストールされるプログラム: addr2line, ar, as, c++filt,gprof, ld, nm,
objcopy, objdump, ranlib, readelf, size, strings 及び strip

インストールされるライブラリ: libiberty.a, libbfd.[a,so] andlibopcodes.
[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils インストール依存性

Binutils は以下のパッケージに依存します: Bash, Coreutils, Diffutils,
GCC, Gettext,Glibc, Grep, Make, Perl, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils のインストール

Glibc と GCC の二つは、それらのどの機能を有効にするかを決定するため、利
用できるリンカとアセンブラについてさまざまなテストを行うので、Binutils
が最初にコンパイルするパッケージであるのは重要なことです。

    Note: Binutils が重要な toolchain パッケージであっても、初期段階で
    はテストスイートを実行するつもりはありません。まず、テストスイート
    のひとそろいはまだ本来の位置に置かれていませんし、二つ目の理由は、
    第 1 段階でのプログラムはすぐにその第 2 段階インストールで上書きさ
    れてしまうからです。
   
このパッケージはデフォルト最適化フラグ( -march と -mcpu オプションを含
む)を変更するとおかしなふるまいをすると知られています。ですから、たと
えば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるような
何かの環境変数を定義したなら、Binutils を構築する時に、その設定を解除す
るか、修正するようお勧めします。

Binutils の文章は、ソースディレクトリとは別の構築専用ディレクトリでコン
パイルするよう勧めています。

mkdir ../binutils-build                                                
cd ../binutils-build                                                   

    Note: 本書の最後に、少しでも役立つようにと一覧にした SBU の値を使い
    たいなら、このパッケージを構築するのにかかる時間を測る必要がありま
    す。これを簡単に行うには、次のようにすることができます。 time {./
    configure ... && ...&& ...&& make install;}
   
それではコンパイルのために Binutils を準備しましょう。

../binutils-2.14/configure \                                           
    --prefix=/tools --disable-nls                                      

設定オプションの意味

 ・ --prefix=/tools: これはコンフィグスクリプトに Binutils プログラムを
    /tools ディレクトリにインストールするように指示します。
   
 ・ --disable-nls: これは国際化(この言葉はよく i18n と省略されます)を
    無効します。静的プログラムにはこれは不用で、また nls は静的リンクを
    行なう時によく問題を引き起こします。
   
パッケージのコンパイルを続行します。

make configure-host                                                    
make LDFLAGS="-all-static"                                             

make のパラメータの意味

 ・ configure-host: このオプションは、ただちにすべてのサブディレクトリ
    郡の設定を強制的に作成します。静的リンクされた構築はこれなしでは失
    敗します。ですから、問題に対処するためこのオプションを使います。
   
 ・ LDFLAGS="-all-static": これはリンカにすべての Binutils プログラムが
    静的にリンクされるべきであると伝えます。しかし率直に言えば、
    "-all-static" は初めに libtool プログラムに渡され、それからそれがリ
    ンカに "-static" を渡します。
   
パッケージをインストールします。

make install                                                           

それでは Glibc の "閉じ込め" のためにリンカを用意します。

make -C ld clean                                                       
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib                   

make のパラメータの意味

 ・ -C ld clean: これは make プログラムに ld サブディレクトリの中だけに
    あるコンパイルされたファイルをすべて削除するように伝えます。
   
 ・ -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib: これは ld サブディ
    レクトリの中にあるすべてを再構築するオプションです。コマンドライン
    で LIB_PATH makefile 変数を指定すると、デフォルトの値を上書きし、暫
    定的にツールを置いてある場所に変更します。この変数の値はリンカのデ
    フォルトのライブラリ検索パスを指定します。この章のあとでこの準備が
    どのように使われるかが分るでしょう。
   
┌──────────────────────────────────┐
│                              Warning                               │
├──────────────────────────────────┤
│この段階ではまだ Binutils の構築とソースのディレクトリを削除しないで│
│下さい。この章のもう少し先で、再び現状のまま必要となります。        │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC-3.3.1 のインストール第1段階

推定構築時間:           4.4 SBU                                        
推定必要ディスクスペース:  300 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC の内容

GCC パッケージは C 及び C++ コンパイラなどを含む GNU コンパイラコレクシ
ョンを収容しています。

インストールされるプログラム: c++, cc (link to gcc), cc1, cc1plus,
collect2, cpp, g++, gcc, gccbug, 及び gcov

インストールされるライブラリ: libgcc.a, libgcc_eh.a, libgcc_s.so,
libstdc++.[a,so] 及び libsupc++.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC インストール依存性

GCC は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed,
Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC のインストール

さしあたりは C++ コンパイラを必要としないので、GCC-core の tarball を解
凍するだけにしておきます。

    Note: GCC が重要な toolchain パッケージであっても、初期段階ではテス
    トスイートを実行するつもりはありません。まず、テストスイートがテス
    トする範囲がまだ適当ではありませんし、二つ目の理由は、第 1 段階での
    プログラムはすぐにその第 2 段階インストールで上書きされてしまうから
    です。
   
このパッケージはデフォルト最適化フラグ( -march と -mcpu オプションを含
む)を変更するとおかしなふるまいをすると知られています。ですから、たと
えば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるような
何かの環境変数を定義したなら、GCC を構築する時に、その設定を解除するか
、修正するようお勧めします。

GCC の文書は、ソースディレクトリとは別の構築専用ディレクトリでコンパイ
ルするよう勧めています。

mkdir ../gcc-build                                                     
cd ../gcc-build                                                        

それではコンパイルのために GCC を準備します。

../gcc-3.3.1/configure --prefix=/tools \                               
    --with-local-prefix=/tools \                                       
    --disable-nls --enable-shared \                                    
    --enable-languages=c                                               

コンフィグオプションの意味

 ・ --with-local-prefix=/tools: このスイッチの目的は gcc の include 検
    索パスから、/usr/local/include を除外することです。これは必須ではあ
    りませんが、ホストシステムへの影響を最小限にしたいので、このように
    することには意味があります。
   
 ・ --enable-shared: このスイッチは、初めピンとこないかもしれません。し
    かしこれを使うと、libgcc_s.so.1 と libgcc_eh.a の構築を許可し、さら
    に使える libgcc_eh.a を持っているということは、Glibc (次にコンパイ
    ルするパッケージ)に関する設定スクリプトが適切な結果になるのを確実
    にします。 gcc のバイナリ類は、さらに BOOT_FLAGS の -static 値で制
    御されるので、今まで通り静的にリンクされることに注意してください。
   
 ・ --enable-languages=c: このオプションは C コンパイラだけが構築される
    ようにします。このオプションは、GCC tarball をすべてダウンロードし
    て解凍した時にだけ必要になります。
   
パッケージのコンパイルを続けます。

make BOOT_LDFLAGS="-static" bootstrap                                  

make パラメータの意味

 ・ BOOT_LDFLAGS="-static": これは GCC にそのプログラムを静的にリンクす
    ることを伝えます。
   
 ・ bootstrap: このターゲットは、GCC をただコンパイルするだけではなく、
    何度かコンパイルします。最初にコンパイルしたプログラムそのものを 2
    回目のコンパイルに使い、さらに 3 回目にも使います。それから、同じも
    のをきちんと再生成できるのを確かめるために、2 回目と 3 回目のコンパ
    イルを比較します。完全に再生成しているということは、たぶん正しくコ
    ンパイルされということになります。
   
それではパッケージをインストールします。

make install                                                           

仕上げに /tools/bin/cc のシンボリックリンクを作成します。多くのプログラ
ムやスクリプトが gcc の代わりに cc を使うというのは、プログラムに一般性
を持たせるということですから、すべての Unix システムで使えるということ
です。すべての人が GNU C コンパイラをインストールしているわけではありま
せん。単に、cc を使っておくことで、それに対してシンボリックリンクさえ作
れば、システム管理者がどの C コンパイラをインストールするかについては制
約が無くなります。

ln -sf gcc /tools/bin/cc                                               

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux-2.4.22 ヘッダのインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース:  186 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux の内容

Linux カーネルは全ての Linux システムの中心です。これは Linux を動かし
ているものです。コンピュータの電源が付けられ Linux システムがブートする
時、真っ先にロードされる Linux ソフトウェアの一つがカーネルです。カーネ
ルはシステムのハードウェア構成、シリアルポート、パラレルポート、サウン
ドカード、ネットワークカード、IDE コントローラー、SCSI コントローラやそ
の他にも多くの物をを初期化します。簡単に言えばつまり、カーネルはソフト
ウェアが実行できるようにハードウェアを準備します。

インストールされるプログラム: the kernel 及び the kernel headers

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux インストール依存性

Linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

カーネルヘッダのインストール

カーネルヘッダへの参照を必要とするパッケージがあるので、これからカーネ
ルヘッダを解凍し、設定し、そして必要なファイルを gcc が後ほど見つけられ
る場所にコピーします。

それではヘッダのインストールの準備をします。

make mrproper                                                          

これはカーネルツリーを完全にクリーンにします。カーネルチームはこのコマ
ンドがそれぞれのカーネルのコンパイルに先立ち実行されるよう勧めています
。解凍したあとのソースツリーがクリーンであると当てにしてはいけません。

include/linux/version.h を作成します。

make include/linux/version.h                                           

プラットフォーム固有の include/asm シンボリックリンクを作成します。

make symlinks                                                          

プラットフォーム固有のヘッダファイルをインストールします。

mkdir /tools/include/asm                                               
cp include/asm/* /tools/include/asm                                    
cp -R include/asm-generic /tools/include                               

クロスプラットフォームカーネルヘッダをインストールします。

cp -R include/linux /tools/include                                     

autoconf.h ヘッダファイルを使ういくつかのカーネルヘッダファイルがありま
す。まだカーネルを最適化していないので、コンパイルが失敗することを避け
るためにこのファイルを自分で作る必要があります。空の autoconf.h ファイ
ルを作ります。

touch /tools/include/linux/autoconf.h                                  

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc-2.3.2 のインストール

推定構築時間:           11.8 SBU                                       
推定必要ディスクスペース:  800 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc の内容

Glibc は open, malloc, printf, 等といったシステムコールや基本的な関数を
提供するライブラリです。この C ライブラリは動的リンクされた全てのプログ
ラムに使われます。

インストールされるプログラム: catchsegv, gencat, getconf, getent,
glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown,
rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump 及び zic

インストールされるライブラリ: ld.so, libBrokenLocale.[a,so],
libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a,
libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so,
libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so,
libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.
[a,so], librpcsvc.a, librt.[a,so], libthread_db.so 及び libutil.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc インストール依存性

Glibc は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc のインストール

Glibcのインストールを始める前に、通常すべてのソースを解凍しているディレ
クトリではなく、glibc-2.3.2 という名前のディレクトリにディレクトリを変
更して( cd して)そこで Glibc-linuxthread を解凍しなければいけません。

    Note: この章では Glibc にテストスイートを実行するつもりです。しかし
    、ここで Glibc テストスイートを実行することは、第 6 章で実行するこ
    とほど重要ではないと指摘だけしておきます。
   
このパッケージはデフォルト最適化フラグ( -march と -mcpu オプションを含
む)を変更するとおかしなふるまいをすると知られています。ですから、たと
えば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるような
何かの環境変数を定義したなら、Glibc を構築する時に、その設定を解除する
か、修正するようお勧めします。

基本的には、本書で示されるやり方以外の方法で Glibc をコンパイルすると、
お使いのシステムの安定性を危険に晒すことになります。

害のないメッセージですが、Glibc のインストールの段階で /tools/etc/
ld.so.conf がないのに不平を言うでしょう。この煩わしいささいな警告を修正
します。

mkdir /tools/etc                                                       
touch /tools/etc/ld.so.conf                                            

また、Glibc は GCC 3.3.1 でコンパイルするとやっかいな問題を持ちます。こ
れを修正するために次のパッチをあてましょう。

patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch                            

Glibc の文章は、コンパイルをソースディレクトリとは別の構築専用ディレク
トリで行なうことを勧めています。

mkdir ../glibc-build                                                   
cd ../glibc-build                                                      

次に、Glibc のインストールの準備をします。

../glibc-2.3.2/configure --prefix=/tools \                             
    --disable-profile --enable-add-ons \                               
    --with-headers=/tools/include \                                    
    --with-binutils=/tools/bin \                                       
    --without-gd                                                       

コンフィグオプションの意味

 ・ --disable-profile: これはプロファイル情報付きでライブラリを構築する
    のを無効にします。もしプロファイルをする予定なのであればこのオプシ
    ョンを除きましょう。
   
 ・ --enable-add-ons:これは Glibc とともにインストールされたすべての追
    加物をも有効にします。この場合は、Linuxthreads になります。
   
 ・ --with-binutils=/tools/bin と --with-headers=/tools/include: 率直に
    言ってこれらのスイッチは必要ではありません。しかしこれらは、Glibc
    の構築の間にカーネルヘッダと Binutils プログラムが使われるというこ
    とについて間違いがないようにします。
   
 ・ --without-gd:このスイッチは memusagestat プログラムを構築しないよう
    にします。 memusagestat は、不可解なことにホストのライブラリ(
    libgd, libpng, libz など)へのリンクを強く要求します。
   
この段階で以下の警告を見るかもしれません。

    configure: WARNING:                                                           
    *** These auxiliary programs are missing or incompatible versions: msgfmt     
    *** some features will be disabled.                                           
    *** Check the INSTALL file for required versions.                             
    (参考訳:                                                                    
    警告:                                                                        
    *** これらの予備プログラムは存在しないか、互換性のないバージョンです: msgfmt 
    *** いくつかの機能が無効になります。                                          
    *** 必要なバージョンを調べるのに INSTALL ファイルを見てください。)           
   
msgfmt プログラムが存在しない、または互換性がないことは通常無害ですが、
しかしテストスイートを実行しているときにときどき問題を引き起こすと思わ
れています。

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

make                                                                   

テストスイーツを実行します。

make check                                                             

Glibc のテストスイートは、お使いのホストシステムのある機能、とりわけカ
ーネルに強く依存します。加えて、この章でのあるテストは、ホストシステム
上に存在するツール、あるいは環境的な問題に影響を与えます。もちろん、こ
れらは第 6 章の chroot 環境の中で Glibc のテストスイートを実行するとき
には問題とはなりません。一般的に、Glibc テストスイートはいつもテストに
通過するものと予想されます。しかし、先に述べたように、ある環境ではいく
つかの失敗が避けがたいものです。私達が把握している、最もよくある問題を
列挙しておきます。

 ・ CPU が比較的新しい Intel 純正か AMD 純正でない場合に、math テストが
    ときどき失敗します。一部の最適化設定がここでの原因と知られています
    。
   
 ・ ホストシステムの問題により gettext テストがときどき失敗します。明確
    な理由は未だ定かではありません。
   
 ・ LFS パーティションが noatime オプションでマウントされているか、ファ
    イルシステムのそのほかの妙な挙動のため、atime テストがときどき失敗
    することがあります。
   
 ・ ホストシステムが devfs ファイルシステムを実行していても、カーネルが
    tmpfs をサポートしていないために /dev/shm にマウントされた tmpfs フ
    ァイルシステムを持っていない場合には、shm テストが失敗するかもしれ
    ません。
   
 ・ 古くて遅いハードウェア上で実行していると、いくつかのテストはテスト
    タイムアウト時間を超過するために失敗するかもしれません。
   
要するに、この章で Glibc のテストスイーツの失敗を目にしてもそんなに心配
しなくて大丈夫です。第 6 章での Glibc が最終的に使うものとなるので、本
当にテストを通過するのを見たいのはそちらの方になります。しかし憶えてお
いて下さい、第 6 章でもいくつかの失敗、たとえば math テストなどでの失敗
は同様に発生するのです。失敗を経験したら、それをメモして、再び make
check を実行して続けましょう。テストスイートはどこで終ったかを調べて、
それを続けます。この止ったり、動いたりの連続は make -k check を実行する
ことで避けることができます。しかしそうするのなら、あとで追跡して失敗の
総数を調べられるように出力のログを取ることを確認して下さい。

それではパッケージをインストールします。

make install                                                           

さまざまな国や文化では、理解しあう方法にいろいろな約束事があります。こ
れらの習慣の範囲は、日付と時間の表記のようなとても単純なものから、話し
ことばのような非常に複雑なものにまで渡ります。 GNU の "国際化" されたプ
ログラムはロケールという手段を使っています。それでは Glibc ロケールをイ
ンストールします。

make localedata/install-locales                                        

このコマンドを実行する代わりに、必要なものまたは望むロケールのみをイン
ストールすることも可能です。これは localedef コマンドを使うことで行いま
す。これについての情報は glibc-2.3.2 のソースファイルの中にある INSTALL
というファイルのにあります。しかし、この先のパッケージのテストを通過す
るために重要となる沢山のロケールがあります。特に、GCCからの libstdc++
テストがそうです。以下の説明は、上の install-locales ターゲットを用いな
い場合、テストをうまく実行するために必要な最小限のロケールをインストー
ルするための手引です。

mkdir -p /tools/lib/locale                                             
localedef -i de_DE -f ISO-8859-1 de_DE                                 
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro                      
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 es_MX -f ISO-8859-1 es_MX                                 
localedef -i fr_FR -f ISO-8859-1 fr_FR                                 
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro                      
localedef -i it_IT -f ISO-8859-1 it_IT                                 
localedef -i ja_JP -f EUC-JP ja_JP                                     

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc の"閉じ込め"

それでは暫定的な C ライブラリがインストールされたので、この章の最後でイ
ンストールされる全てのツールをこれらのライブラリに対してリンクさせます
。これを行うのに、リンカとコンパイラのスペックファイルを調整する必要が
あります。

まず、binutils-build ディレクトリで、次のように実行して、調整したリンカ
をインストールします。

make -C ld install                                                     

リンカはすこし前の、Binutils の第 1 段階の終りに調整されました。この時
点から先では全てが /tools/lib の中のライブラリに対してのみリンクされま
す。

    Note: もし何かの理由で、第 1 段階での Binutils のソースと構築ディレ
    クトリを残しておくという以前の警告を見逃してしまったり、誤って消し
    てしまったり、アクセスできなくなってしまっていたりしても心配はいり
    ません。すべてがなくなってしまったわけではありません。上のコマンド
    を無視して下さい。その結果として引き続くプログラムの作成時に、ホス
    トにあるライブラリに対してリンクがなされる多少の可能性が出てくるだ
    けです。これは理想的ではありませんが、しかし大きな問題でもありませ
    ん。この後続いて第 2 段階の Binutils をインストールしたときに状況は
    改善されます。
   
さてそれでは調整されたリンカがインストールされたので、Binutils の構築と
ソースディレクトリを削除しなければいけません。

次にする事は GCC スペックファイルが新しい動的リンカを指し示すように修正
することです。簡単な sed がこれを行います。

SPECFILE=/tools/lib/gcc-lib/*/*/specs &&                               
sed -e 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \           
    $SPECFILE > tempspecfile &&                                        
mv -f tempspecfile $SPECFILE &&                                        
unset SPECFILE                                                         

上の記述をすべて手で入力するよりは、むしろカットアンドペーストすること
をお勧めします。または、そうしたければスペックファイルを編集することも
でき、"/lib/ld-linux.so.2" の部分をすべて "/tools/lib/ld-linux.so.2" で
置き換えるだけです。

    Important: もしプラットフォーム上の ld-linux.so.2 と名前の異なる何
    か別の動的リンカを使っているなら、上のコマンドで ld-linux.so.2 の代
    わりにお使いの動的リンカを指定しなけれいけません。必要ならば the
    Section called Toolchain 技術情報という名前の節を再び参照して下さい
    。
   
最後に、ホストシステムに由来するインクルードファイルのいくつかが、GCC
のプライベートインクルードディレクトリに見つかる可能性があります。これ
は GCC の構築の一部として実行される "fixincludes" プロセスの為に起こり
ます。この章でこのことについてもう少し説明します。さしあたり今はこの可
能性を消すために以下のコマンドを実行して下さい。

rm -f /tools/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h}      

┌────────────────────────────────────┐
│                                Caution                                 │
├────────────────────────────────────┤
│ここで立ち止まって、新しい toolchain の基本的な機能(コンパイルとリ     │
│ンク)が期待通り動いていることを確認するのは必須事項です。これを行な    │
│うために私達は簡単な完成度テストを行ないます。                          │
│                                                                        │
│echo 'main(){}' > dummy.c                                               │
│gcc dummy.c                                                             │
│readelf -l a.out | grep ': /tools'                                      │
│                                                                        │
│すべてが正しく動いているなら、エラーはないはずで、最後のコマンドの出    │
│力結果は次のようになります。                                            │
│                                                                        │
│    [Requesting program interpreter: /tools/lib/ld-linux.so.2]          │
│                                                                        │
│上に示したような出力結果がでない、あるいは出力結果がない場合、何か重    │
│大な間違いがあります。どこに問題があるかを見つけだし、修正するために    │
│、これまでやったことを振り返ってみなければいけません。これが完了する    │
│までは続けても意味がありません。特に、/tools/lib がお使いの動的リン     │
│カのプリフィックスとなっていることを注意しましょう。もちろん、あなた    │
│が ld-linux.so.2 とは何か別の名前の動的リンカを使ったプラットフォー     │
│ム上で作業しているなら、結果の出力は少し異なったものになるでしょう。    │
│                                                                        │
│すべてが問題ないとわかったなら、テストファイルを削除します。            │
│                                                                        │
│rm dummy.c a.out                                                        │
└────────────────────────────────────┘

これで独立した toolchain のインストールは完了で、残りの暫定的なツールを
構築するのに使うことができるようになりました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl-8.4.4 のインストール

推定構築時間:           0.9 SBU                                        
推定必要ディスクスペース:  23 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl の内容

Tcl パッケージは Tool コマンド言語を含みます。

インストールされるプログラム: tclsh (tclsh8.4 へのリンク), tclsh8.4

インストールされるライブラリ: libtcl8.4.so

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl インストール依存性

Tcl は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl のインストール

このパッケージと次の二つは GCC と Binutils へのテストスイーツを実行でき
るようにインストールするだけです。テストのためだけに三つのパッケージを
インストールするのは、やりすぎに見えるかもしれませんが、必須ではないに
しろ、もっとも重要なツール類が正しく動くかどうかがわかるよう安心を与え
てくれます。

コンパイルのために Tcl を準備します。

cd unix                                                                
./configure --prefix=/tools                                            

パッケージを構築します。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートがあります。しかし、この章の Tcl テストスイートは、あ
る種の状態のホストシステム上では失敗することが知られていますが、その条
件はまだよく分かっていません。ですから、ここでのテストの失敗は驚くこと
ではなく、また致命的ではありません。テストをすることにした場合は、以下
のコマンドで実行可能です。

TZ=UTC make test                                                       

make パラメーターの意味

 ・ TZ=UTC: これはタイムゾーンをテストスイートを実行している間だけ、グ
    リニッジ標準時刻として知られる世界標準時刻にセットします。これはク
    ロックテストが正しく行なわれるようにします。TZ 環境変数についてのよ
    り詳しい情報はあとの第 7 章で利用できます。
   
テストスイートパッケージはときどき間違いを起こします。 http://
wiki.linuxfromscratch.org/ にある LFS Wiki を調べて、これらの失敗が正常
であるか確認ができます。これは本書のすべてのテストに使えます。

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

make install                                                           

    Important: まだ tcl8.4.4 のソースディレクトリを削除しないで下さい。
    次のパッケージがその内部ヘッダを使用します。
   
必要なシンボリックリンクを作ります。

ln -s tclsh8.4 /tools/bin/tclsh                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect-5.39.0 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  3.9 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect の内容

Expect パッケージは他の対話形式プログラムとプログラムされた問答を行なう
プログラムを提供します。

インストールされるプログラム: expect

インストールされるライブラリ: libexpect5.39.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect インストール依存性

Expect は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed, Tcl.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect のインストール

初めにパッチをあてます。

patch -Np1 -i ../expect-5.39.0-spawn.patch                             

このパッチは、GCC テストスイートを実行した際に意味のない失敗が起きてし
まう Expect のバグを修正します。

コンパイルのために Expect を準備します。

./configure --prefix=/tools --with-tcl=/tools/lib --with-x=no          

コンフィグのオプションの意味

 ・ --with-tcl=/tools/lib: このオプションは、設定スクリプトが暫定的なツ
    ールの置き場所の中から Tcl を探すようにします。ホストシステム上にあ
    るかもしれない Tcl を探させたくはないわけです。
   
 ・ --with-x=no: このオプションは、設定スクリプトに Tk ( Tcl GUI コン
    ポーネント)や X ウィンドウシステムのライブラリを検索しないように伝
    えます。これらふたつのものはホストシステムにも存在するかもしれませ
    ん。
   
パッケージを構築します。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートがあります。しかし、この章の Expect テストスイートは
、まだ条件がはっきりしていませんが、ある特定の状態のホストシステム上で
は失敗することが分かっています。ですから、ここでのテストの失敗は驚くこ
とではなく、また致命的ではありません。テストをすることにした場合は、以
下のコマンドで実行可能です。

make test                                                              

それではインストールします。

make SCRIPTS="" install                                                

make パラメーターの意味

 ・ SCRIPTS="": このオプションは、必要でない付録についているスクリプト
    のインストールを行わないようにします。
   
ここで Tcl と Expect の二つのソースディレクトリを削除できます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu-1.4.3 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  8.6 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu の内容

DejaGnu パッケージは他のプログラムをテストするためのフレームワークを含
みます。

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu インストール依存性

Dejagnu は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu のインストール

コンパイルのためにDejaGnuを準備しましょう。

./configure --prefix=/tools                                            

パッケージを構築してインストールしましょう。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC-3.3.1 のインストール

推定構築時間:           11.0 SBU                                       
推定必要ディススペース  274 MB                                         

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC の再インストール

これでGCC と Binutils をテストするのに必要なツール( Tcl, Expect 及び
DejaGnu )がインストールされました。 GCC と Binutils の再インストール、
それらの新しい Glibc へのリンク、そして、それらをきちんとテストすること
が続けられます。しかし一つ注意することは、これらのテストスイートはホス
トシステムから提供される正しく機能する擬似ターミナル( PTYs )に強く依
存します。最近では一般的に PTYs は devpts ファイルシステムによって提供
されています。この点でお使いのホストシステムが正しく設定されているかど
うか、簡単なテストを行なうことですぐにチェックすることができます。

expect -c "spawn ls"                                                   

もしも

    The system has no more ptys.  Ask your system administrator to create more.
   
というメッセージが出るなら、お使いのホストディストリビューションは適切
な PTY 運用について設定されていません。この場合は、問題を解決できるよう
になるまで GCC と Binutils へのテストは意味がありません。 PTYs をどうや
って動かすようにするかについての情報は http://wiki.linuxfromscratch.org
/ の LFS Wiki で調べることができます。

三つの GCC tarball (-core, -g++ 及び -testsuite) を全て一つの同じ作業デ
ィレクトリに解凍します。それらは全て一つの gcc-3.3.1/ サブディレクトリ
に展開されます。

初めに一つの問題を正し、それから極めて重要な調整をします。

patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch                      
patch -Np1 -i ../gcc-3.3.1-specs-2.patch                               

最初のパッチは GCC "fixincludes" スクリプトを無効にします。先に述べまし
たが、ここでは fixincludes の過程についてのもう少し立ち入った説明をする
のが当然でしょう。普通、GCC fixincludes スクリプトは修正しなくてはいけ
ないヘッダーファイルについて、お使いのホストシステムを調べます。お使い
のホストシステムで修正されなければいけない Glibc のヘッダーファイルを見
つけると、それらを修正し、そして GCC 用のインクルードディレクトリに置き
ます。それから、後ほど第 6 章で新しい Glibc をインストールしたあと、こ
のインクルードディレクトリはシステムインクルードディレクトリよりも前に
調べられます。 GCC がホストシステムからの修正されたヘッダを探すことにな
り、LFS システムで実際に使われる Glibc のバージョンに間違いなく適合しな
いものになるでしょう。

最後のパッチは GCC の動的リンカ(通常 ld-linux.so.2 )のデフォルトの場
所を変更します。これはまた GCC の include 検索パスから /usr/include を
取り除きます。インストールのあとにスペックファイルを調整するよりも、今
パッチを当てることは、新しい動的リンカが GCC の実際の構築の間に使われる
ことを保証します。すなわち、構築の間に作成されたすべての最終的な(およ
び暫定的な)バイナリ類が新しい Glibc に対してリンクされることになります
。

    Important: これらのパッチは構築全体がうまく行くようにするため、とて
    も重要です。パッチをあてるのを忘れないで下さい。
   
再び別の構築ディレクトリを作ります。

mkdir ../gcc-build                                                     
cd ../gcc-build                                                        

GCC の構築を始める前に、デフォルトの最適化フラグを書きかえるすべての環
境変数を外すことを思いだしてください。

それではコンパイルのために GCC を準備します。

../gcc-3.3.1/configure --prefix=/tools \                               
    --with-local-prefix=/tools \                                       
    --enable-clocale=gnu --enable-shared \                             
    --enable-threads=posix --enable-__cxa_atexit \                     
    --enable-languages=c,c++                                           

新しい設定オプションの意味

 ・ --enable-threads=posix: このオプションはマルチスレッドコードのため
    の C++ 例外処理を有効にします。
   
 ・ --enable-__cxa_atexit: このオプションはローカルスタティックとグロー
    バルオブジェクトのデストラクタを登録するのに atexit ではなく
    __cxa_atexit を使うようにさせ、完全に標準準拠の処理とするのにとても
    重要です。これはまた、C++ ABI にも影響し、その結果 C++ 共有ライブラ
    リと C++ プログラムは他の Linux ディストリビューション間で共通に利
    用できるようになります。
   
 ・ --enable-clocale=gnu: このオプションはあらゆる状況下に置いて C++ ラ
    イブラリへの正しいロケールモデルが選ばれるようにします。設定スクリ
    プトがインストールされた de_DE ロケールを見つけると、gnu の正しいモ
    デルを選択します。しかし、de_DE ロケールをインストールしない人たち
    は、間違って generic ロケールモデルが選択されるために、ABI 互換性の
    ない C++ ライブラリを構築する危険を冒すことになります。
   
 ・ --enable-languages=c,c++: このオプションは C 及び C++ の両方の構築
    を確実にするのに必要です。
   
パッケージをコンパイルします。

make                                                                   

この GCC をコンパイルするのに使っているコンパイラは、以前使った GCC の
ソースと全く同じバージョンのものから構築されたので、ブートストラップタ
ーゲットを今使う必要はありません。

    Note: GCC テストスイートをここで実行するのは第 6 章で実行することほ
    ど重要ではないと考えられることを指摘しておきます。
   
結果をテストします。

make -k check                                                          

-k フラグは、テストスイートを最初の失敗で停止しないで最後まで実行するた
めに使われます。 GCC テストスイートはとても包括的なものなので、いくつか
の失敗がつきものです。テストスイートの大まかな結果のを知るために、この
コマンドを実行します。

../gcc-3.3.1/contrib/test_summary | more                               

あなたの同じような設定について、gcc-testresults メーリングリストに投稿
されたものと自分の結果を比較できます。現在の GCC-3.3.1 が
i686-pc-linux-gnu をどのように見るかという事の例は、http://gcc.gnu.org/
ml/gcc-testresults/2003-08/msg01612.html を見て下さい。

この結果は以下のものを含んでいることを記しておきます。

* 1 XPASS (unexpected pass) for g++                                    
* 1 FAIL (unexpected failure) for g++                                  
* 2 FAIL for gcc                                                       
* 26 XPASS's for libstdc++                                             

g++ で出ている unexpected pass は --enable-__cxa_atexit を使ったからで
す。明らかに、GCC によってサポートされる全てのプラットフォームがその C
ライブラリで "__cxa_atexit" をサポートをしているわけではないので、この
テストはいつも成功するわけではありません。

libstdc++ で出ている 26 の unexpected pass は --enable-clocale=gnu の使
用によるもので、これはバージョン 2.2.5 以上の Glibc ベースのシステムで
は正しい選択です。 GNU C ライブラリでの基本的なロケールのサポートは、そ
の他の場合に選ばれる "generic" モデル(これらは例えば Newlibc や
Sun-libc, 何とかlibc を使っているとしたら当てはまるかも知れません)より
も優先します。 libstdc++ テストスイートは "generic" モデルを期待してい
るようなので、そのためこれらのテストがいつも成功するわけではありません
。

unexpected failuers はしばしば避けられません。GCC の開発者達は普段それ
らに気がついていますが、まだ修正するに至っていません。手短に言うと、結
果が上の URL にあるものから大きく異なっていない限り、続けても安全です。

それでは最後にパッケージをインストールします。

make install                                                           

    Note: この時点で、この章の初めの方で行なった完成度テストを繰り返す
    ことを強く勧めます。 the Section called Glibc の"閉じ込め"の節を再
    び参照し、チェックを繰り返します。もし結果が悪ければ、上述した GCC
    Specs パッチをあてるのを忘れているというのが最もありそうな原因でし
    ょう。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils-2.14 のインストール

推定構築時間:           1.5 SBU                                        
推定必要ディスクスペース  108 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils の再インストール

再び別の構築ディレクトリを作ります。

mkdir ../binutils-build                                                
cd ../binutils-build                                                   

それではインストールのために Binutils を準備します。

../binutils-2.14/configure --prefix=/tools \                           
    --enable-shared --with-lib-path=/tools/lib                         

新しい設定オプションの意味

 ・ --with-lib-path=/tools/lib: これは設定スクリプトにデフォルトライブ
    ラリ検索パスを教えます。私達はライブラリ検索パスにホストシステムか
    らのライブラリディレクトリを含めて欲しくありません。
   
Binutils の構築を始める前に、デフォルトの最適化フラグを書き変えてしまう
環境変数をすべて外す事を思い出してください。

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

make                                                                   

    Note: ここで Binutils テストスイーツを実行することは第 6 章で実行す
    ることほど重要ではないと考えられることを指摘しておきます。
   
結果をテストします。(予期しない失敗があってはいけませんが、予期した失
敗は差し支えありません。)

make check                                                             

不運にも、以前の GCC パッケージにあったようなテスト結果のあらましを調べ
る簡単な方法はありません。しかし、ここで失敗が起きたら、簡単に見つかる
はずです。出力される結果は、次のようなものがあるでしょう。

    make[1]: *** [check-binutils] Error 2                              
   
次にパッケージをインストールします。

make install                                                           

それでは次の章での toolchain の再調整のために Binutils を準備します。

make -C ld clean                                                       
make -C ld LIB_PATH=/usr/lib:/lib                                      

┌──────────────────────────────────┐
│                              Warning                               │
├──────────────────────────────────┤
│この段階ではまだ Binutils の構築とソースのディレクトリを削除しないで│
│下さい。この章のもう少し先で、再び現状のまま必要となります。        │
└──────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk-3.1.3 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  17 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk の内容

Gawk はテキストファイルを操作するのに使われる awk の実装です。

インストールされるプログラム: awk (gawk へのリンク), gawk, gawk-3.1.3,
grcat, igawk, pgawk, pgawk-3.1.3 及び pwcat

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk インストール依存性

Gawk は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk のインストール

インストールのために Gawk を準備します。

./configure --prefix=/tools                                            

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストすることにした場合は、以下のコ
マンドで実行可能です。

make check                                                             

それではインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils-5.0 のインストール

推定構築時間:           0.9 SBU                                        
推定必要ディスクスペース  69 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils の内容

Coreutils パッケージは基本的なシェルユーティリティの一揃い全部を含みま
す。

インストールされるプログラム: basename, cat, 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, hostname, id, install, join, kill, link, ln, logname, ls,
md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk,
pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq,
sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac,
tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq,
unlink, uptime, users, vdir, wc, who, whoami 及び yes

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils インストール依存性

Coreutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils のインストール

コンパイルのために Coreutils を準備しましょう。

./configure --prefix=/tools                                            

パッケージをコンパイルしましょう。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make RUN_EXPENSIVE_TESTS=yes check                                     

make パラメータの意味

 ・ RUN_EXPENSIVE_TESTS=yes: このオプションはある種のプラットフォーム上
    で比較的時間がかかると考えられる 2, 3 の追加テストを行うようテスト
    スイートに伝えます。しかしながら、これらは一般的に Linux では問題と
    なりません。
   
それではパッケージをインストールしましょう。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2-1.0.2 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  2.5 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 の内容

Bzip2 は一般的に従来の gzip が行なうよりもよりよい圧縮を達成するブロッ
クソート型のファイルコンプレッサーです。

インストールされるプログラム: bunzip2 (link to bzip2), bzcat (bzip2 へ
のリンク), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2,
bzip2recover, bzless 及び bzmore

インストールされるライブラリ: libbz2.a, libbz2.so (libbz2.so.1.0 へのリ
ンク), libbz2.so.1.0 (libbz2.so.1.0.2へのリンク) 及び libbz2.so.1.0.2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 インストール依存性

Bzip2 は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 のインストール

Bzip2 は設定スクリプトを含みません。そのままコンパイルしてインストール
します。

make PREFIX=/tools install                                             

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip-1.3.5 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  2.6 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip の内容

Gzip パッケージは Kempel-Ziv コーディング( LZ77 )を使ってファイルを圧
縮したり解凍したりするプログラムを含みます。

インストールされるプログラム: gunzip (gzip へのリンク), gzexe, gzip,
uncompress (gunzip へのリンク), zcat (gzip へのリンク), zcmp, zdiff,
zegrep, zfgrep, zforce, zgrep, zless, zmore 及び znew

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip インストール依存性

Gzip は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip のインストール

コンパイルのために Gzip を準備しましょう。

./configure --prefix=/tools                                            

パッケージをコンパイルしましょう。

make                                                                   

それではインストールしましょう。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils-2.8.1 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  7.5 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils の内容

このパッケージからのプログラムは二つのファイルやディレクトリの違いを教
えてくれます。最も一般的な使いかたはソフトウェアパッチを作ることです。

インストールされるプログラム: cmp, diff, diff3 and sdiff

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils インストール依存性

Diffutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils のインストール

コンパイルのために Diffutils を準備しましょう。

./configure --prefix=/tools                                            

パッケージをコンパイルしましょう。

make                                                                   

それではインストールしましょう。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils-4.1.20 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  7.6 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils の内容

Findutils パッケージは、オンザフライ方式(実況的にディレクトリを再帰検
索して仕様に合ったファイルを表示する方式)とデータベースを通して検索す
る方式の両方のファイルを探すプログラムを含みます。

インストールされるプログラム: bigram, code, find, frcode, locate,
updatedb 及び xargs

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils インストール依存性

Findutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils のインストール

コンパイルのために Findutils を準備します。

./configure --prefix=/tools                                            

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストすることにした場合は、以下のコ
マンドで実行可能です。

make check                                                             

それではパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make-3.80 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  8.8 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make の内容

Make は巨大なプログラムのどの構成要素が再コンパイルされる必要があるのか
を自動的に決定し、それらを再コンパイルするためのコマンドを発行します。

インストールされるプログラム: make

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make インストール依存性

Make は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make のインストール

コンパイルのために Make を準備します。

./configure --prefix=/tools                                            

プログラムをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

それからパッケージとその文章も一緒にインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep-2.5.1 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  5.8 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep の内容

Grep は指定されたパターンに合ったラインをファイルから表示するのに使われ
るプログラムです。

インストールされるプログラム: egrep (grep へのリンク), fgrep (grep への
リンク) 及び grep

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep インストール依存性

Grep は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep のインストール

コンパイルのために Grep を準備します。

./configure --prefix=/tools \                                          
    --disable-perl-regexp --with-included-regex                        

コンフィグスクリプトの意味

 ・ --disable-perl-regexp: このオプションは、grep が、PCRE ライブラリが
    ホストに存在した場合にもそれにリンクしないようにします。このライブ
    ラリは chroot の環境に移行したあとは利用できないためです。
   
 ・ --with-included-regex: このオプションは、Grep がその内部正規表現コ
    ードを使うようにします。このオプションが無い場合、多少バグがあるこ
    とがわかっている Glibc からのコードを使います。
   
プログラムをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

それからパッケージとその文章も一緒にインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed-4.0.7 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  5.2 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed の内容

Sed はストリームエディターです。ストリームエディターは入力されるストリ
ーム(ファイルまたはパイプラインからの入力)に対して基本的なテキスト変
換を行なうために使われます。

インストールされるプログラム: sed

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed インストール依存性

Sed は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed のインストール

コンパイルのために Sed を準備します。

./configure --prefix=/tools                                            

プログラムをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

それからパッケージとその文章も一緒にインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext-0.12.1 のインストール

推定構築時間:           7.2 SBU                                        
推定必要ディスクスペース  55 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext の内容

Gettext パッケージは国際化と地域化の為に使われます。プログラムは、ユー
ザーの母国語でメッセージを出すことを可能にする母国語サポート( NLS )で
コンパイルされることができます。

インストールされるプログラム: autopoint, config.charset, config.rpath,
gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm,
msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge,
msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget,
user-email 及び xgettext

インストールされるライブラリ: libasprintf[a,so], libgettextlib[a,so],
libgettextpo[a,so] 及び libgettextsrc[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext インストール依存性

Gettext は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext のインストール

コンパイルのために Gettext を準備します。

./configure --prefix=/tools                                            

プログラムをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートがあります。しかし、この章の Gettext テストスイートは
、たとえば、ホストに Java コンパイラを見つた場合など、ある種のホストの
状況ではうまくいかないことがわかっています。Gettext のテストスイートは
時間がかかり、致命的なものだとは思えません。ですから、ここではテストス
イートをお勧めしません。テストをすることにした場合は、以下のコマンドで
実行可能です。

make check                                                             

それではパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses-5.3 のインストール

推定構築時間:           0.7 SBU                                        
推定必要ディスクスペース  26 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses の内容

Ncurses パッケージはキャラクターと端末を扱う、パネルとメニューを含むラ
イブラリを提供します。

インストールされるプログラム: captoinfo (tic へのリンク), clear,
infocmp, infotocap (tic へのリンク), reset (tset へのリンク), tack,
tic, toe, tput 及び tset

インストールされるライブラリ: libcurses.[a,so] (libncurses.[a,so] への
リンク), libform.[a,so], libmenu.[a,so], libncurses++.a, libncurses.
[a,so], libpanel.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses インストール依存性

Ncurses は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses のインストール

二つのちょっとした事を修正します。

patch -Np1 -i ../ncurses-5.3-etip-2.patch                              
patch -Np1 -i ../ncurses-5.3-vsscanf.patch                             

一つ目のパッチは etip.h ヘッダファイルを正し、二つ目のパッチは好ましく
ないヘッダの使用に対して出されるいくつかのコンパイラの警告を妨げます。

さてそれではコンパイルのために Ncurses を準備します。

./configure --prefix=/tools --with-shared \                            
    --without-debug --without-ada --enable-overwrite                   

コンフィグオプションの意味

 ・ --without-ada: このオプションは、たとえホストに Ada コンパイラがイ
    ンストールされていても、Ada バインディングを構築しないよう Ncurses
    に伝えます。 chroot 環境では Ada はもはや利用できなくなるので、これ
    を行わなければいけません。
   
 ・ --enable-overwrite: これは他のパッケージが Ncurses ヘッダをうまく見
    つけられるように、Ncurses にそのヘッダファイルを /tools/include/
    ncurses ではなく /tools/include へインストールすることを伝えます。
   
プログラムとライブラリをコンパイルします。

make                                                                   

それからパッケージとその文章をインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch-2.5.4 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  1.9 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch の内容

Patch プログラムはパッチファイルに従ってファイルを修正します。パッチフ
ァイルは普通 diff プログラムによって作られたリストで、それは元々のファ
イルがどのように修正されることを必要とするかを含んでいます。

インストールされるプログラム: patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch インストール依存性

Patch は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch のインストール

コンパイルのために Patch を準備します。

CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/tools                     

プリプロセッサーフラグ -D_GNU_SOURCE は PowerPC プラットフォームでのみ
必要とされます。その他のアーキテクチャでは取り除いて構いません。

プログラムをコンパイルします。

make                                                                   

それからパッケージとその文章をインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar-1.13.25 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  10 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar の内容

Tar は、tar ファイルとして知られるアーカイブファイルへファイルを保管し
、そこから取りだすように設計されたアーカイブプログラムです。

インストールされるプログラム: rmt and tar

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar インストール依存性

Tar は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar のインストール

コンパイルのために Tar を準備します。

./configure --prefix=/tools                                            

プログラムをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

それからパッケージとその文章をインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo-4.6 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  16 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo の内容

Texinfo パッケージは、システムの公式文章を提供する Info ドキュメントを
読み、書き、変換するために使われるプログラムを含みます。

インストールされるプログラム: info, infokey, install-info, makeinfo,
texi2dvi 及び texindex

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo インストール依存性

Texinfo は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo のインストール

コンパイルのために Texinfo を準備します。

./configure --prefix=/tools                                            

プログラムをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

それからパッケージとその文章をインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash-2.05b のインストール

推定構築時間:           1.2 SBU                                        
推定必要ディスクスペース  27 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash の内容

Bash は Bourne-Again シェルという、UNIX システムで広く使われているコマ
ンドインタープリターです。Bash プログラムは標準入力(キーボード)からの
入力を読み込みます。ユーザーが何かをタイプするとプログラムは何がタイプ
されたかを評価し、それについてプラグラムの実行のような事を行ないます。

インストールされるプログラム: bash, sh (link to bash) andbashbug

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash インストール依存性

Bash は以下のパッケージに依存します: Binutils, Coreutils, Diffutils,
Gawk,GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash のインストール

Bash はいくつか既知のバグがあります。以下のパッチでこれらを修正しましょ
う。

patch -Np1 -i ../bash-2.05b-2.patch                                    

それではコンパイルのために Bash を準備しましょう。

./configure --prefix=/tools                                            

プログラムをコンパイルしましょう。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make tests                                                             

パッケージとその文章をインストールします。

make install                                                           

そして sh をシェルとして使うプログラムのためにリンクを作りましょう。

ln -s bash /tools/bin/sh                                               

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux-2.12 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  8 MB                                         

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux の内容

Util-linux パッケージは種々雑多なものからなる数多くのユーティリティプロ
グラムを含みます。より重要なユーティリティのいくつかはマウントやアンマ
ウント、フォーマット、パーティション及びディスクドライブの管理、tty ポ
ートのオープンやカーネルメッセージの取得に使われます。

インストールされるプログラム: agetty, arch, blockdev, cal, cfdisk,
chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate,
dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt,
hexdump, hwclock, ipcrm, ipcs, isosize, kill, line, logger, look,
losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize
(rdev へのリンク), raw, rdev, readprofile, rename, renice, rev,
rootflags (rdev へのリンク), script, setfdprm, setsid, setterm, sfdisk,
swapoff (swapon へのリンク), swapon, test.bash, test.tcsh, tunelp, ul,
umount, vidmode (rdev へのリンク), whereis 及び write

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux インストール依存性

Util-linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux のインストール

Util-linux は /tool ディレクトリにあるインストールされたばかりのヘッダ
とライブラリを使いません。これはコンフィグスクリプトを変更すると修正さ
れます。

cp configure configure.backup                                          
sed "s@/usr/include@/tools/include@g" configure.backup > configure     

コンパイルのために Util-linux を準備します。

./configure                                                            

いくつかのサポートルーチンをコンパイルします。

make -C lib                                                            

そして、このパッケージに含まれる内の二つのユーティリティだけが必要とな
るので、そのように構築します。

make -C mount  mount umount                                            
make -C text-utils  more                                               

それではこれらのプログラムを暫定ツールのディレクトリにコピーします。

cp mount/{,u}mount text-utils/more /tools/bin                          

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl-5.8.0 のインストール

推定構築時間:           0.8 SBU                                        
推定必要ディスクスペース  74 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl の内容

Perl パッケージは perl, the Practical Extraction and Report Language を
含みます。Perl は C や sed, awk 及び sh の最も良い特徴のいくつかを一つ
に統合した強力な言語です。

インストールされるプログラム: a2p, c2ph, dprofpp, enc2xs, find2perl,
h2ph, h2xs, libnetcfg, perl, perl5.8.0 (perl へのリンク), perlbug,
perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man,
pod2text, pod2usage, podchecker, podselect, psed (s2p へのリンク),
pstruct (c2ph へのリンク), s2p, splain and xsubpp

インストールされるライブラリ: (too many to name)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl インストール依存性

Perl は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl のインストール

初めにいくつかの組込みパスを C ライブラリに合わせます。

patch -Np1 -i ../perl-5.8.0-libc-3.patch                               

そしていくつかの静的機能拡張が構築されるのを確認します。

chmod u+w hints/linux.sh                                               
echo 'static_ext="IO re Fcntl"' >> hints/linux.sh                      

それではコンパイルのために Perl を準備します。

./configure.gnu --prefix=/tools                                        

必要なツールのみをコンパイルします。

make perl utilities                                                    

それからこれらのツールとそのライブラリをコピーします。

cp perl pod/pod2man /tools/bin                                         
mkdir -p /tools/lib/perl5/5.8.0                                        
cp -R lib/* /tools/lib/perl5/5.8.0                                     

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

不必要なものを取り除く

この節での行程は任意選択です。LFS パーティションがとても小さければ、不
必要なものをいくらかでも捨てれるようになるのはよいことです。今までに構
築した実行ファイルとライブラリは約 130 MB の不必要なデバッグシンボルを
含んでいます。これらのシンボルを次のようにして取り除きましょう。

strip --strip-unneeded /tools/{,s}bin/*                                
strip --strip-debug /tools/lib/*                                       

上のコマンドの一つ目は、ファイルフォーマットが認識できないと報告して 20
ほどのファイルを飛ばします。それらのほとんどはバイナリではなくスクリプ
トです。

--strip-unneeded をライブラリに使わないように気をつけて下さい。破壊され
て Glibc をすべて再び構築し直さなければならなくなります。

さらに数メガバイトを節約するには、すべての文章を捨てることもできます。

rm -rf /tools/{,share/}{doc,info,man}                                  

さて次の段階で Glibc を構築してインストールするためには、LFS ファイルシ
ステム上に少なくとも 850 MB の空き容量が必要となります。 Glibc を構築し
てインストールできたなら、残りのものもインストールできます。

III. 第三部ー LFSシステムの構築

Table of Contents
6. 基本的なシステムソフトウェアをインストールする
7. システムブートスクリプトを設定する
8. LFSシステムを起動できるようにする
9. 最後に

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 6. 基本的なシステムソフトウェアをインストールする

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

この章で構築場所に入り、本格的に LFS システムを組み立て始めます。つまり
、暫定的で小さな Linux システムに chroot で入り、いくつかの補助的なもの
を作り、それからすべてのパッケージを一つずつインストールし始めるという
ことです。

このソフトウェアすべてのインストールはとても簡単です。ですから、一般的
なインストールの説明を行って、それ以外の方法が必要になるパッケージにつ
いてだけ説明するようにすれば説明がずっと短くなると思われるかも知れませ
ん。それでもよいのですが、やはり間違いを犯す可能性を最小限にするため、
それぞれのパッケージについてきちんと説明します。

この章でコンパイラの最適化を使うつもりなら、最適化のヒントを http://
www.linuxfromscratch.org/hints/downloads/files/optimization.txt で調べ
て下さい。コンパイラの最適化はプログラムの実行速度を少し速めますが、し
かしまたコンパイルの障害や、プログラムを実行するときに問題を引き起こす
こともあります。パッケージ作成が最適化を使ったコンパイルで失敗してしま
ったら、最適化なしでコンパイルを試して、問題がなくなるかどうかを見て下
さい。たとえ最適化を使ってパッケージがコンパイルできたとしても、コード
と構築ツールの間の複雑な相互作用のため、不正確にコンパイルされてしまう
という危険があります。この危険は一般的に、コンパイラの最適化による小さ
な利益よりも重く見られます。 LFS を初めて構築する場合は最適化オプション
なしで構築することを強くお勧めします。お使いのシステムはそれでもとても
速く、また同時に安定するでしょう。

この章でパッケージがインストールされる順番は厳密に守られる必要がありま
す。これはどのプログラムも /tools を参照するパスをその中に組み込まない
ようにするためです。同じ理由からパッケージを並行してコンパイルしないで
ください。並行したコンパイルは、特にデュアル CPU のマシンでは時間を節約
できるかもしれませんが、プログラムが /tools へのパスを組み込んでしまう
結果を招き、そのディレクトリが削除されたときに、プログラムが動作を止め
てしまう原因となります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

デバッグシンボルについて

ほとんどのプログラムとライブラリは、デフォルトではデバッグシンボルを含
んだ状態で( gcc オプション -g )コンパイルされます。

デバッグ情報を含んでコンパイルされたプログラムやライブラリをデバッグす
るとき、デバッガはメモリアドレスだけでなく、ルーチンや変数の名前も表示
します。

しかしこれらのデバッグシンボルを含めることはプログラムやライブラリのサ
イズを著しく大きくします。これらのシンボルが占める量を知るために次を見
て下さい。

 ・ デバッグシンボルを含む bash バイナリ: 1200KB
   
 ・ デバッグシンボルを含まない bash バイナリ: 480KB
   
 ・ デバッグシンボルを含む Glibc 及び GCC ファイル( /lib 及び /usr/lib
    ) : 87MB
   
 ・ デバッグシンボルを含まない Glibc 及び GCC ファイル( /lib 及び /usr
    /lib ) : 16MB
   
これらのサイズは、どのコンパイラやどのライブラリが使われかたによって少
し変わるかも知れません。しかしデバッグシンボルを含むプログラムと含まな
いものを比べると、その違いは一般的に 2 倍から 5 倍になります。

恐らくほとんどの人はシステムソフトにデバッガを使うことは無いでしょうか
ら、これらのシンボルを削除することで大量のディスクスペースを取り戻せま
す。

バイナリ(a.out か ELF バイナリでなければいけません)からデバッグシンボ
ルを削除する、strip --strip-debug ファイル名を実行します。多くのファイ
ルを扱うためにワイルドカード( strip --strip-debug $LFS/tools/bin/* と
いったように)が使えます。

便宜的に、第 9 章に、お使いのシステムにあるすべてのプログラムとライブラ
リから、すべてのデバッグシンボルを削除する簡単なコマンドを掲載していま
す。最適化に関する追加情報は http://www.linuxfromscratch.org/hints/
downloads/files/optimization.txt にあるヒントの中にあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

chroot 環境へ入る

必要とするパッケージをインストールする前に、chroot 環境へ入る時が来まし
た。しかし、chroot コマンドを実行できるのは root だけなので、chroot を
実行する前に root になる必要があります。

以前やったように、echo $LFS を実行して、LFS 環境変数が正しく設定されて
いることを確かめましょう。例に従ったなら、/mnt/lfs となるような、お使い
の LFS パーティションのマウントポイントが表示されます。

root になって以下のコマンドを実行し chroot 環境へ移行しましょう。

chroot $LFS /tools/bin/env -i \                                        
    HOME=/root TERM=$TERM PS1='\u:\w\$ ' \                             
    PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \                    
    /tools/bin/bash --login                                            

env コマンドに与えられている -i オプションは chroot 環境から全ての変数
を取り除きます。その後で、HOME, TERM, PS1, PATH 変数だけが再び設定され
ます。TERM=$TERM という構成は chroot 環境の中の TERM 変数を chroot 環境
の外と同じ値に設定します。この変数は vim や less などのプログラムを正し
く操作するのに必要とされます。CFLAGS や CXXFLAGS のような他の変数が必要
なら、ここでそれらを再設定しましょう。

これから行なうことは全て LFS ファイルシステム内部に制限されているので、
これ以降 LFS 変数を使う必要はありません。シェルが / だと思うのは実際に
は chroot コマンドに渡された $LFS の値になります。

/tools/bin はパスの最後になることを注意しましょう。これは暫定ツールはそ
の最後のバージョンがインストールされるとすぐにもうそれ以降使われなくな
ることを意味します。というか、少なくともシェルが実行されたバイナリの位
置を思いださなくなる時にはそうなります。このため、ハッシングのスイッチ
を切るのはもう少し先です。

この章の残りの全てのコマンド、そして以降の章のコマンドが chroot 環境で
実行できることを確認しなければいけません。例えば再起動など、何かの理由
でこの環境から離れたら、インストールを続ける前に chroot に再び入り、
prov 及び devpts ファイルシステム(あとで説明します)をマウントしなけれ
ばならないことを思い出してください。

bash プロンプトが "I have no name!" と言ってくることに注意しましょう。
これは /etc/passwd ファイルがまだ作られていないので正常なことです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

所有権を変更する

さて今 /tools ディレクトリはホストシステムに存在する lfs というユーザに
所有権があります。 LFS システムを作り終えたら、恐らく /tools ディレクト
リを削除したいかもしれませんが、たとえば後程また別の LFS システムを構築
するために残しておいてもいいでしょう。 /tools ディレクトリをそのままに
残しておくと、対応したアカウントの無いユーザー ID によって所有されたフ
ァイルとなってしまいます。これは、後に作られたユーザーアカウントがこれ
と同じユーザー ID を得て、突然 /tools ディレクトリとそのなかにあるファ
イルを所有してしまうということによって、これらのファイルを悪意のある操
作にさらしてしまうので危険です。

この問題を避けるために、後ほど /etc/passwd ファイルを作ったときに、新し
い LFS システムにお使いのホストシステムにある同じユーザーとグループ ID
を持つように気をつけて lfs ユーザを加えることができます。あるいはまた、
以下のコマンドを実行することで、/tools ディレクトリの内容を root ユーザ
が所有するよう変更することができます。(本書ではこちらを想定します。)

chown -R 0:0 /tools                                                    

chown はパスワードファイルが作られるまで "root" という名前を解決できな
いので、このコマンドは "root:root" の代わりに "0:0" を使います。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ディレクトリを作成する

さてそれでは LFS システムにいくつかの構造を作ります。まずディレクトリツ
リーを作りましょう。次のようなコマンドを実行して、多かれ少かれ標準的な
ツリーを作ります。

mkdir -p /{bin,boot,dev/{pts,shm},etc/opt,home,lib,mnt,proc}           
mkdir -p /{root,sbin,tmp,usr/local,var,opt}                            
for dirname in /usr /usr/local                                         
    do                                                                 
    mkdir $dirname/{bin,etc,include,lib,sbin,share,src}                
    ln -s share/{man,doc,info} $dirname                                
    mkdir $dirname/share/{dict,doc,info,locale,man}                    
    mkdir $dirname/share/{nls,misc,terminfo,zoneinfo}                  
    mkdir $dirname/share/man/man{1,2,3,4,5,6,7,8}                      
done                                                                   
mkdir /var/{lock,log,mail,run,spool}                                   
mkdir -p /var/{tmp,opt,cache,lib/misc,local}                           
mkdir /opt/{bin,doc,include,info}                                      
mkdir -p /opt/{lib,man/man{1,2,3,4,5,6,7,8}}                           

ディレクトリはデフォルトの設定では許可属性のモード 775 で作られますが、
これはすべてのディレクトリに対しては望ましくありません。二つ変更をしま
す。一つは root のホームディレクトリで、もう一つは一時ファイルのための
ディレクトリです。

chmod 0750 /root                                                       
chmod 1777 /tmp /var/tmp                                               

一つ目のモード変更は、通常のユーザーがそのホームディレクトリにするのと
同じように、正確に誰も /root ディレクトリへ入れないようにします。二つ目
のモード変更はどのユーザーも /tmp と /var/tmp へ書き込めるようにします
が、他のユーザーのファイルを削除できなくします。後者はいわゆる "sticky
ビット" ー 1777 ビットマスクの最上位ビットーによって禁じられます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

FHS 準拠についての注意

ディレクトリツリーを FHS 標準( http://www.pathname.com/fhs/ で利用でき
ます)に準拠しました。上で作ったディレクトリツリーに加えて、この規格は
/usr/local/games と /usr/share/games の存在を規定していますが、基本的な
システムにはこれらはいりません。しかし、お使いのシステムを FHS 準拠にあ
わせるのはご自由にどうぞ。 /usr/local/share サブディレクトリの構造に関
して、FHS は厳密に規定していませんから、本書で必要だと思うディレクトリ
をここで作成しました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

prov と devpts ファイルシステムのマウント

いくつかのプログラムの機能が適切に働くように、proc と devpts ファイルシ
ステムが chroot 環境で利用できなければいけません。ファイルシステムは望
むだけ何回も、そして多くの場所にマウントされるので、これらのファイルシ
ステムがすでにホストシステムでマウントされていることは、特にこれらが仮
想ファイルシステムなこともあり、問題ではありません。

proc ファイルシステムとは、カーネルがシステムの状態についてのステータス
情報を提供するために使うプロセス情報仮想ファイルシステムです。

proc ファイルシステムは以下のコマンドを実行することで /proc にマウント
されます。

mount proc /proc -t proc                                               

恐らくマウントコマンドからこのような警告を受け取るでしょう。

    warning: can't open /etc/fstab: No such file or directory          
    not enough memory                                                  
   
このような警告は無視してください。これらはシステムが未だ完全にインスト
ールされておらず、いくつかのファイルが足りないという事実によるものです
。マウント自身は成功し、それがこの時点で必要な事のすべてです。

devpts ファイルシステムは以前に述べており、現在仮想ターミナル( PTYs )
が実装される最も一般的な方法です。

devpts ファイルシステムは以下のコマンドを実行することで /dev/pts にマウ
ントされます。

mount devpts /dev/pts -t devpts                                        

このコマンドは以下のエラー結果で失敗するかもしれません。

    filesystem devpts not supported by kernel                          
   
最もありそうな原因は、お使いのホストシステムのカーネルが devpts ファイ
ルシステムのサポートなしでコンパイルされたということです。どのファイル
システムがカーネルによってサポートされているかは、cat /proc/ファイルシ
ステムのようなコマンドで、その内部を見ることで調べることができます。 
devfs という名前のファイルシステムタイプがそこにリストされていたら、ホ
ストの devfs ファイルシステムを後の "デバイスの作成( Makedev )" の節
で作る新しい /dev 構造の一番上にマウントすることで問題をうまく解決する
ことができます。 devfs がリストされていなくても、まだ chroot 環境の中で
PTYs を得る三つ目の方法があるので安心してください。これは前述の Makedev
で手短に述べます。

何かの理由で LFS システム上での作業を中止し、その後で再開すると、これら
のファイルシステムがまだ chroot 環境でマウントされていることを確認する
のはとても重要だというのを忘れないでください。さもないと、問題が起こり
やすくなります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

必要なシンボリックリンクを作成する

いくつかのプログラムに組み込まれたプログラムへのパスはまだ存在しません
。これらのプログラムを満足させるために、この章を通してすべてのソフトウ
ェアを、インストールした際に実際のファイルで置き換えられる事になるいく
つかのシンボリックリンクを作ります。

ln -s /tools/bin/{bash,cat,pwd,stty} /bin                              
ln -s /tools/bin/perl /usr/bin                                         
ln -s /tools/lib/libgcc_s.so.1 /usr/lib                                
ln -s bash /bin/sh                                                     

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

passwd と group ファイルを作成する

root がログインでき、また "root" という名前が認識されるために、/etc/
passwd と /etc/group ファイルの中に適切な記載が必要です。

以下のコマンドを実行して /etc/passwd ファイルを作ります。

cat > /etc/passwd << "EOF"                                             
root:x:0:0:root:/root:/bin/bash                                        
EOF                                                                    

root の実際のパスワード(ここでの "x" はただの任意の文字(数字、記号)
です)はあとで設定されます。

以下のコマンドを実行して /etc/group ファイルを作ります。

cat > /etc/group << "EOF"                                              
root:x:0:                                                              
bin:x:1:                                                               
sys:x:2:                                                               
kmem:x:3:                                                              
tty:x:4:                                                               
tape:x:5:                                                              
daemon:x:6:                                                            
floppy:x:7:                                                            
disk:x:8:                                                              
lp:x:9:                                                                
dialout:x:10:                                                          
audio:x:11:                                                            
EOF                                                                    

作成したグループはどの規格の一部でもありません。これらは次の項で使う
MAKEDEV スクリプトのグループです。 "root" グループを別にして、LSB ( 
http://www.linuxbase.org )は GID 1 の "bin" グループだけを推奨します。
よくできたパッケージは GID 番号に依存せずグループの名前を使うので、その
他すべてのグループ名と GID はユーザーによって自由に決めることができます
。

最後に、chroot 環境に再ログインします。第 5 章で Glibc のすべてのパッケ
ージをインストールしたので、ユーザー名とグループ名の解決は /etc/passwd
と /etc/group ファイルが作られたあとすぐに動き始めます。これは "I have
no name!" というプロンプトが出ないようにします。

exec /tools/bin/bash --login +h                                        

+h 指示の使用について注意しましょう。これは bash にその内部パスハッシン
グを使わないように伝えます。この指示なしでは、bash は実行したバイナリへ
のパスを憶えようとします。新しくコンパイルされたバイナリをインストール
されたらすぐに使いたいので、この章の間はこの機能をオフにします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

デバイスの作成 (Makedev-1.7)

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  50 KB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

MAKEDEV の内容

MAKEDEV スクリプトは通常 /dev ディレクトリの中にある静的デバイスノード
を作ります。デバイスノードについての詳しい情報は Linux カーネルソースツ
リーの中の Documentation/devices.txt ファイルの中で見つけられるでしょう
。

インストールされるプログラム: MAKEDEV

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

MAKEDEV インストール依存性

Makedev は以下のパッケージに依存します: Bash, Coreutils.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

デバイスを作成する

MAKEDEV-1.7.bz2 ファイルはシェルスクリプトしか含んでいないので、解凍し
てもディレクトリを作りません。

MAKEDEV スクリプトをインストールします。

bzcat MAKEDEV-1.7.bz2 > /dev/MAKEDEV                                   
chmod 754 /dev/MAKEDEV                                                 

デバイスファイルを作るためにスクリプトを実行します。

cd /dev                                                                
./MAKEDEV -v generic-nopty                                             

引数の意味

 ・ -v: これは verbose モードで実行するようスクリプトに伝えます。
   
 ・ generic-nopty: これは MAKEDEV に ptyXX と ttyXX を除いた一般的に使
    われるデバイススペシャルファイルを作るように指示します。私達は 
    devpts ファイルシステムを通じて Unix98 PTYs を使うつもりなので、こ
    れらのファイルは必要ありません。
   
必要とする何かのスペシャルデバイス zzz がないのがわかったら、./MAKEDEV
-v zzz を実行してみて下さい。あるいは、mknod プログラムで作っても構いま
せん。もしもっと情報が必要であれば、それらの man と info ページを参照し
て下さい。

さらに、以前の "proc 及び devpts ファイルシステムのマウント" の節で
devpts ファイルシステムをマウントできなかったら、今が代案を試すときです
。カーネルが devfs システムをサポートしているのなら、devfs をマウントす
るために以下のコマンドを実行して下さい。

mount -t devfs devfs /dev                                              

これは新しい静的 /dev 構造の一番上に devfs ファイルシステムをマウントし
ます。これは何も問題を引き起こさず、作成されたデバイスノードがまだ存在
するので、これらはただ新しい devfs ファイルシステムによって隠されるだけ
です。

これがまだ動かないなら、残された選択肢はその他では必要とされない ptyXX
と ttyXX 系列ファイルを作るために MAKEDEV スクリプトを使うことです。 /
dev ディレクトリにいるのを確認し、それから ./MAKEDEV -v pty を実行しま
しょう。これの良くないところは、最終的に完成した LFS システムを起動した
ときに必要のない 512 のスペシャルデバイスファイルを作ることです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux-2.4.22 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  186 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux の内容

Linux カーネルは全ての Linux システムの中心です。これは Linux を動かし
ているものです。コンピュータの電源が付けられ Linux システムがブートする
時、真っ先にロードされる Linux ソフトウェアの一つがカーネルです。カーネ
ルはシステムのハードウェア構成、シリアルポート、パラレルポート、サウン
ドカード、ネットワークカード、IDE コントローラー、SCSI コントローラやそ
の他にも多くの物をを初期化します。簡単に言えばつまり、カーネルはソフト
ウェアが実行できるようにハードウェアを準備します。

インストールされるプログラム: the kernel 及び the kernel headers

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux インストール依存性

Linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

カーネルヘッダのインストール

まだ新しいカーネルをコンパイルしませんーこれは全てのパッケージのインス
トールが終ったあとにします。しかしカーネルヘッダを必要とするパッケージ
もあるので、今カーネルアーカイブを解凍し、設定をして、それらのパッケー
ジによって見つけられるようにヘッダファイルをコピーします。

カーネルソースディレクトリの中にあるファイルが root によって所有されて
いないことに注意するのは重要です。 root ユーザとしてパッケージを解凍す
るとき(ここ chroot 環境の中でするように)にはいつでも、パッケージャの
コンピュータ上にあったときのユーザーとグループ ID が何であれ、ファイル
はその ID を持つことになります。これは、インストールのあとでソースツリ
ーを削除するので、通常インストールする他のパッケージの問題とはなりませ
ん。しかし Linux カーネルソースツリーはたびたびかなり長い間残しておかれ
るので、パッケージャが使っていたユーザ ID が何であれお使いのマシンの誰
かに割り当てられる可能性があり、その人がカーネルソースへ書き込みをする
かもしれません。

この事を考慮して、すべてのファイルが root ユーザーによって所有されるよ
うに chown -R 0:0 を linux-2.4.22 ディレクトリに対して実行するといいか
もしれません。

ヘッダをインストールする準備をします。

make mrproper                                                          

これはカーネルツリーが完全にクリーンにします。カーネルチームはこのコマ
ンドがそれぞれのカーネルのコンパイルに先立ち実行されるよう勧めています
。解凍したあとのソースツリーがクリーンであると当てにしてはいけません。

include/linux/version.h を作ります。

make include/linux/version.h                                           

プラットフォーム固有の include/asm シンボリックリンクを作成します。

make symlinks                                                          

プラットフォーム固有のヘッダーファイルをインストールします。

cp -HR include/asm /usr/include                                        
cp -R include/asm-generic /usr/include                                 

クロスプラットフォームカーネルヘッダをインストールします。

cp -R include/linux /usr/include                                       

autoconf.h ヘッダファイルを使ういくつかのカーネルヘッダファイルがありま
す。まだカーネルを最適化していないので、コンパイルが失敗することを避け
るためにこのファイルを自分で作る必要があります。空の autoconf.h ファイ
ルを作ります。

touch /usr/include/linux/autoconf.h                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

カーネルヘッダをコピーし、それらのシンボリックリンクを作らない理由

これまで、/usr/include/{linux,asm} ディレクトリを /usr/src/linux/
include/{linux,asm} へシンボリックリンクすることは一般的な習慣でした。
以下に載せる Linux Torvalds によって Linux Kernel メーリングリストに投
函された指摘からの引用にあるように、これは悪い習慣でした。

新しいカーネルをコンパイルする人々への提案。                                      
                                                                                  
見えるところに一つのシンボリックリンク(カーネルの構築それ自身が設定する、つまり  
カーネルコンパイル自身の内部でのみ使われる "linux/include/asm" シンボリックリン   
クを除く)を持つべきではありません。                                              
                                                                                  
そしてそう、これはまさに私がやることです。私の /usr/src/linux は、たとえ私が長い  
こと 2.2.13 カーネルヘッダを使っていなくてもまだ古い 2.2.13 ヘッダファイルを持っ  
ています。しかしこれらのヘッダは Glibc がそれに対してコンパイルされたもので、それ 
ゆえこれらのヘッダはライブラリのオブジェクトファイルに整合します。                
                                                                                  
そしてこれは少なくともここ 5 年間示唆されて来た環境です。私は何故シンボリックリ   
ンクの問題が腐ったゾンビの様にまだ生きているのかわかりません。全てのディストリビ  
ューションの非常に多くがまだその壊れたシンボリックリンクを持っていて、人々はまだ  
、例えそれが正しくなくても linux ソースが "/usr/src/linux" の中に入っているべきだ 
ということを憶えています。                                                        

極めて重要な部分は、 Linus がヘッダファイルは Glibc がそれに対してコン
パイルされたものであるべきだと述べている所です。これらのヘッダはオブジ
ェクトコードのライブラリファイルに整合するので、あとで他のパッケージを
コンパイルするときに使われるべきものです。ヘッダをコピーすることによっ
て、あとでカーネルをアップグレードしてもそれらがまだ利用できるようにし
ます。

ところで、/usr/include/{linux,asm} へのシンボリックリンクを持たない限り
は、/usr/src/linux にカーネルソースを置くことは完壁に申し分ないことを注
意しておきます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages-1.60 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  15 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages の内容

Man-pages パッケージは 1200 ページ以上のマニュアルページを含んでいます
。この公式文章は C と C++ の関数について詳しく述べ、いくつかの重要なデ
バイスファイルを説明し、他のパッケージに欠けている文章を提供します。

インストールされるプログラム: 様々なマニュアルページ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages インストール依存性

Man-pages は以下のパッケージに依存します: Bash, Coreutils, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages のインストール

以下のコマンドを実行して Man-pages をインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc-2.3.2 のインストール

推定構築時間:           12.3 SBU                                       
推定必要ディスクスペース  784 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc の内容

Glibc は open, malloc, printf, 等といったシステムコールや基本的な関数を
提供するライブラリです。この C ライブラリは動的リンクされた全てのプログ
ラムに使われます。

インストールされるプログラム: catchsegv, gencat, getconf, getent,
glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown,
rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump 及び zic

インストールされるライブラリ: ld.so, libBrokenLocale.[a,so],
libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a,
libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so,
libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so,
libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.
[a,so], librpcsvc.a, librt.[a,so], libthread_db.so 及び libutil.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc インストール依存性

Glibc は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc のインストール

Glibc 構築システムは非常に独立的で、たとえコンパイラスペックファイルと
リンカがまだ /tools を指していたとしても、完壁にインストールされます。
Glibc をインストールする前にスペックファイルとリンカを調整すると、Glibc
autoconf テストが偽の結果を与え、それゆえクリーンな構築を行うという目的
を駄目にしてしまうので、インストールの前にこの二つを調整することができ
ません。

    Note: この章の Glibc へのテストスイーツは必須だと考えています。どん
    な状況下でもテストを飛ばしてしまわないように注意しておきます。
   
Glibc の構築を始める前に、再度 Glibc-linuxthreads を glibc-2.3.2 という
ディレクトリの中に解凍することを思い出してください。そして、デフォルト
の最適化フラグを上書きするあらゆる環境変数を外しましょう。

害のないメッセージですが、Glibc のインストール段階で /etc/ld.so.conf が
ないのに不平を言うでしょう。この煩わしいささいな警告を修正しておきます
。

touch /etc/ld.so.conf                                                  

それから以前使ったものと同じパッチをあてます。

patch -Np1 -i ../glibc-2.3.2-sscanf-1.patch                            

Glibc 文書は、ソースディレクトリとは別の構築専用ディレクトリでコンパイ
ルするよう勧めています。

mkdir ../glibc-build                                                   
cd ../glibc-build                                                      

それではコンパイルのために Glibc を準備します。

../glibc-2.3.2/configure --prefix=/usr \                               
    --disable-profile --enable-add-ons \                               
    --libexecdir=/usr/bin --with-headers=/usr/include                  

新しいコンフィグオプションの意味

 ・ --libexecdir=/usr/bin: これは pt_chown プログラムを /usr/bin ディレ
    クトリにインストールするようにします。
   
 ・ --with-headers=/usr/include: これは /usr/include の中のカーネルヘッ
    ダがこの構築で使われるようにします。このスイッチを渡さなければ、も
    ちろん理想的でないことに(これらは同一であるはずですが) /tools/
    include にあるヘッダが使われます。このスイッチを使うと、カーネルヘ
    ッダを /usr/include にインストールし忘れているなら、すぐに通知され
    るという利点を持ちます。
   
パッケージをコンパイルします。

make                                                                   

結果をテストします。

make check                                                             

the Section called Glibc-2.3.2 のインストール in Chapter 5という節から
のテストスイーツの注意書きはここでもまだとても役立ちます。万一何か疑問
を持ったらそこを参照して確かめて下さい。

それではパッケージをインストールします。

make install                                                           

違った言語に対応するシステムにするロケールは、上述のコマンドではインス
トールされません。次のコマンドを実行します。

make localedata/install-locales                                        

前のコマンドを実行する代わりに、必要とするか欲しいロケールだけをインス
トールすることができます。これは localedef コマンドで行います。これにつ
いての情報は glibc-2.3.2 ツリーの中の INSTALL ファイルの中にあります。
しかし、いくつかのロケールはこの先のパッケージのテストを正しく通すため
に必要です。以下の説明では、上の install-locales コマンドの代わりに、テ
ストを行うのにに必要な最小のロケールセットをインストールします。

mkdir -p /usr/lib/locale                                               
localedef -i de_DE -f ISO-8859-1 de_DE                                 
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro                      
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 es_MX -f ISO-8859-1 es_MX                                 
localedef -i fr_FR -f ISO-8859-1 fr_FR                                 
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro                      
localedef -i it_IT -f ISO-8859-1 it_IT                                 
localedef -i ja_JP -f EUC-JP ja_JP                                     

最後に、linuxthreads man ページを構築します。

make -C ../glibc-2.3.2/linuxthreads/man                                

それからこれらのパッケージをインストールします。

make -C ../glibc-2.3.2/linuxthreads/man install                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc を設定する

/etc/nsswitch.conf というファイルを作成しなければいけません。なぜなら、
このファイルが無いか壊れていると Glibc はデフォルトの設定を提供しますが
、Glibc のデフォルトの設定はネットワークが正常に動きません。また、タイ
ムゾーンの設定もしなければいけません。

以下のコマンドを実行して新しい /etc/nsswitch.conf を作ります。

cat > /etc/nsswitch.conf << "EOF"                                      
# Begin /etc/nsswitch.conf                                             
                                                                       
passwd: files                                                          
group: files                                                           
shadow: files                                                          
                                                                       
publickey: files                                                       
                                                                       
hosts: files dns                                                       
networks: files                                                        
                                                                       
protocols: db files                                                    
services: db files                                                     
ethers: db files                                                       
rpc: db files                                                          
                                                                       
netgroup: db files                                                     
                                                                       
# End /etc/nsswitch.conf                                               
EOF                                                                    

どのタイムゾーンが何かを調べるために、以下のスクリプトを実行します。

tzselect                                                               

地域についてのいくつかの質問に答えると、このスクリプトは EST5EDT や 
Canada/Eastern のようなタイムゾーンの名前を出力します。それから以下のコ
マンドを実行して /etc/localtime ファイルを作ります。

cp --remove-destination /usr/share/zoneinfo/Canada/Eastern /etc/localtime 

オプションの意味

 ・ --remove-destination: これは既に存在するシンボリックリンクを強制的
    に削除するのに必要です。シンボリックリンクの代わりにコピーする理由
    は /usr が別のパーティションにある状況を扱うためです。これは、たと
    えばシングルユーザーモードでブートされたときに問題となります。
   
もちろん、Canada/Eastern の代わりに、tzselect スクリプトが与えたタイム
ゾーンの名前を記入しましょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

動的ローダーを設定する

デフォルトの設定で動的ローダー( /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                                                               
                                                                       
# End /etc/ld.so.conf                                                  
EOF                                                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Toolchain を再調整する

さて新しい C ライブラリがインストールされたので toolchain を再調整しま
す。新しくコンパイルされたプログラムは、すべて新しい C ライブラリに対し
てリンクされるよう調整します。基本的にこれは前の章の "閉じ込め" 段階で
やったことの逆です。

まず初めにリンカを調整します。このために Binutils の第 2 段階でソースと
構築ディレクトリを残しておきました。 binutils-build ディレクトリの中で
以下のコマンドを実行して、調整されたリンカをインストールします。

make -C ld INSTALL=/tools/bin/install install                          

    Note: もし何かの理由で、第 5 章の第 2 段階での Binutils のソースと
    構築ディレクトリを残しておくという以前の警告を見逃してしまったり、
    誤って消してしまったり、アクセスできなくなってしまっていたりしても
    心配はいりません。すべてがなくなってしまったわけではありません。上
    のコマンドを無視して下さい。これは次のパッケージである Binutils が
    /usr ではなく /tools にある Glibc ライブラリに対してリンクされると
    いう結果になります。これは理想的ではありませんが、テストでは結果と
    してできる Binutils プログラムのバイナリ類は同一になるはずだという
    ことをを示しています。
   
これからすべてのコンパイルされたプログラムが /usr/lib と /lib にあるラ
イブラリに対してのみリンクされます。第 2 段階で作られる Makefile は /
usr/bin/install への参照をまだ含んでいるので、INSTALL=/tools/bin/
install が別に必要とされます。あるホストディストリビューションは
Makefile に、優先する ginstall シンボリックリンクを持っているので、ここ
で問題を引き起こします。上のコマンドはこれもまた対処します。

これで、Binutils のソースと構築ディレクトリを削除することができます。

次に行うのは GCC スペックファイルが新しい動的リンカを示すように修正する
ことです。ちょうど以前にやったように、これを行うのに、sed を使います。

SPECFILE=/tools/lib/gcc-lib/*/*/specs &&                               
sed -e 's@ /tools/lib/ld-linux.so.2@ /lib/ld-linux.so.2@g' \           
    $SPECFILE > newspecfile &&                                         
mv -f newspecfile $SPECFILE &&                                         
unset SPECFILE                                                         

再度、上述のコマンドコマンドはカットアンドペーストがお勧めです。そして
以前のように、意図された変更が実際に行われたことを確認するため、スペッ
クファイルを調べるというのはよいことです。

    Important: 動的リンカの名前が ld-linux.so.2 とは何か異なるプラット
    フォーム上で作業をしているなら、上のコマンドでお使いのプラットフォ
    ームの動的リンカの名前を ld-linux.so.2 の代わりに用いましょう。必要
    ならばthe Section called Toolchain 技術情報 in Chapter 5という節を
    参照してください。
   
┌────────────────────────────────────┐
│                                Caution                                 │
├────────────────────────────────────┤
│この段階で、調整された toolchain の基本的な機能(コンパイルとリンク     │
│)が期待通り動いていることを確認するのは必須事項です。このための簡単    │
│な完成度チェックを行ないます。                                          │
│                                                                        │
│echo 'main(){}' > dummy.c                                               │
│gcc dummy.c                                                             │
│readelf -l a.out | grep ': /lib'                                        │
│                                                                        │
│すべてがうまく行っているのなら、エラーはないはずで、結果の出力は以下    │
│のようになるはずです。                                                  │
│                                                                        │
│    [Requesting program interpreter: /lib/ld-linux.so.2]                │
│                                                                        │
│上に示したような出力結果がでない、あるいは出力結果がない場合、何か重    │
│大な間違いがあります。どこに問題があるかを見つけだし、修正するために    │
│、これまでやったことを振り返ってみなければいけません。これが完了する    │
│までは続けても意味がありません。特に、今や /lib がお使いの動的リンカ    │
│のプリフィックスとなっていることに注意しましょう。もちろん、            │
│ld-linux.so.2 とは何か別の名前の動的リンカを使ったプラットフォーム上    │
│で作業しているなら、結果の出力は少し異なったものになるでしょう。        │
│                                                                        │
│すべてが問題ないとわかったなら、テストファイルを削除します。            │
│                                                                        │
│rm dummy.c a.out                                                        │
└────────────────────────────────────┘

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils-2.14 のインストール

推定構築時間:           1.4 SBU                                        
推定必要ディスクスペース  167 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils の内容

Binutils はオブジェクトファイルとアーカイブで働くリンカ、アセンブラ、そ
の他のツールを含むソフトウェア開発ツールの集まりです。

インストールされるプログラム: addr2line, ar, as, c++filt,gprof, ld, nm,
objcopy, objdump, ranlib, readelf, size, strings 及び strip

インストールされるライブラリ: libiberty.a, libbfd.[a,so] andlibopcodes.
[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils インストール依存性

Binutils は以下のパッケージに依存します: Bash, Coreutils, Diffutils,
GCC, Gettext,Glibc, Grep, Make, Perl, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils のインストール

では、仮想ターミナル( PTYs )が chroot 環境の中で正しく動いているかを
確かめる適切な時です。再び簡単なテストを行なうことで全てが正しく設定さ
れていることを素早くチェックします。

expect -c "spawn ls"                                                   

もしも

    The system has no more ptys.  Ask your system administrator to create more.
   
というメッセージが出るなら、お使いの chroot 環境は正しい PTY 操作に設定
されていません。この場合は、問題を解決できるようになるまで Binutils と
GCC へのテストは意味がありません。 the Section called prov と devpts フ
ァイルシステムのマウントという節と、the Section called デバイスの作成
(Makedev-1.7) という節に戻って、問題を修正するのに所定の手順を踏んでく
ださい。

    Note: この章の Binutils へのテストスイーツは必須だと考えています。
    どんな状況下でもテストを飛ばしてしまわないように注意しておきます。
   
このパッケージはデフォルト最適化フラグ( -march 及び -mcpu オプションを
含む)を変更するとおかしなふるまいをすると知られています。ですから、た
とえば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるよう
な何かの環境変数を定義したなら、Binutils を構築する時に、その設定を解除
するか、修正するようお勧めします。

Binutils の文書は、ソースディレクトリとは別の構築専用ディレクトリでコン
パイルするよう勧めています。

mkdir ../binutils-build                                                
cd ../binutils-build                                                   

さてコンパイルのために Binutils を準備します。

../binutils-2.14/configure \                                           
    --prefix=/usr --enable-shared                                      

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

make tooldir=/usr                                                      

通常、tooldir(実行ファイルが入ることになるディレクトリ)は $
(exec_prefix)/$(target_alias) に設定されていて、たとえば /usr/
i686-pc-linux-gnu のようになります。自分のシステムを構築するだけなので
、/usr の中にこの対象となる特定のディレクトリは必要ありません。システム
がクロスコンパイル(たとえば PowerPC で実行されるコードを Intel マシン
で生成するようなパッケージのコンパイル)に使われるなら、そのようなセッ
トアップが使われることになります。

結果をテストします。

make check                                                             

the Section called Binutils-2.14 のインストール in Chapter 5という節か
らのテストスイーツの注意書きはここでもまだとても役立ちます。万一何か疑
問を持ったらそこを参照して確かめて下さい。

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

make tooldir=/usr install                                              

いくつかのパッケージに必要とされる libiberty ヘッダファイルをインストー
ルします。

cp ../binutils-2.14/include/libiberty.h /usr/include                   

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC-3.3.1 のインストール

推定構築時間:           11.7 SBU                                       
推定必要ディスクスペース  294 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC の内容

GCC パッケージは C 及び C++ コンパイラなどを含む GNU コンパイラコレクシ
ョンを収容しています。

インストールされるプログラム: c++, cc (link to gcc), cc1, cc1plus,
collect2, cpp, g++, gcc, gccbug, 及び gcov

インストールされるライブラリ: libgcc.a, libgcc_eh.a, libgcc_s.so,
libstdc++.[a,so] 及び libsupc++.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC インストール依存性

GCC は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed,
Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC のインストール

    Note: この章の GCC へのテストスイーツは重大であると考えられます。ど
    んな状況下でもテストを飛ばしてしまわないように注意しておきます。
   
このパッケージはデフォルト最適化フラグ( -march 及び -mcpu オプションを
含む)を変更するとおかしなふるまいをすると知られています。ですから、た
とえば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるよう
な何かの環境変数を定義したなら、GCC を構築する時に、その設定を解除する
か、修正するようお勧めします。

今回は、C と C++ コンパイラの両方を構築するので、GCC-core と GCC-g++
tarball を解凍し、同じディレクトリに展開します。同じように、GCC テスト
スイーツパッケージも取り出したほうがよいでしょう。GCC パッケージのすべ
てはコンパイラ以外にも、もっと沢山のものを梱包しています。これらの構築
についての説明は http://www.linuxfromscratch.org/blfs/view/stable/
general/gcc.html にあります。

patch -Np1 -i ../gcc-3.3.1-no_fixincludes-2.patch                      
patch -Np1 -i ../gcc-3.3.1-suppress-libiberty.patch                    

二つ目のパッチは、ここでは Binutils によって提供されたものを使うので、
GCC からの libiberty のインストールを行いません。第 5 章からの GCC スペ
ックへのパッチをあてないように注意しましょう。

GCC 文書は、ソースディレクトリとは別の構築専用ディレクトリでコンパイル
するよう勧めています。

mkdir ../gcc-build                                                     
cd ../gcc-build                                                        

それではコンパイルのために GCC を準備します。

../gcc-3.3.1/configure --prefix=/usr \                                 
    --enable-shared --enable-threads=posix \                           
    --enable-__cxa_atexit --enable-clocale=gnu \                       
    --enable-languages=c,c++                                           

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

make                                                                   

結果をテストしますが、エラーで止まらないように(いくつかの既知の物を思
いだすでしょう)します。

make -k check                                                          

the Section called GCC-3.3.1 のインストール in Chapter 5という節からの
テストスイーツの注意書きはここでもまだとても役立ちます。万一何か疑問を
持ったらそこを参照して確かめて下さい。

そしてパッケージをインストールします。

make install                                                           

いくつかのパッケージは C Preprocessor が /lib ディレクトリにインストー
ルするよう要求するパッケージもあります。これらのパッケージのために、シ
ンボリックリンクを作ります。

ln -s ../usr/bin/cpp /lib                                              

多くのパッケージが C コンパイラを呼び出すのに cc という名前を使います。
これらのパッケージに合わせるために、シンボリックリンクを作ります。

ln -s gcc /usr/bin/cc                                                  

    Note: この時点で、この章の初めの方で行なった完成度テストを繰り返す
    ことを強く勧めます。 the Section called Toolchain を再調整するとい
    う節を再び参照してチェックを繰り返しましょう。もし結果が悪ければ、
    第 5 章からの GCC Specs パッチを間違ってあてているというのが最もあ
    りそうな原因でしょう。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils-5.0 のインストール

推定構築時間:           0.9 SBU                                        
推定必要ディスクスペース  69 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils の内容

Coreutils パッケージは基本的なシェルユーティリティの一揃い全部を含みま
す。

インストールされるプログラム: basename, cat, 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, hostname, id, install, join, kill, link, ln, logname, ls,
md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk,
pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq,
sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac,
tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq,
unlink, uptime, users, vdir, wc, who, whoami 及び yes

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils インストール依存性

Coreutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils のインストール

普通、uname の機能は、-p スイッチがいつも "unknown" と返される点で、す
こし壊れています。以下のパッチは Intel アーキテクチャに対するこの挙動を
修正します。

patch -Np1 -i ../coreutils-5.0-uname.patch                             

Coreutils に収録された版の hostname プログラムは、Net-tools によって提
供されるバージョンよりも劣っているのでインストールして欲しくありません
。パッチをあててそのインストールしないようにしてください。

patch -Np1 -i ../coreutils-5.0-hostname-2.patch                        

さてコンパイルのために Coreutils を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

第 5 章では、Coreutils からの su プログラムは root 権限を必要としたので
インストールされませんでした。テストスイーツのためにそのプログラムがす
ぐに必要となります。ですので、今それをインストールして問題を回避しまし
ょう。

make install-root                                                      

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。しかし、この特別のテストスイーツは
LFS の構築の早い段階では存在しない非 root ユーザーとグループについて、
当然あるものと決めてかかります。このため、テストを正しく実行するために
ダミーのシステムユーザーを一人と、ダミーグループを二つ作ります。テスト
スイーツを実行しなと選択したら、"パッケージのインストール"まで飛ばして
下さい。以下のコマンドでテストスイーツに備えて、一人のダミーユーザー名
と二つのダミーグループを作ります。

echo "dummy1:x:1000" >> /etc/group                                     
echo "dummy2:x:1001:dummy" >> /etc/group                               
echo "dummy:x:1000:1000:::/bin/bash" >> /etc/passwd                    

いくつかのテストは root で実行するのを意味します。

make check-root                                                        

テストの残りはダミーユーザーで行います。

su dummy -c "make RUN_EXPENSIVE_TESTS=yes check"                       

ダミーグループとダミーユーザー名を削除します。

sed -i.bak '/dummy/d' /etc/passwd /etc/group                           

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

make install                                                           

そしていくつかのプログラムをその正しい場所へ移動させます。

mv /usr/bin/{basename,cat,chgrp,chmod,chown,cp,dd,df} /bin             
mv /usr/bin/{dir,dircolors,du,date,echo,false,head} /bin               
mv /usr/bin/{install,ln,ls,mkdir,mkfifo,mknod,mv,pwd} /bin             
mv /usr/bin/{rm,rmdir,shred,sync,sleep,stty,su,test} /bin              
mv /usr/bin/{touch,true,uname,vdir} /bin                               
mv /usr/bin/chroot /usr/sbin                                           

最後に、いくつかの必要なシンボリックリンクを作ります。

ln -s test /bin/[                                                      
ln -s ../../bin/install /usr/bin                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib-1.1.4 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  1.5 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib の内容

Zlib パッケージはいくつかのプログラムがその圧縮と展開の機能のために必要
とする libz ライブラリを含みます。

インストールされるライブラリ: libz[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib インストール依存性

Zlib は以下のパッケージに依存します: Binutils, Coreutils, GCC, Glibc,
Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib のインストール

Zlib はその gzprintf() 関数の中に潜在的なバッファーオーバーフローを持っ
ていて利用するのが難しいので、以下のパッチをあてて対処したほうがよいで
しょう。

patch -Np1 -i ../zlib-1.1.4-vsnprintf.patch                            

コンパイルのために Zlib を準備します。

./configure --prefix=/usr --shared                                     

    Note: Zlib は、環境変数に CFLAFS が指定されていると、共有ライブラリ
    の構築が不正になることが知られています。 CFLAGS 変数を使っているな
    ら、この処理の間 -fPIC 命令を確実に加えて、終った後に削除します。
   
パッケージをコンパイルします。

make                                                                   

共有ライブラリをインストールします。

make install                                                           

さて非共有ライブラリも構築します。

make clean                                                             
./configure --prefix=/usr                                              
make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make test                                                              

ではパッケージをインストールします。

make install                                                           

共有 Zlib ライブラリは /lib ディレクトリにインストールされなければいけ
ません。これは、/use ディレクトリなしで起動しなければならない場合でも、
極めて重要なシステムプログラムは依然としてこのライブラリにアクセスする
からです。

mv /usr/lib/libz.so.* /lib                                             

/usr/lib/libz.so シンボリックリンクは、すでに移動させたので、もはや存在
しないファイルにリンクされていることになります。ライブラリの新しい場所
に対してシンボリックリンクを作ります。

ln -sf ../../lib/libz.so.1 /usr/lib/libz.so                            

Zlib はその文章をインストールしません。この文章をインストールするために
次のコマンドを実行します。

cp zlib.3 /usr/share/man/man3                                          

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils-0.3 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  1.1 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils の内容

Lfs-Utils パッケージは様々なパッケージに使われる種々雑多なプログラムを
含みますが、それぞれ個別のパッケージを請け負う程大きくはありません。

インストールされるプログラム: mktemp, tempfile, http-get and iana-net

インストールされるファイル: protocols, services

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils インストール依存性

(依存性はまだ調査されていません。)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils のインストール

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

make                                                                   

そしてインストールします。

make install                                                           

さてそれでは Lfs-Utils tarball に含まれている二つのサポートファイルを目
的の場所にコピーします。

cp etc/{services,protocols} /etc                                       

/etc/services ファイルは、サービスナンバーを人が読むことができる名前に
するのに使われ、/etc/protocols は同様のことをプロトコルナンバーに対して
します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils-4.1.20 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  7.5 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils の内容

Findutils パッケージは、オンザフライ方式(実況的にディレクトリを再帰検
索して仕様に合ったファイルを表示する方式)とデータベースを通して検索す
る方式の両方のファイルを探すプログラムを含みます。

インストールされるプログラム: bigram, code, find, frcode, locate,
updatedb 及び xargs

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils インストール依存性

Findutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils のインストール

コンパイルのために Findutils を準備します。

./configure --prefix=/usr --libexecdir=/usr/bin                        

デフォルトでは、updatedb データベースファイルの場所は /usr/var です。 /
var/lib/misc/locatedb ファイルの場所を FHS 準拠にするため、configure に
--localstatedir=/var/lib/misc オプションを渡します。

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk-3.1.3 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  17 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk の内容

Gawk はテキストファイルを操作するのに使われる awk の実装です。

インストールされるプログラム: awk (gawk へのリンク), gawk, gawk-3.1.3,
grcat, igawk, pgawk, pgawk-3.1.3 及び pwcat

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk インストール依存性

Gawk は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk のインストール

初めに以下の問題を修正するためにパッチをあてます。

 ・ Gawk のいくつかの実行可能ファイルのデフォルトの場所は $prefix/
    libexec/awk です。 FHS 規格ではこの libexec と呼ばれるディレクトリ
    にすら言及しておらず、FHS 準拠ではありません。このパッチは、コンフ
    ィグスクリプトに --libexecdir スイッチを渡すことを可能にしますので
    、grcat と pwcat のバイナリをより適切な場所、つまり /usr/bin で使う
    ことができます。
   
 ・ Gawk のデフォルトのデータディレクトリは $prefix/share/awk です。し
    かしパッケージに特有のディレクトリはパッケージの名前とバージョン番
    号を使って名付けられるべきで(たとえば gawk-7.7.2. )、システムに異
    なったバージョンのパッケージがインストールされているかも知れないの
    で、単純にパッケージの名前だけにすべきではありません。このパッチは
    データディレクトリの名前を正しい $prefix/share/gawk-3.1.3 に変更し
    ます。
   
 ・ このパッチはまた、このデータディレクトリがその内容も含めて、make
    uninstall によって削除されることを確実にします。
   
patch -Np1 -i ../gawk-3.1.3-libexecdir.patch                           

それではコンパイルのために Gawk を準備します。

./configure --prefix=/usr --libexecdir=/usr/bin                        

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses-5.3 のインストール

推定構築時間:           0.6 SBU                                        
推定必要ディスクスペース  27 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses の内容

Ncurses パッケージはキャラクターと端末を扱う、パネルとメニューを含むラ
イブラリを提供します。

インストールされるプログラム: captoinfo (tic へのリンク), clear,
infocmp, infotocap (tic へのリンク), reset (tset へのリンク), tack,
tic, toe, tput 及び tset

インストールされるライブラリ: libcurses.[a,so] (libncurses.[a,so] への
リンク), libform.[a,so], libmenu.[a,so], libncurses++.a, libncurses.
[a,so], libpanel.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses インストール依存性

Ncurses は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses のインストール

二つのちょっとしたバグを修正します。

patch -Np1 -i ../ncurses-5.3-etip-2.patch                              
patch -Np1 -i ../ncurses-5.3-vsscanf.patch                             

一つ目のパッチは etip.h ヘッダファイルを正し、二つ目のパッチは好ましく
ないヘッダの使用について、いくつかのコンパイラの警告を出さないようにし
ます。

さてそれではコンパイルのために Ncurses を準備します。

./configure --prefix=/usr --with-shared \                              
    --without-debug                                                    

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

make                                                                   

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

make install                                                           

Ncurses のライブラリに実行の許可を与えます。

chmod 755 /usr/lib/*.5.3                                               

それから実行可能にするべきでないライブラリを修正します。

chmod 644 /usr/lib/libncurses++.a                                      

ライブラリを置くべき場所と期待される /lib ディレクトリに移動させましょ
う。

mv /usr/lib/libncurses.so.5* /lib                                      

ライブラリが /lib に移動されたので、いくつかのシンボリックリンクは現在
存在しないファイルを指しています。これらのシンボリックリンクを作り直し
ましょう。

ln -sf ../../lib/libncurses.so.5 /usr/lib/libncurses.so                
ln -sf libncurses.so /usr/lib/libcurses.so                             

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim-6.2 のインストール

推定構築時間:           0.4 SBU                                        
推定必要ディスクスペース  34 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim に代るもの

Vim よりも他のエディターー Emacs や Joe, Nano ーがよいなら、提案された
インストールの説明を探すのに http://www.linuxfromscratch.org/blfs/view/
stable/postlfs/editors.html を見てみましょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim の内容

Vim パッケージは能率的な文章編集を可能にするために構築された最適化可能
なテキストエディタを含みます。

インストールされるプログラム: efm_filter.pl, efm_perl.pl, ex (vim への
リンク), less.sh, mve.awk, pltags.pl, ref, rview (vim へのリンク), rvim
(vim へのリンク), shtags.pl, tcltags, vi (vim へのリンク), view (vim へ
のリンク), vim, vim132, vim2html.pl, vimdiff (vim へのリンク), vimm,
vimspell.sh, vimtutor 及び xxd

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim インストール依存性

Vim は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim のインストール

デフォルトの vimrc と gvimrc ファイルの場所を /etc へ変更します。

echo '#define SYS_VIMRC_FILE "/etc/vimrc"' >> src/feature.h            
echo '#define SYS_GVIMRC_FILE "/etc/gvimrc"' >> src/feature.h          

それではコンパイルのために Vim を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

それではパッケージをインストールします。

make install                                                           

Vim は以下のコマンドで作られるシンボリックリンクを作ることで、旧式の vi
モードで実行することができます。

ln -s vim /usr/bin/vi                                                  

LFS システムに X window システムをインストールしようとしているなら、X
をインストールしたあとに Vim を再コンパイルするといいでしょう。 Vim に
は X とその他いくつかのインストールされているライブラリを要求する素敵な
GUI バージョンが付属しています。より詳しい情報は Vim の説明文章を読んで
下さい。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim を設定する

デフォルトでは、vim は vi 互換モードで実行されます。これを好む人もいる
かもしれませんが、我々は vim を vim モードで実行するのを選んでいます。
(そうでなければ、本書に vim を入れず、オリジナルの vi のままにするでし
ょう。)以下のコマンドを実行して /root/.vimrc を作ります。

cat > /root/.vimrc << "EOF"                                            
" Begin /root/.vimrc                                                   
                                                                       
set nocompatible                                                       
set bs=2                                                               
                                                                       
" End /root/.vimrc                                                     
EOF                                                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4-1.4 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  3.0 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4 の内容

M4 はマクロプロセッサーです。このプログラムは入力をそのまま出力し、その
際にマクロを展開します。マクロは組み込みかユーザー定義のどちらでもよく
、引数はいくつでもとれます。マクロを展開する事以外にも、M4 は指定された
ファイルを取り込む、Unix コマンドを実行する、整数の計算を行なう、様々な
方法でテキストを操作する、再帰定義、などを含む機能を持っています。M4 プ
ログラムはコンパイラに対するフロントエンドとして、またそれ自身の機能で
あるマクロプロセッサとして使うことができます。

インストールされるプログラム: m4

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4 インストール依存性

M4 は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4 のインストール

コンパイルのために M4 を準備しましょう。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison-1.875 のインストール

推定構築時間:           0.6 SBU                                        
推定必要ディスクスペース  10.6 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison の内容

Bison は yacc の代わりとなる構文解析ジェネレーターです。Bison はテキス
トファイルの構造を検査するプログラムを生成します。

インストールされるプログラム: bison 及び yacc

インストールされるライブラリ: liby.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison インストール依存性

Bison は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils,GCC, Gettext, Glibc, Grep, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison のインストール

最初に、CVS からバックポートされた bison へのパッチを使います。それらの
パッチはいくつかのパッケージのマイナーなコンパイルの問題を修正します。

patch -Np1 -i ../bison-1.875-attribute.patch                           

コンパイルのために Bison を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。(時間がかかります。)

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less-381 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  3.4 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less の内容

Less はファイルページャー、またはテキストビュワーです。これはファイルや
ストリームの内容を表示し、スクロールする能力があります。Less は more ぺ
ージャーには含まれない、後方へスクロールする機能などのいくつかの特徴を
持っています。

インストールされるプログラム: less, lessecho 及び lesskey

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less インストール依存性

Less は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less のインストール

コンパイルのために Less を準備します。

./configure --prefix=/usr --bindir=/bin --sysconfdir=/etc              

コンフィグオプションの意味

 ・ --sysconfdir=/etc: このオプションは、パッケージによって作られるプロ
    グラムの設定ファイルを /etc の中で探すように伝えます。
   
パッケージをコンパイルします。

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff-1.19 のインストール

推定構築時間:           0.5 SBU                                        
推定必要ディスクスペース  43 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff の内容

Groff パッケージは文章整形のためのいくつかのテキスト処理プログラムを含
みます。Groff は標準的な文章と特別なコマンドを、マニュアルページで目に
するような整形された出力に翻訳します。

インストールされるプログラム: addftinfo, afmtodit, eqn, eqn2graph, geqn
(eqn へのリンク), grn, grodvi, groff, groffer, grog, grolbp, grolj4,
grops, grotty, gtbl (tbl へのリンク), hpftodit, indxbib, lkbib,
lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml,
pre-grohtml, refer, soelim, tbl, tfmtodit, troff 及び zsoelim (soelim
へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff インストール依存性

Groff は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff のインストール

Groff は、環境変数 PAGE にデフォルトの用紙サイズを含めるよう求めます。
これについて、米国では以下のコマンドが適切です。他の場所に住んでいるな
ら、PAGE=letter から PAGE=A4 へ変更してもいいでしょう。

コンパイルのために Groff を準備します。

PAGE=letter ./configure --prefix=/usr                                  

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

make                                                                   

そしてインストールします。

make install                                                           

xman のような文書プログラムは、以下のシンボリックリンクが無いと正しく動
きません。

ln -s soelim /usr/bin/zsoelim                                          
ln -s eqn /usr/bin/geqn                                                
ln -s tbl /usr/bin/gtbl                                                

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed-4.0.7 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  5.2 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed の内容

Sed はストリームエディターです。ストリームエディターは入力されるストリ
ーム(ファイルまたはパイプラインからの入力)に対して基本的なテキスト変
換を行なうために使われます。

インストールされるプログラム: sed

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed インストール依存性

Sed は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed のインストール

Sed のインストールとコンパイルのために Sed を準備します。

./configure --prefix=/usr --bindir=/bin                                

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex-2.5.4a のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  3.4 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex の内容

Flex パッケージはテキストの中のパターンを見つけるためのプログラムを生成
します。

インストールされるプログラム: flex, flex++ (flex へのリンク) 及び lex

インストールされるライブラリ: libfl.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex インストール依存性

Flex は以下のパッケージに依存します: Bash, Binutils, Bison, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex のインストール

コンパイルのために Flex を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make bigcheck                                                          

そしてパッケージをインストールします。

make install                                                           

Lex ライブラリが /usr/lib の中にあることを要求するいくつかのパッケージ
があります。これに対処するためのシンボリックリンクを作ります。

ln -s libfl.a /usr/lib/libl.a                                          

いくつかのプログラムはまだ flex を知らず、その前身である lex を実行しよ
うとします。これらのプログラムをサポートするために、flex を Lex エミュ
レーションモードで呼び出す lex という名前のシェルスクリプトを作ります。

cat > /usr/bin/lex << "EOF"                                            
#!/bin/sh                                                              
# Begin /usr/bin/lex                                                   
                                                                       
exec /usr/bin/flex -l "$@"                                             
                                                                       
# End /usr/bin/lex                                                     
EOF                                                                    
chmod 755 /usr/bin/lex                                                 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext-0.12.1 のインストール

推定構築時間:           6.9 SBU                                        
推定必要ディスクスペース  55 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext の内容

Gettext パッケージは国際化と地域化の為に使われます。プログラムは、ユー
ザーの母国語でメッセージを出すことを可能にする母国語サポート( NLS )で
コンパイルされることができます。

インストールされるプログラム: autopoint, config.charset, config.rpath,
gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm,
msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge,
msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget,
user-email 及び xgettext

インストールされるライブラリ: libasprintf[a,so], libgettextlib[a,so],
libgettextpo[a,so] 及び libgettextsrc[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext インストール依存性

Gettext は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext のインストール

コンパイルのために Gettext を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。(時間がかかります。)

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools-1.60 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース:  9.4 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools の内容

Net-tools パッケージは Linux のネットワークの基礎を形作るプログラムの集
まりを含みます。

インストールされるプログラム: arp, dnsdomainname (hostname へのリンク),
domainname (hostname へのリンク), hostname, ifconfig, nameif, netstat,
nisdomainname (hostname へのリンク), plipconfig, rarp, route, slattach
及び ypdomainname (hostname へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools インストール依存性

Net-tools は以下のパッケージに依存します: Bash, Binutils, Coreutils,
GCC, Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools のインストール

以下の make config の間に尋ねられるすべての質問について、何と答えるか分
らなければデフォルトの値を受けいれましょう。これは大抵の場合うまくいき
ます。ここで尋ねられることは、カーネルでどのネットワークプロトコルを有
効にしたかということについての質問集です。デフォルトの答えは、TCP, PPP
とその他いくつかの最も一般的なプロトコルで動くように、このパッケージか
らのツールを有効にします。さらに、実際にカーネルでこれらのプロトコルを
有効にする必要があります。ここですることは、ただパッケージにプログラム
の中のこれらのプロトコルのサポートを含めることを伝えるだけでなく、カー
ネルまで含めてプロトコルを利用できるようにすることです。

初めに mii-tool プログラムのソースの中にあるちょっとした文法的な問題を
修正します。

patch -Np1 -i ../net-tools-1.60-miitool-gcc33-1.patch                  

さてそれではコンパイルのために Net-tools を準備します。

make config                                                            

デフォルトの設定を使うつもりなら、代わりに yes "" | make config を実行
することで make config によって作られる質問を飛ばしてもいいでしょう。

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

make                                                                   

そしてインストールします。

make update                                                            

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils-1.4.2 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  11 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils の内容

Inetutils パッケージはネットワーククライアントとサーバーを含みます。

インストールされるプログラム: ftp, ping, rcp, rlogin, rsh, talk, telnet
及び tftp

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils インストール依存性

Inetutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils のインストール

コンパイルのために Inetutils を準備します。

./configure --prefix=/usr --disable-syslogd \                          
    --libexecdir=/usr/sbin --disable-logger \                          
    --sysconfdir=/etc --localstatedir=/var \                           
    --disable-whois --disable-servers                                  

コンフィグオプションの意味

 ・ --disable-syslogd: このオプションは、System Log Daemon をインストー
    ルしません。System log daemon は、Sysklogd からインストールされます
    。
   
 ・ --disable-logger: このオプションは、logger プログラムをインストール
    しません。logger プログラムは、システムログデーモンにメッセージを渡
    すスクリプトによって使われます。 Util-linux があとでより良い版をイ
    ンストールするので、ここでは logger をインストールしません。
   
 ・ --disable-whois: このオプションは、悲しいほど時代遅れとなってしまっ
    た Inetutils 収録の whois クライアントの構築を無効にします。より良
    い whois クライアントの説明は BLFS ブックの中にあります。
   
 ・ --disable-servers: これは Inetutils パッケージの一部として含まれる
    様々なネットワークサーバーのインストールを無効にします。これらのサ
    ーバーは基本的な LFS システムには不適切だと思われます。いくつかはそ
    の性質から安全でなく、信用できるネットワークでのみ安全だと思われま
    す。より詳しい情報は http://www.linuxfromscratch.org/blfs/view/
    stable/basicnet/inetutils.html にあります。これらのサーバーの多くに
    ついて、より良い代用品が利用できることを記しておきます。
   
パッケージをコンパイルします。

make                                                                   

インストールします。

make install                                                           

そして ping プログラムをその適切な場所へ移動させます。

mv /usr/bin/ping /bin                                                  

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl-5.8.0 のインストール

推定構築時間:           2.9 SBU                                        
推定必要ディスクスペース  143 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl の内容

Perl パッケージは perl, the Practical Extraction and Report Language を
含みます。Perl は C や sed, awk 及び sh の最も良い特徴のいくつかを一つ
に統合した強力な言語です。

インストールされるプログラム: a2p, c2ph, dprofpp, enc2xs, find2perl,
h2ph, h2xs, libnetcfg, perl, perl5.8.0 (perl へのリンク), perlbug,
perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man,
pod2text, pod2usage, podchecker, podselect, psed (s2p へのリンク),
pstruct (c2ph へのリンク), s2p, splain and xsubpp

インストールされるライブラリ: (too many to name)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl インストール依存性

Perl は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl のインストール

コンパイルのために Perl を準備します。

./configure.gnu --prefix=/usr                                          

Perl 自身を構築するのに設定する方法についてもっと制御したいなら、対話的
設定スクリプトを実行できますし、Perl が構築される方法を修正できます。機
械的なデフォルトの Perl 自動検出を生かせると思うなら、上述したコマンド
を使ってください。

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、最初に
基本的な /etc/hosts というファイルを作成しなければいけません。 /etc/
hosts というファイルは、ローカルホストの名前を解決する一対のテストに必
要です。

echo "127.0.0.1 localhost $(hostname)" > /etc/hosts                    

望むなら、テストを実行します。

make test                                                              

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo-4.6 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  17 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo の内容

Texinfo パッケージは、システムの公式文章を提供する Info ドキュメントを
読み、書き、変換するために使われるプログラムを含みます。

インストールされるプログラム: info, infokey, install-info, makeinfo,
texi2dvi 及び texindex

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo インストール依存性

Texinfo は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo のインストール

コンパイルのために Texinfo を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

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

make install                                                           

そして任意で TeX のインストールに属する要素をインストールします。

make TEXMF=/usr/share/texmf install-tex                                

make パラメーターの意味

 ・ TEXMF=/usr/share/texmf: TEXMF makefile 変数は、たとえばのちほど TeX
    パッケージをインストールする予定なら、TeX ツリーのルートの場所を保
    持します。
   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf-2.57 のインストール

推定構築時間:           2.9 SBU                                        
推定必要ディスクスペース  7.7 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf の内容

Autoconf はソースコードを自動的に最適化するシェルスクリプトを生成します
。

インストールされるプログラム: autoconf, autoheader,
autom4te,autoreconf, autoscan, autoupdate and ifnames

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf インストール依存性

Autoconf は以下のパッケージに依存します: Bash, Coreutils, Diffutils,
Grep,M4, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf のインストール

コンパイルのために Autoconf を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake-1.7.6 のインストール

推定構築時間:           5.3 SBU                                        
推定必要ディスクスペース  6.8 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake の内容

Automake は Autoconf で使用されることを意図された Makefile.in を生成し
ます。

インストールされるプログラム: acinstall, aclocal,aclocal-1.7, automake,
automake-1.7, compile, config.guess, config.sub,depcomp, elisp-comp,
install-sh, mdate-sh, missing, mkinstalldirs, py-compile,ylwrap

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake インストール依存性

Automake は以下のパッケージに依存します: Autoconf, Bash,
Coreutils,Diffutils, Grep, M4, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake のインストール

コンパイルのために Automake を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、それが正しく構築されたことを保証する数多くのチェック
を行なうテストスイーツを利用可能にします。テストをすることにした場合は
、以下のコマンドで実行可能です。

make check                                                             

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

make install                                                           

そして必要なシンボリックリンクを作ります。

ln -s automake-1.7 /usr/share/automake                                 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash-2.05b のインストール

推定構築時間:           1.2 SBU                                        
推定必要ディスクスペース  27 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash の内容

Bash は Bourne-Again シェルという、UNIX システムで広く使われているコマ
ンドインタープリターです。Bash プログラムは標準入力(キーボード)からの
入力を読み込みます。ユーザーが何かをタイプするとプログラムは何がタイプ
されたかを評価し、それについてプラグラムの実行のような事を行ないます。

インストールされるプログラム: bash, sh (link to bash) andbashbug

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash インストール依存性

Bash は以下のパッケージに依存します: Binutils, Coreutils, Diffutils,
Gawk,GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash のインストール

Bash はその中に期待通りの動作をしない原因となるいくつかのバグがあります
。以下のパッチでこの動作を修正します。

patch -Np1 -i ../bash-2.05b-2.patch                                    

コンパイルのために Bash を準備します。

./configure --prefix=/usr --bindir=/bin                                

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

make                                                                   

このパッケージは、それが正しく構築されたことを保証する数多くのチェック
を行なうテストスイーツを利用可能にします。テストをすることにした場合は
、以下のコマンドで実行可能です。

make tests                                                             

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

make install                                                           

そして新しくコンパイルされた Bash プログラムを再ロードします。

exec /bin/bash --login +h                                              

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File-4.04 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  6.3 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File の内容

File はファイルタイプを決定するために使われるユーティリティです。

インストールされるプログラム: file

インストールされるライブラリ: libmagic.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File インストール依存性

File は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed, Zlib.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File のインストール

コンパイルのために File を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool-1.5 のインストール

推定構築時間:           1.5 SBU                                        
推定必要ディスクスペース  20 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool の内容

GNU libtools は一般的なライブラリサポートスクリプトです。Libtools は共
有ライブラリを使用することの複雑さを堅実で小さなインターフェイスの後に
隠します。

インストールされるプログラム: libtool 及び libtoolize

インストールされるライブラリ: libltdl.[a,so].

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool インストール依存性

Libtool は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool のインストール

コンパイルのために Libtools を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2-1.0.2 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  3.0 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 の内容

Bzip2 は一般的に従来の gzip が行なうよりもよりよい圧縮を達成するブロッ
クソート型のファイルコンプレッサーです。

インストールされるプログラム: bunzip2 (link to bzip2), bzcat (bzip2 へ
のリンク), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2,
bzip2recover, bzless 及び bzmore

インストールされるライブラリ: libbz2.a, libbz2.so (libbz2.so.1.0 へのリ
ンク), libbz2.so.1.0 (libbz2.so.1.0.2へのリンク) 及び libbz2.so.1.0.2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 インストール依存性

Bzip2 は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 のインストール

コンパイルのために Bzip2 を準備します。

make -f Makefile-libbz2_so                                             
make clean                                                             

-f フラグは Bzip2 に違った Makefile を使って構築するようにします。この
場合は、Makefile-libbz2_so ファイルになり、動的な libbz2.so ライブラリ
を作り、それに対して Bzip2 ユーティリティをリンクします。

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

make                                                                   

インストールします。

make install                                                           

そして bzip2 の共有バイナリを /bin ディレクトリにインストールして、いく
つかの必要なシンボリックリンクを作り、後かたづけをします。

cp bzip2-shared /bin/bzip2                                             
cp -a libbz2.so* /lib                                                  
ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so                       
rm /usr/bin/{bunzip2,bzcat,bzip2}                                      
mv /usr/bin/{bzip2recover,bzless,bzmore} /bin                          
ln -s bzip2 /bin/bunzip2                                               
ln -s bzip2 /bin/bzcat                                                 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils-2.8.1 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  7.5 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils の内容

このパッケージからのプログラムは二つのファイルやディレクトリの違いを教
えてくれます。最も一般的な使いかたはソフトウェアパッチを作ることです。

インストールされるプログラム: cmp, diff, diff3 and sdiff

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils インストール依存性

Diffutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils のインストール

コンパイルのために Diffutils を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed-0.2 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  3.1 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed の内容

GNU Ed は 8 ビット対応で POSIX 準拠のラインエディターです。

インストールされるプログラム: ed and red (ed へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed インストール依存性

Ed は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed のインストール

    Note: Ed は多くの人が使うものではありません。ここでは、ed ベースの
    パッチに遭遇した場合に、パッチプログラムが使うのでインストールされ
    ます。最近では diff ベースのパッチが好まれるためこの問題はあまり起
    きません。
   
Ed は通常 /tmp の中に一時ファイルを作るため mktemp 関数を使いますが、こ
の関数は脆弱性を持ちます。( http://en.tldp.org/HOWTO/
Secure-Programs-HOWTO/avoid-race.html の中の一時ファイルの項を見て下さ
い。)以下のパッチは代わりに、一時ファイルを作るための方法として推奨さ
れている mkstemp を Ed が使うようにします。

パッチをあてます。

patch -Np1 -i ../ed-0.2-mkstemp.patch                                  

それではコンパイルのために Ed を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

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

make install                                                           

そして /usr パーティションが利用できなくなった場合にも使えるように、プ
ログラムを /bin ディレクトリへ移動しましょう。

mv /usr/bin/{ed,red} /bin                                              

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd-1.08 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  12 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd の内容

Kbd はキーテーブルファイルとキーボードユーティリティを含みます。

インストールされるプログラム: chvt, deallocvt, dumpkeys, fgconsole,
getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap,
mapscrn, openvt, psfaddtable (psfxtable へのリンク), psfgettable
(psfxtable へのリンク), psfstriptable (psfxtable へのリンク),
psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons,
setmetamode, setvesablank, showconsolefont, showkey, unicode_start 及び
unicode_stop

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd インストール依存性

Kbd は以下のパッケージに依存します: Bash, Binutils, Bison, Coreutils,
Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd のインストール

デフォルトで Kbd のユーティリティのいくつか( setlogcons と 
setvesablank, getunimap )はインストールされません。初めにこれらのユー
ティリティのコンパイルを有効にします。

patch -Np1 -i ../kbd-1.08-more-programs.patch                          

それではコンパイルのために Kbd を準備します。

./configure                                                            

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

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs-1.34 のインストール

推定構築時間:           0.6 SBU                                        
推定必要ディスクスペース  48.4 MB                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs の内容

E2fsprogs は ext2 ファイルシステムで使用するファイルシステムユーティリ
ティを提供します。これはまたジャーナリングをサポートした ext3 ファイル
システムもサポートします。

インストールされるプログラム: badblocks, blkid, chattr, compile_et,
debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck, fsck.ext2,
fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3,
mklost+found, resize2fs, tune2fs 及び uuidgen.

インストールされるライブラリ: libblkid.[a,so], libcom_err.[a,so],
libe2p.[a,so], libext2fs.[a,so], libss.[a,so] 及び libuuid.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs インストール依存性

E2fsprogs は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs のインストール

ソースツリー以外で E2fsprogs を構築するのを推奨しています。

mkdir ../e2fsprogs-build                                               
cd ../e2fsprogs-build                                                  

コンパイルのために E2fsprogs を準備します。

../e2fsprogs-1.34/configure --prefix=/usr --with-root-prefix="" \      
    --enable-elf-shlibs                                                

コンフィグオプションの意味

 ・ --with-root-prefix="": e2fsck プログラムのようなあるプログラムは極
    めて重要なプログラムであると考えられています。たとえば、/usr がマウ
    ントされていないときには、これらの極めて重要なプログラムが利用でき
    る必要があります。これらは /lib や /sbin のようなディレクトリに置か
    れます。このオプションが E2fsprogs の configure に渡されないとする
    と、プログラムは望まない /usr の中に置かれます。
   
 ・ --enable-elf-shlibs: これはこのパッケージの中のいくつかのプログラム
    が利用する共有ライブラリを作ります。
   
パッケージをコンパイルします。

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

パッケージの大半をインストールします。

make install                                                           

さらに、共有ライブラリもインストールします。

make install-libs                                                      

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep-2.5.1 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  5.8 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep の内容

Grep は指定されたパターンに合ったラインをファイルから表示するのに使われ
るプログラムです。

インストールされるプログラム: egrep (grep へのリンク), fgrep (grep への
リンク) 及び grep

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep インストール依存性

Grep は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep のインストール

コンパイルのために Grep を準備します。

./configure --prefix=/usr --bindir=/bin \                              
    --with-included-regex                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub-0.93 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  10 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub の内容

Grub パッケージはブートローダーを含みます。

インストールされるプログラム: grub, grub-install, grub-md5-crypt,
grub-terminfo and mbchk

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub インストール依存性

Grub は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub のインストール

このパッケージはデフォルト最適化フラグ( -march 及び -mcpu オプションを
含む)を変更するとおかしなふるまいをすると知られています。ですから、た
とえば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるよう
な何かの環境変数を定義したなら、Grub を構築する時に、その設定を解除する
か、修正するようお勧めします。

初めに GCC-3.3.1 でのコンパイルの問題を修正します。

patch -Np1 -i ../grub-0.93-gcc33-1.patch                               

それではコンパイルのために Grub を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

そしてインストールします。

make install                                                           
mkdir /boot/grub                                                       
cp /usr/share/grub/i386-pc/stage{1,2} /boot/grub                       

i386-pc ディレクトリをお使いのハードウェアにあわせて、適切なディレクト
リに置き換えて下さい。

i386-pc ディレクトリはまた、別のファイルシステムでは数多くの異なる *
stage1_5 ファイルを含みます。それが利用できるかどうかを見て、適切なもの
を /boot/grub ディレクトリにコピーして下さい。たいていの方は
e2fs_stage1_5 と reiserfs_stage1_5 のどちらかか両方をコピーするでしょう
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip-1.3.5 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  2.6 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip の内容

Gzip パッケージは Kempel-Ziv コーディング( LZ77 )を使ってファイルを圧
縮したり解凍したりするプログラムを含みます。

インストールされるプログラム: gunzip (gzip へのリンク), gzexe, gzip,
uncompress (gunzip へのリンク), zcat (gzip へのリンク), zcmp, zdiff,
zegrep, zfgrep, zforce, zgrep, zless, zmore 及び znew

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip インストール依存性

Gzip は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip のインストール

コンパイルのために Gzip を準備します。

./configure --prefix=/usr                                              

gzexe プログラムには、内部に組み込まれた gzip バイナリの場所があります
。後ほどこの後者のバイナリの場所を変更するので、以下のコマンドで新しい
場所がバイナリの中に置かれることを確実にします。

cp gzexe.in{,.backup}                                                  
sed 's%"BINDIR"%/bin%' gzexe.in.backup > gzexe.in                      

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

make                                                                   

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

make install                                                           

そしてプログラムを /bin ディレクトリへ移動します。

mv /usr/bin/gzip /bin                                                  
rm /usr/bin/{gunzip,zcat}                                              
ln -s gzip /bin/gunzip                                                 
ln -s gzip /bin/zcat                                                   
ln -s gunzip /bin/uncompress                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-1.5m2 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  1.9MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man の内容

Man は man pager です。

インストールされるプログラム: apropos, makewhatis, man, man2dvi,
man2html and whatis

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man インストール依存性

Man は以下のパッケージに依存します: Bash, Binutils, Coreutils, Gawk,
GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man のインストール

Man のソースについて三つの調整をします。

一つ目のパッチは whatis のようなプログラムを使ったときの冗長な結果を避
けるために man.conf ファイルの中の "MANPATH /usr/man" という行をコメン
トアウトします。

patch -Np1 -i ../man-1.5m2-manpath.patch                               

二つ目のパッチはエスケープシーケンスを正しく扱うために PAGER 変数へ -R
オプションを加えます。

patch -Np1 -i ../man-1.5m2-pager.patch                                 

三つ目の最後のパッチは 80 列以上で整形されていない man page が groff の
最新版と共に使われたときに生じる問題を避けます。

patch -Np1 -i ../man-1.5m2-80cols.patch                                

さてコンパイルのために Man を準備します。

./configure -default -confdir=/etc                                     

コンフィグオプションの意味

 ・ -default: これは、実際的なデフォルトのオプションのセットを選択する
    ように設定スクリプトに伝えます。たとえば、英文の man page のみ、メ
    ッセージカタログなし、man not suid 、圧縮された man page を扱う、
    cat page を圧縮する、適切なディレクトリが存在するときはいつでも cat
    page を作る、cat page を /var/cache/man ディレクトリ下に置くことで
    FHS に従う、といったことです。
   
 ・ -confdir=/etc: これは man page プログラムに man.conf という設定ファ
    イルを /etc ディレクトリの中で探すように伝えます。
   
パッケージをコンパイルします。

make                                                                   

そしてインストールします。

make install                                                           

    Note: SGR エスケープシーケンスを無効にしたいなら、man.conf ファイル
    を編集して nroff へ -c 引数を加えましょう。
   
man ページについて、フォーマットと圧縮の問題について扱っている http://
www.linuxfromscratch.org/blfs/view/cvs/postlfs/compressdoc.html で、
BLFS ページを見るとよいでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make-3.80 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  8.8 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make の内容

Make は巨大なプログラムのどの構成要素が再コンパイルされる必要があるのか
を自動的に決定し、それらを再コンパイルするためのコマンドを発行します。

インストールされるプログラム: make

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make インストール依存性

Make は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make のインストール

コンパイルのために Make を準備します。

./configure --prefix=/usr                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils-2.4.25 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  2.9 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils の内容

Modutils パッケージはカーネルモジュールに対して使えるプログラムを含みま
す。

インストールされるプログラム: depmod, genksyms, insmod,
insmod_ksymoops_clean, kallsyms (insmod へのリンク), kernelversion,
ksyms (insmod へのリンク), lsmod (insmod へのリンク), modinfo, modprobe
(insmod へのリンク) 及び rmmod (insmod へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils インストール依存性

Modutils は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, Flex, GCC, Glibc, Grep, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils のインストール

コンパイルのために Modutils を準備します。

./configure                                                            

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

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch-2.5.4 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  1.9 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch の内容

Patch プログラムはパッチファイルに従ってファイルを修正します。パッチフ
ァイルは普通 diff プログラムによって作られたリストで、それは元々のファ
イルがどのように修正されることを必要とするかを含んでいます。

インストールされるプログラム: patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch インストール依存性

Patch は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch のインストール

コンパイルのために Patch を準備しましょう。

CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/usr                       

再び、プリプロセッサフラグ -D_GNU_SOURCE は PowerPC プラットフォームで
のみ必要とされます。その他のアーキテクチャでは取り除いて構いません。

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

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo-18 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  0.2 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo の内容

Procinfo プログラムはメモリの使用や IRQ 番号のようなシステムデータを /
proc ディレクトリから集め、これらのデータを意味のある方法で整形します。

インストールされるプログラム: lsdev, procinfo and socklist

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo インストール依存性

Procinfo は以下のパッケージに依存します: Binutils, GCC, Glibc, Make,
Ncurses.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo のインストール

Procinfo をコンパイルします。

make LDLIBS=-lncurses                                                  

make パラメータの意味

 ・ LDLIBS=-lncurses: これは Procinfo に久しく時代遅れとなった
    libtermcap の代わりに libncurses ライブラリを使うことを伝えます。
   
そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps-3.1.11 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  6.2 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps の内容

Procps パッケージはシステムプロセスを監視し停止させるプログラムを提供し
ます。Procps は /proc ディレクトリを通じてプロセスについての情報を集め
ます。

インストールされるプログラム: free, kill, pgrep, pkill, pmap, ps,
skill, snice, sysctl, tload, top, uptime, vmstat, w and watch

インストールされるライブラリ: libproc.so

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps インストール依存性

Procps は以下のパッケージに依存します: Bash, Binutils, Coreutils, GCC,
Glibc, Make, Ncurses.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps のインストール

初めにあるロケールの設定の下で w が故障して壊れてしまうという問題を修正
します。

patch -Np1 -i ../procps-3.1.11-locale-fix.patch                        

それでは Procps をコンパイルします。

make                                                                   

インストールします。

make install                                                           

それから余計なライブラリリンクを削除します。

rm /lib/libproc.so                                                     

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc-21.3 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  2.2 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc の内容

Psmisc パッケージは /proc ディレクトリを管理するのを助ける三つのプログ
ラムを含みます。

インストールされるプログラム: fuser, killall and pstree

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc インストール依存性

Psmisc は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc のインストール

コンパイルのために Psmisc を準備します。

./configure --prefix=/usr --exec-prefix=/                              

コンフィグオプションの意味

 ・ --exec-prefix=/: このオプションは、/usr/bin ではなく /bin にバイナ
    リをインストールされるようにします。 Psmisc プログラムはブートスク
    リプトでたびたび使われるので、それらは /usr ファイルシステムがマウ
    ントされなかった時も利用できるようにしたほうがよいでしょう。
   
パッケージをコンパイルします。

make                                                                   

そしてインストールします。

make install                                                           

デフォルトでは Psmisc の pidof プログラムがインストールされません。普通
は、あとで、よりよい pidof プログラムを提供する Sysvinit パッケージをイ
ンストールするので、これは問題ではありません。 Sysvinit を使うつもりが
ないのならば、次に示すようなシンボリックリンクを作ることで、インストー
ルを完了してもよいでしょう。

ln -s killall /bin/pidof                                               

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow-4.0.3 のインストール

推定構築時間:           0.4 SBU                                        
推定必要ディスクスペース  11 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow の内容

Shadow パッケージはシステムパスワードのセキュリティを強化するために作ら
れました。

インストールされるプログラム: chage, chfn, chpasswd, chsh, dpasswd,
expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck,
grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp,
newusers, passwd, pwck, pwconv, pwunconv, sg (link to newgrp), useradd,
userdel, usermod, vigr (vipw へのリンク) 及び vipw

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow インストール依存性

Shadow は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow のインストール

login, getty と init プログラム(と、その他いくつか)は、誰がシステムに
ログインしたか、また、ログインしているかを記録するたくさんのログファイ
ルを保存しています。しかし、これらのプログラムが存在しないときにはログ
ファイルが作られないので、これを記録をしたいなら自分でファイルを作成し
なければいけません。 Shadow パッケージはこれらのファイルを適切な場所で
見つけなければいけないので、今それらを適切な許可属性で作成します。

touch /var/run/utmp /var/log/{btmp,lastlog,wtmp}                       
chmod 644 /var/run/utmp /var/log/{btmp,lastlog,wtmp}                   

/var/run/utmp ファイルは現在ログインしているユーザーをリストし、/var/
log/wtmp ファイルは誰がいつログインしたかをリストします。 /var/log/
lastlog ファイルはそれぞれのユーザーが最後にいつログインしたかを教え、/
var/log/btmp は失敗したログインをリストします。

Shadow は passwd バイナリへのパスをバイナリ自身の中に組み込みますが、こ
れを間違った方法で行ないます。 passwd バイナリが Shadow のインストール
の前に存在しないと、パッケージはバイナリが /bin/passwd に置かれることに
なるという不正確な仮定をし、しかし /usr/bin/passwd へインストールします
。これは /bin/passwd が見つからないというエラーを引き起こします。このバ
グに対処し、正しく組み込むためにダミーの passwd ファイルを作ります。

touch /usr/bin/passwd                                                  

現在の Shadow スイートは newgrp コマンドが失敗する原因となる問題を持っ
ています。以下のパッチ( Shadow の CVS コードの中にも現れます)でこの問
題を修正します。

patch -Np1 -i ../shadow-4.0.3-newgrp-fix.patch                         

それではコンパイルのために Shadow を準備します。

./configure --prefix=/usr --libdir=/usr/lib --enable-shared            

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

make                                                                   

それからインストールします。

make install                                                           

Shadow はシステムに対する認証環境の設定のために二つのファイルを使います
。これら二つの設定ファイルをインストールしましょう。

cp etc/{limits,login.access} /etc                                      

パスワード体系で、デフォルトの "crypt" 体系よりも理論的に安全な MD5 パ
スワードを有効にして、8 文字よりも長いパスワードが使えるように変更しま
す。また、ユーザーのメールボックスとして古い場所の /var/spool/mail を現
在の /var/mail に変更する必要があります。目的の場所にコピーすると同時に
、適切な設定ファイルを変更することでこれを行います。

sed -e 's%/var/spool/mail%/var/mail%' \                                
    -e 's%#MD5_CRYPT_ENAB.no%MD5_CRYPT_ENAB yes%' \                    
    etc/login.defs.linux > /etc/login.defs                             

    Note: 上述のすべての文字をタイプする時、十分に注意してください。す
    べてを手で入力するよりも、恐らくカットアンドペースする方が安全でし
    ょう。
   
vipw の man page によれば、vigr プログラムもまた存在しなければいけませ
ん。インストールプロシージャはこのプログラムを作らないので、手動でシン
ボリックリンクを作ります。

ln -s vipw /usr/sbin/vigr                                              

/bin/vipw シンボリックリンは余計で、かつ存在しないファイルを指定してい
るので、削除しましょう。

rm /bin/vipw                                                           

それでは sg プログラムをその正しい場所へ移動します。

mv /bin/sg /usr/bin                                                    

そして Shadow の動的ライブラリをより適切な場所へ移動します。

mv /usr/lib/lib{shadow,misc}.so.0* /lib                                

いくつかのパッケージは今移動されたライブラリが /usr/lib の中にあると思
うので、以下のシンボリックリンクを作ります。

ln -sf ../../lib/libshadow.so.0 /usr/lib/libshadow.so                  
ln -sf ../../lib/libmisc.so.0 /usr/lib/libmisc.so                      

Coreutils がすでに groups プログラムを /usr/bin へインストールしていま
す。望むなら、Shadow によってインストールされたものを削除できます。

rm /bin/groups                                                         

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

シャドウパスワードを設定する

このパッケージはユーザーのパスワードを変更し、ユーザーやグループを追加
、削除するようなユーティリティです。'パスワードのシャドウ化' が何を意味
するのかを説明するつもりはありません。詳細な説明は解凍した Shadow ソー
スツリーの中にある doc/HOWTO ファイルの中にあります。 Shadow サポートを
使うことを決めたら、憶えておくべきことが一つあります。パスワードを確か
める必要のあるプログラム(たとえば xdm, ftp デーモン, pop3 デーモン)は
、シャドウ化されたパスワードでうまく動くように、'シャドウ準拠' である必
要があります。

シャドウ化されたパスワードを有効にするために、以下のコマンドを実行しま
す。

/usr/sbin/pwconv                                                       

そしてシャドウ化されたグループパスワードを有効にするため、以下のコマン
ドを実行します。

/usr/sbin/grpconv                                                      

通常の環境では、まだどんなパスワードも作っていません。しかし、シャドウ
化を有効にするためにこの項に戻って来ているなら、現在のあらゆる passwd
コマンドによるユーザーパスワードと、あらゆる gpasswd コマンドによるグル
ープパスワードをリセットしたほうがよういでしょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd-1.4.1 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  0.5 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd の内容

Sysklogd パッケージはカーネルから報告されるようなシステムログメッセージ
を記録するためのプログラムを含みます。

インストールされるプログラム: klogd and syslogd

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd インストール依存性

Sysklogd は以下のパッケージに依存します: Binutils, Coreutils, GCC,
Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd のインストール

Sysklogd をコンパイルします。

make                                                                   

そしてインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

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                                                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit-2.85 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  0.9 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit の内容

Sysvinit パッケージはその他全てのプログラムの開始、実行及び終了を管理す
るためのっプログラムです。

インストールされるプログラム: halt, init, killall5, last, lastb (last
へのリンク), mesg, pidof (killall5 へのリンク), poweroff (halt へのリン
ク), reboot (halt へのリンク), runlevel, shutdown, sulogin, telinit
(init へのリンク), utmpdump 及び wall

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit インストール依存性

Sysvinit は以下のパッケージに依存します: Binutils, Coreutils, GCC,
Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit のインストール

ランレベルが変更されると(たとえば、システムを停止する時)、init は
TERM 及び KILL シグナルを、init が起動したプロセスに対して送ります。こ
の際、init は "Sending prodesses the TERM signa" と画面に表示します。こ
れは init が全ての現在実行中のプロセスへシグナルを送っているかのような
印象を与えます。この混乱を避けるため、init.c ファイルの文章を "Sending
processes started by init the TERM signal" と改変することができます。

停止メッセージを編集します。

cp src/init.c{,.backup}                                                
sed 's/Sending processes/Sending processes started by init/g' \        
    src/init.c.backup > src/init.c                                     

Sysvinit をコンパイルします。

make -C src                                                            

そしてインストールします。

make -C src install                                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit を設定する

以下のコマンドを実行して新しいファイル /etc/inittab を作ります。

cat > /etc/inittab << "EOF"                                            
# Begin /etc/inittab                                                   
                                                                       
id:3:initdefault:                                                      
                                                                       
si::sysinit:/etc/rc.d/init.d/rc sysinit                                
                                                                       
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 tty1 9600                                  
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                                                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar-1.13.25 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  10 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar の内容

Tar は、tar ファイルとして知られるアーカイブファイルへファイルを保管し
、そこから取りだすように設計されたアーカイブプログラムです。

インストールされるプログラム: rmt and tar

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar インストール依存性

Tar は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar のインストール

コンパイルのために Tar を準備します。

./configure --prefix=/usr --bindir=/bin \                              
    --libexecdir=/usr/bin                                              

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

make                                                                   

このパッケージは、正しく構築されたのを確認するために多くのチェックがで
きるテストスイートを持っています。テストをすることにした場合は、以下の
コマンドで実行可能です。

make check                                                             

そしてパッケージをインストールします。

make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux-2.12 のインストール

推定構築時間:           0.2 SBU                                        
推定必要ディスクスペース  16 MB                                        

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux の内容

Util-linux パッケージは種々雑多なものからなる数多くのユーティリティプロ
グラムを含みます。より重要なユーティリティのいくつかはマウントやアンマ
ウント、フォーマット、パーティション及びディスクドライブの管理、tty ポ
ートのオープンやカーネルメッセージの取得に使われます。

インストールされるプログラム: agetty, arch, blockdev, cal, cfdisk,
chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate,
dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt,
hexdump, hwclock, ipcrm, ipcs, isosize, kill, line, logger, look,
losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize
(rdev へのリンク), raw, rdev, readprofile, rename, renice, rev,
rootflags (rdev へのリンク), script, setfdprm, setsid, setterm, sfdisk,
swapoff (swapon へのリンク), swapon, test.bash, test.tcsh, tunelp, ul,
umount, vidmode (rdev へのリンク), whereis 及び write

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux インストール依存性

Util-linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

FHS コンパイルノート

FHS は adjtime ファイルの場所として、通常の /etc ではなく /var/lib/
hwclock を使うことを勧めています。 hwclock プログラムを FHS 準拠とする
ために、以下のコマンドを実行します。

cp hwclock/hwclock.c{,.backup}                                         
sed 's%etc/adjtime%var/lib/hwclock/adjtime%' \                         
    hwclock/hwclock.c.backup > hwclock/hwclock.c                       
mkdir -p /var/lib/hwclock                                              

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux のインストール

コンパイルのために Util-linux を準備します。

./configure                                                            

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

make HAVE_SLN=yes                                                      

make パラメーターの意味

 ・ HAVE_SLN=yes: これは sln プログラム( Glibc によってすでにインスト
    ールされた静的にリンクされた ln )が再び構築されないようにします。
   
そしてパッケージをインストールします。

make HAVE_SLN=yes install                                              

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC-2.95.3 のインストール

推定構築時間:           1.5 SBU                                        
推定必要ディスクスペース  130 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC のインストール

このパッケージはデフォルト最適化フラグ( -march 及び -mcpu オプションを
含む)を変更するとおかしなふるまいをすると知られています。ですから、た
とえば CFLAGS や CXXFLAGS のような、デフォルトの最適化を書きかえるよう
な何かの環境変数を定義したなら、GCC を構築する時に、その設定を解除する
か、修正するようお勧めします。

これは古い版の GCC で、これを第 8 章 Linux カーネルをコンパイルするとい
う目的のためにインストールします。このバージョンは、特に安定しているこ
とが必要なときに使うようカーネル開発チームによって推奨されています。
GCC の最新版は Linux カーネルのコンパイルに対して十分なテストを受けてい
ません。新しいバージョンを使ってもうまくいきそうですが、カーネル開発者
達のアドバイスに従って、ここではカーネルをコンパイルするのにこのバージ
ョンを使います。

    Note: ここでは C++ コンパイラやライブラリをインストールしません。し
    かし、それらをインストールしたい理由があるかも知れません。より詳し
    い情報は http://www.linuxfromscratch.org/blfs/view/stable/general/
    gcc2.html で見つかるでしょう。
   
この古い版の GCC を、すでに /usr にインストールされているシステムの GCC
との干渉を避けるために、非標準的なインストール場所である /opt ヘインス
トールします。

パッチをあててちょっとした調整をします。

patch -Np1 -i ../gcc-2.95.3-2.patch                                    
patch -Np1 -i ../gcc-2.95.3-no-fixinc.patch                            
patch -Np1 -i ../gcc-2.95.3-returntype-fix.patch                       
echo timestamp > gcc/cstamp-h.in                                       

GCC 文書は、ソースディレクトリとは別の構築専用ディレクトリでコンパイル
するよう勧めています。

mkdir ../gcc-2-build                                                   
cd ../gcc-2-build                                                      

コンパイラをコンパイルしてインストールします。

../gcc-2.95.3/configure --prefix=/opt/gcc-2.95.3 \                     
    --enable-shared --enable-languages=c \                             
    --enable-threads=posix                                             
make bootstrap                                                         
make install                                                           

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

改訂された chroot コマンド

これからは、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 ディレクトリを削除したくありません。本書の終
わりまでまだすこしそれを使います。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-Bootscripts-1.12 のインストール

推定構築時間:           0.1 SBU                                        
推定必要ディスクスペース  0.3 MB                                       

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-bootscripts の内容

LFS-Bootscripts パッケージは SysV init スタイルのシェルスクリプトを含み
ます。これらのスクリプトはブートの間にファイルシステムの完全さをチェッ
クする、keymap をロードする、ネットワークを設定する、シャットダウン時に
プロセスを停止するなどの様々な仕事を行ないます。

インストールされるプログラム: checkfs, cleanfs, functions, halt,
ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc,
reboot, sendsignals, setclock, swap, sysklogd 及び template

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-Bootscripts インストール依存性

LFS-Bootscritps は以下のパッケージに依存します: Bash, Coreutils

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-Bootscripts のインストール

本書ではSysV スタイルの init スクリプトを使います。ここでこれを選んだの
は、広く使われていて、私達がこれに慣れているからです。何か別のものを使
いたいなら、http://www.linuxfromscratch.org/hints/downloads/files/
bsd-init.txt で Marc Heerdink が書いた BSD スタイルの init スクリプトに
ついてのヒントを見つけることができます。さらに何かもっと根本的に違うも
のがよいなら、depinit を LFS メーリングリストで探して下さい。

BSD スタイルやその他のスタイルのスクリプトを使おうと決めたのなら、次の
章を飛ばして第 8 章進んで構いません。

ブートスクリプトをインストールします。

cp -a rc.d sysconfig /etc                                              

スクリプトに root の所有権を与えます。

chown -R root:root /etc/rc.d /etc/sysconfig                            

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

システム構成要素を設定する

さて、すべてのソフトウェアがインストールされたので、やらなければならな
いことはいくつかの設定です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

キーボードを設定する

Linux を使っている間に間違ったキーマップのロードされたキーボードを使う
ことほどイライラすることはありません。しかし、標準的な US キーボードを
使っているなら、変更しない限りは US キーマップがデフォルトですから、こ
の節を飛ばしてください。

デフォルトのキーマップを変更するには、以下のコマンドを実行して /usr/
share/kbd/keymaps/defkeymap.map.gz シンボリックリンクを作ります。

ln -s path/to/keymap /usr/share/kbd/keymaps/defkeymap.map.gz           

もちろん、path/to/keymap をお使いのキーボードのマップファイルのパスと名
前に置き換えて下さい。たとえば、ドイツ語のキーボードを使用しているなら
、i386/qwerty/nl.map.gz を使うことになります。

お使いのキーボードのレイアウトを設定するもう一つの方法は、キーマップを
カーネルの中にコンパイルしてしまうことです。つまり、メンテナンスモード
とは、ブートスクリプトでお使いのキーマップが稼働しないセットアップのこ
とですが、このようなメンテナンスモードを( 'init=/bin/sh' をパスするこ
とで)起動したときでも、キーボードはいつでも期待どおりに動くことを確実
にします。

現在のデフォルトのキーマップをカーネルソースの中に適用するために以下の
コマンドを実行します。新しいカーネルを解凍したときはいつもこのコマンド
を繰り返す必要があります。

loadkeys -m /usr/share/kbd/keymaps/defkeymap.map.gz > \                
    /usr/src/linux-2.4.22/drivers/char/defkeymap.c                     

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

root パスワードを設定する

root ユーザーのためのパスワードを決めて、以下のコマンドを実行して設定し
ます。

passwd root                                                            

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 7. システムブートスクリプトを設定する

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

この章では第 6 章でインストールしたブートスクリプトを設定します。これら
のスクリプトの大半は修正しなくてもうまく動きますが、いくつかはハードウ
ェア依存の情報を扱うために付加的な設定ファイルを設定しなくてはいけませ
ん。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

これらのスクリプトによってブートプロセスがどのように働くか?

Linux は SysVinit という名前の特別な起動手段を使います。これはランレベ
ルという概念に基礎を置きます。これはあるシステムと別のものでは全く異な
る可能性があり、あるディストリビューションでうまくいっていたからといっ
て、LFS でもうまくいくと仮定することはできません。 LFS はこれらのことを
行なう独自の方法を持っていますが、一般的に受け入れられている標準の方法
にだいたい沿っています。

SysVinit (これ以降 init と呼びます)はランレベルという機構を使って動き
ます。ランレベルには七つ( 0 から 6 まで)あり(実際にはより多くのラン
レベルがありますが、しかしこれらは特別な場合であり一般的には使われませ
ん。init の man page により詳しく説明されています)、これらの一つ一つが
コンピュータが動き始めた時に行なうべき事と対応します。デフォルトのラン
レベルは 3 です。ここによく見られるランレベルの数種類の実装についての説
明を載せます。

0: コンピュータを停止
1: シングルユーザーモード
2: マルチユーザーモード ネットワーク無し
3: マルチユーザーモード ネットワーク有り
4: カスタム化のための予約、それ以外は 3 と同じ
5: 4 と同じ、通常 GUI ログイン(X の xdm や KDE のkdm のような)に使われ
る
6: コンピュータを再起動

ランレベルを変更するために使われるコマンドは init  は対象とするランレベルです。たとえば、コンピュータを再起動す
るためには、ユーザーは init 6 というコマンドを発行します。 reboot コマ
ンドは、halt コマンドが init 0 へのエイリアスであるように、ただのエイリ
アスです。

/etc/rc.d の下には rc?.d で ? がランレベルの番号であるような数多くのデ
ィレクトリがあり、また数多くのシンボリックリンクを含む rcsysinit.d とい
うディレクトリがあります。あるものは K から始まっていて、その他のものは
S から始まり、それらの全ては頭文字に続く二つの番号を持っています。 K は
サービスを停止( kill )することを意味し、S はサービスを開始( start )
する事を意味します。その後に続く番号は 00 から 99 まででスクリプトが実
行する順番を決定し、低い番号のものが先に実行されます。

実際のスクリプトは /etc/rc.d/init.d の中にあります。これらがすべての仕
事をして、シンボリックリンクはすべてこれらを指しています。停止のリンク
と開始のリンクは /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 で実行されているか
    を知らせます。
   
起動プロセスが動く方法を自由に修正してください。(結局、これはあなた自
身の LFS システムですから。)ここで与えられたファイルは起動プロセスがど
のような良い方法で(私達が考える良い方法ですから、あなたは嫌がるかも知
れません)なされるかという一つの例に過ぎません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

setclock スクリプトを設定する

setclock スクリプトはお使いのハードウェアクロック( BIOS や CMOS クロッ
クとしても知られています)から時間を読み出し、 /etc/localtime ファイル
を使って、ハードウェアクロックが GMT に設定されていればその時間をローカ
ル時間に変換したり、ハードウェアクロックがすでにローカル時間に設定され
ていればそのまま使用したりします。ハードウェアクロックが GMT に設定され
ているか否かを自動的に検出する方法はないので、ここは自分たちで設定しな
くてはいけません。

お使いのハードウェアクロックが GMT に設定されていないなら、下の UTC 変
数の値を 0 ( zero )に変更してください。

以下のコマンドを実行して新しいファイル /etc/sysconfig/clock を作ります
。

cat > /etc/sysconfig/clock << "EOF"                                    
# Begin /etc/sysconfig/clock                                           
                                                                       
UTC=1                                                                  
                                                                       
# End /etc/sysconfig/clock                                             
EOF                                                                    

さて、http://www.linuxfromscratch.org/hints/downloads/files/time.txt に
は LFS でどのように時間を扱っているかを説明するとても良いヒントがあるの
で、見てみるといいでしょう。これはタイムゾーンや UTC, TZ 環境変数のよう
な事柄について説明しています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

私は loadkeys スクリプトが必要ですか?

第 6 章の章末でキーマップファイルを直接カーネルにコンパイルして組み込む
と決めたなら、カーネルによりキーマップが設定済みなので、厳密にいうと、
この loadkeys スクリプトを実行する必要はありません。ただし、害になるこ
とはないので、望む場合には実行するようにしておいてもかまいません。この
スクリプトを保存しておくことは、複数の違ったカーネルを実行していたり、
手もとにあるすべてのカーネルにキーマップをコンパイルしたかを覚えていな
い、あるいはコンパイルしたくないような場合には、便利かもしれません。

必要がない、あるいは loadkeys スクリプトを使わないと決めたなら、/etc/
rc.d/rcsysinit.d/S70loadkeys シンボリックリンクを削除してください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

sysklogd スクリプトを設定する

sysklogd スクリプトは syslogd プログラムを -m 0 オプションで呼び出しま
す。このオプションは syslogd がデフォルトで 20 分毎にログファイルへ書き
込む周期的なタイムスタンプを止めます。この周期的なタイムスタンプを行い
たい場合は、sysklogd スクリプトを編集し、必要に応じて変更してください。
より詳しい情報は man syslogd を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

localnet スクリプトを設定する

localnet スクリプトの一部はシステムのホスト名を設定します。これは /etc/
sysconfig/network の中で設定しなければいけません。

以下のコマンドをを実行して /etc/syscoinfg/network ファイルを作り、ホス
トネームを入力します。

echo "HOSTNAME=lfs" > /etc/sysconfig/network                           

"lfs" はコンピュータの呼称で置き換える必要があります。ここで FQDN (
Fully Qualified Domain Name: 完全修飾ドメインネーム)を入力するべきでは
ありません。その情報は後ほど /etc/hosts ファイルの中に置かれます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

/etc/hosts ファイルを作成する

ネットワークカードを設定する場合、IP アドレスと FQDN 及び /etc/hosts フ
ァイルの中で使われる可能性のあるエイリアスを決めなければいけません。文
法は

 myhost.mydomain.org aliases                               

となります。IP アドレスがプライベート IP アドレスの範囲にあるのを確かめ
なければいけません。有効な範囲は

        Class Networks                                                 
        A     10.0.0.0                                                 
        B     172.16.0.0 through 172.31.0.0                            
        C     192.168.0.0 through 192.168.255.0                        

たとえば 192.168.1.1 は IP アドレスとして妥当です。この IP 用の FQDN と
して www.linuxfromscratch.org は妥当です。

ネットワークカードを使うつもりがなくても、FQDN を決める必要があります。
これは一部のプログラムが正しく動作するために必要です。

ネットワークカードの設定を行うつもりがないなら、以下のコマンドを実行し
て /etc/hosts ファイルを作ります。

cat > /etc/hosts << "EOF"                                                
# Begin /etc/hosts (no network card version)                             
                                                                         
127.0.0.1 .mydomain.com  localhost 
                                                                         
# End /etc/hosts (no network card version)                               
EOF                                                                      

ネットワークカードが設定されているなら、以下のコマンドを実行して /etc/
hosts ファイルを作ります。

cat > /etc/hosts << "EOF"                                              
# Begin /etc/hosts (network card version)                              
                                                                       
127.0.0.1 localhost.localdomain localhost                              
192.168.1.1 .mydomain.org        
                                                                       
# End /etc/hosts (network card version)                                
EOF                                                                    

もちろん、192.168.1.1 と .mydomain.org はお使いのネ
ットワークにあわせて(または、もしこのマシンが存在するネットワークに接
続される予定であり、ネットワークまたはシステム管理者に割り当てるよう要
求された IP アドレスがあるならばそれに)変更する必要があります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ネットワークスクリプトを設定する

この節はあなたがネットワークカードを設定する場合にのみ適用します。

どんなネットワークカードもつけていないなら、おそらくネットワークカード
に関連するどんな設定ファイルも作るつもりはないでしょう。その場合には、
すべてのランレベルディレクトリ( /etc/rc.d/rc*.d )から network シンボ
リックリンクを削除しなければいけません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

デフォルトゲートウェイを設定する

ネットワークに接続するならば、このマシンに対してデフォルトゲートウェイ
を設定するといいでしょう。以下のコマンドを実行して /etc/sysconfig/
network ファイルに適切な値を加えます。

cat >> /etc/sysconfig/network << "EOF"                                 
GATEWAY=192.168.1.2                                                    
GATEWAY_IF=eth0                                                        
EOF                                                                    

GATEWAY と GATEWAY_IF に対する値はお使いのネットワーク設定に合わせて変
更する必要があります。 GATEWAY はデフォルトゲートウェイの IP アドレスを
指定し、GATEWAY_IF はデフォルトゲートウェイに向かうネットワークインター
フェイスを指定します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ネットワークインターフェイスの設定ファイルを作成する

どのインターフェイスがネットワークスクリプトによって有効にされ、または
無効にされるかは /etc/sysconfig/network-devices ディレクトリにあるファ
イルに依存します。このディレクトリには ifconfig.xyz で、xyz の部分がネ
ットワークインターフェイスの名前( eth0 や eth0:1 といった)という形式
のファイルを置きます。

この /etc/sysconfig/network-devices ディレクトリの名前を変更するか、移
動するつもりなら、/etc/sysconfig/rc ファイルを更新して新しいパスを提供
することで network_devices を更新してください。

さて、そのディレクトリの中の新しいファイルは以下のものを含んで作られま
す。以下のコマンドはサンプルの ifconfig.eth0 ファイルを作ります。

cat > /etc/sysconfig/network-devices/ifconfig.eth0 << "EOF"            
ONBOOT=yes                                                             
IP=192.168.1.1                                                         
NETMASK=255.255.255.0                                                  
BROADCAST=192.168.1.255                                                
EOF                                                                    

もちろん、これらの変数の値はそれぞれのファイルで適切な設定に合うように
変更する必要があります。もし ONBOOT 変数が yes に設定されていると、ネッ
トワークスクリプトはシステムの起動の間にそれを有効にします。もし yes 以
外に設定すると、それはネットワークスクリプトに無視され、有効になりませ
ん。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 8. LFSシステムを起動できるようにする

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

この章では、LFS システムを起動できるようにする方法を説明します。この章
では、新しい fstab ファイルを作成し、新しい LFS システムのための新しい
カーネルを構築し、さらに起動時に LFS システムが選べるように Grub ブート
ローダーをインストールします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

/etc/fstab ファイルを作成する

/etc/fstab ファイルは、パーティションがデフォルトでどこにマウントされ、
どのファイルシステムがどういう順番でチェックされねばならないか、という
ことを決定するために、いくつかのプログラムによって使われます。新しいフ
ァイルシステムテーブルを、以下のように作ります。

cat > /etc/fstab << "EOF"                                              
# Begin /etc/fstab                                                     
                                                                       
# filesystem  mount-point  fs-type  options         dump  fsck-order   
                                                                       
/dev/xxx      /            fff      defaults        1     1            
/dev/yyy      swap         swap     pri=1           0     0            
proc          /proc        proc     defaults        0     0            
devpts        /dev/pts     devpts   gid=4,mode=620  0     0            
shm           /dev/shm     tmpfs    defaults        0     0            
                                                                       
# End /etc/fstab                                                       
EOF                                                                    

もちろん、xxx と yyy, fff を、たとえば hda2 や hda5, reiserfs といった
ように、お使いのシステムに適切な値に置き換えて下さい。この表の六つのフ
ィールドについての詳しい情報については man 5 fstab を見て下さい。

reiserfs パーティションを使っているときは、そのパーティションはダンプや
チェックの必要がないので、行の最後に 1 1 とあるのを 0 0 と置き換えて下
さい。

tmpfs へのマウントポイントである /dev/shm は POSIX 共有メモリを有効にす
るために含めます。お使いのカーネルはこれを動かすために要求されるサポー
トを組み込みで構築されていなければいけません。これについては次章でより
詳しく取り上げます。現在のところ非常に少数のソフトウェアだけが、POSIX
共有メモリを実際に使っていることを注意して下さい。ですから、/dev/shm マ
ウントポイントを任意選択だとみなすことができます。より詳しい情報はカー
ネルソースツリーの中の Documentation/filesystems/tmpfs.txt を見て下さい
。

さらに、ほかにも fstab ファイルに加えたいと思う行があります。たとえば、
USB デバイスを使おうとしているなら、それを使うためのような行です。

usbfs       /proc/bus/usb  usbfs    defaults    0     0                

このオプションはもちろん、お使いのカーネルに、関連するサポートをコンパ
イルしてあるときだけ動きます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux-2.4.22 のインストール

推定構築時間:           All default options: 4.20 SBU                  
推定必要ディススペース  All default options: 181 MB                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux の内容

Linux カーネルは全ての Linux システムの中心です。これは Linux を動かし
ているものです。コンピュータの電源が付けられ Linux システムがブートする
時、真っ先にロードされる Linux ソフトウェアの一つがカーネルです。カーネ
ルはシステムのハードウェア構成、シリアルポート、パラレルポート、サウン
ドカード、ネットワークカード、IDE コントローラー、SCSI コントローラやそ
の他にも多くの物をを初期化します。簡単に言えばつまり、カーネルはソフト
ウェアが実行できるようにハードウェアを準備します。

インストールされるプログラム: the kernel 及び the kernel headers

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux インストール依存性

Linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

the kernel のインストール

カーネルの構築はいくつかの段階を踏みます。カーネルの設定、コンパイル、
そしてインストールです。本書のカーネルを設定する方法が気に入らない場合
は、その他の方法を探すのにカーネルソースツリーの中の README ファイルを
見て下さい。

以下のコマンドを実行してコンパイルの準備をします。

make mrproper                                                          

これはカーネルツリーを完全にクリーンにします。カーネルチームはこのコマ
ンドをそれぞれのカーネルのコンパイルに先立ち実行するよう勧めています。
解凍した後のソースツリーがクリーンであると当てにしてはいけません。

メニュー形式のインターフェイスを通じてカーネルを最適化します。

make menuconfig                                                        

ある状況では make oldconfig の方がより適切でしょう。より詳しい情報につ
いては README を見て下さい。

望むのなら、単純にカーネルコンフィグファイル .config をお使いのホストマ
シンから(それが利用できると仮定します)解凍した linux-2.4.22 ディレク
トリにコピーすることでカーネルの設定を飛ばしてもいいでしょう。しかしこ
の方法はお勧めしません。すべてのの設定メニューを調べて、ゼロからご自分
用のカーネル設定を作成したほうがようでしょう。

POSIX 共有メモリのサポートについては、カーネルの設定オプション "Virtual
memory file system support" が有効になっているのを確かめてください。そ
れは "File systems" メニューの中にあって通常デフォルトで有効になってい
ます

依存性を確認して依存性情報ファイルを作ります。

make CC=/opt/gcc-2.95.3/bin/gcc dep                                    

カーネルイメージをコンパイルします。

make CC=/opt/gcc-2.95.3/bin/gcc bzImage                                

モジュールとして設定されたドライバーをコンパイルします。

make CC=/opt/gcc-2.95.3/bin/gcc modules                                

カーネルモジュールを使うつもりなら、/etc/modules.conf ファイルが必要と
なります。モジュールと一般的なカーネル設定に付属する情報は、通常は
linux-2.4.22/Documentation ディレクトリの中にあるカーネル付属文章にあり
ます。 modules.conf の man page と http://www.tldp.org/HOWTO/
Kernel-HOWTO.html にあるカーネル HOWTO も情報源となります。

(訳注:カーネル付属文章の日本語訳は Linux JF Project のウェブサイト 
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/index.html などで利用
できます。)

モジュールをインストールします。

make CC=/opt/gcc-2.95.3/bin/gcc modules_install                        

文章なしでは何も完成しないので、カーネルと共にマニュアルページも構築し
ます。

make mandocs                                                           

そして全てのページをインストールします。

cp -a Documentation/man /usr/share/man/man9                            

カーネルのコンパイルは完了しましたが、作成されたファイルのいくつかはま
だソースツリーの中にあります。インストールを完成させるために、二つのフ
ァイルが /boot ディレクトリにコピーされる必要があります。

カーネルファイルへのパスは、お使いのプラットフォームに依存します。カー
ネルをインストールするため次のコマンドを実行します。

cp arch/i386/boot/bzImage /boot/lfskernel                              

System.map はカーネルのシンボルファイルです。実行中のカーネルの「カーネ
ル API に含まれる全関数の関数エントリポイント」と「カーネルデータ構造の
アドレス」のマッピング情報が、このファイルに含まれています。マップファ
イルをインストールするために以下のコマンドを実行します。

cp System.map /boot                                                    

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS システムを起動できるようにする

ピカピカの LFS システムが九分通り完成しています。最後にやるべき事はそれ
を起動できることを確かめることです。以下の説明は、たとえば IA-32 アーキ
テクチャのコンピュータ、つまり普通の PC にのみ適用できます。他のアーキ
テクチャの "ブートロード" についての情報は、これら各アーキテクチャ向け
のリソース固有の場所に置かれています。

ブートローディングは複雑な問題です。最初にいくつか注意をしておきます。
現在使用しているブートローダに慣れておいたほうがいいということ、ハード
ディスク上にある、起動可能にしたい別のオペレーティングシステムのことを
把握しておく必要があります。原因が何であるにしろ、もしお使いのコンピュ
ータが使えなく(起動できなく)なったときに、コンピュータを救助できるよ
う、緊急の起動ディスクを準備していることを確認してください。

以前、この段階への準備として Grub ブートローダソフトウェアをコンパイル
しインストールしました。ここではハードディスクの特定の場所へ Grub の特
別なファイルを書き込むという手続きを踏みます。その前に、万一に備えて
Grub 起動ディスクを作成することを強く勧めます。空のフロッピーディスクを
挿入し以下のコマンドを実行してください。

dd if=/boot/grub/stage1 of=/dev/fd0 bs=512 count=1                     
dd if=/boot/grub/stage2 of=/dev/fd0 bs=512 seek=1                      

ディスクを取りだしどこか安全なところに保管しておいて下さい。さてそれで
は grub シェルを実行します。

grub                                                                   

Grub はデバイスとパーティションに対して ( hdn,m ) という独自の命名規則
を使います。n はハードドライブの番号、m はパーティションの番号で共にゼ
ロから始まります。これはたとえば、hda1 のパーティションは Grub では (
hd0,0 ) で、hda2 は ( hd1,1 ) となります。 Linux とは対照的に、Grub は
CD-ROM ドライブをハードドライブとして考えないので、たとえば、CD を hdb
にしていて、二つ目のハードドライブを hdc にしているとすると、二つ目のハ
ードドライブは ( hd1 ) となります。

上の情報を使って、ルートパーティションに適切な呼称を決定して下さい。以
下の例ではルートパーティションが hda4 であると仮定しています。

最初に、Grub に stage{1,2} ファイルを探す場所を教えます。Grub に選択肢
を表示させるためにどこでもタブを使うことができます。

root (hd0,3)                                                           

┌──────────────────────────────────┐
│                              Warning                               │
├──────────────────────────────────┤
│以下のコマンドは現在お使いのブートローダを上書きします。望まないなら│
│、コマンドを実行しないで下さい。たとえば、あなたは MBR ( Master Boot│
│Record ) を管理するのにサードパーティのブートマネージャを使っている │
│かも知れません。この場合は恐らく、Grub を LFS パーティションの "ブー│
│トセクタ" へインストールする方が賢明かも知れません。この場合のコマン│
│ドは setup ( hd0,3 ) となります。                                   │
└──────────────────────────────────┘

それでは Grub に、自身を hda の MBR ( Master Boot Record )へインスト
ールするよう教えます。

setup (hd0)                                                            

何も問題がなければ、Grub は /boot/grub の中にそのファイルを見つけたこと
を報告するでしょう。Grub に対してする事はこれですべてです。

quit                                                                   

さて Grub のブートメニューを定義する "メニューリスト" ファイルを作らな
ければいけません。

cat > /boot/grub/menu.lst << "EOF"                                     
                                                                       
# /boot/grub/menu.lst を作成します。                                   
                                                                       
                                                                       
# デフォルトではメニューの一番最初のエントリを起動します。             
default 0                                                              
                                                                       
                                                                       
# デフォルトのエントリを起動するまでに 30 秒待ちます。                 
timeout 30                                                             
                                                                       
                                                                       
# 綺麗な色を使いましょう。                                             
color green/black light-green/black                                    
                                                                       
                                                                       
# 初めのエントリは LFS です。                                          
title LFS 5.0                                                          
root (hd0,3)                                                           
kernel /boot/lfskernel root=/dev/hda4 ro                               
EOF                                                                    

ホストディストリビューションのエントリを加えるといいでしょう。それはこ
のようになります。

cat >> /boot/grub/menu.lst << "EOF"                                    
title Red Hat                                                          
root (hd0,2)                                                           
kernel /boot/kernel-2.4.20 root=/dev/hda3 ro                           
initrd /boot/initrd-2.4.20                                             
EOF                                                                    

また、Windows とデュアルブートにしたいなら、以下のエントリがその起動を
可能にします。

cat >> /boot/grub/menu.lst << "EOF"                                    
title Windows                                                          
rootnoverify (hd0,0)                                                   
chainloader +1                                                         
EOF                                                                    

info grub で知りたいことを見つけられない場合、Grub についてのより詳しい
情報を http://www.gnu.org/software/grub で見つけることができるでしょう
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Chapter 9. 最後に

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

最後に

おめでとう!LFS システムのインストールは終了です。長い道のりだったかも
しれませんが、それだけの価値があったと思います。できたばかりでピカピカ
の Linux システムをぜひお楽しみください。

ここまでくれば、LFS システムにあるバイナリ類からすべてのデバッグシンボ
ルを取り除くことができます。あなたがプログラマでなく、ソフトウェアのデ
バッグを行なわないなら、デバッグシンボルを取り除くことで、数十メガバイ
トを回収できるとわかれば幸せになれるでしょう。この作業をすると、ソフト
ウェアをデバッグする事がまったくできなくなること以外は不便なことはなく
、デバッグの方法を知らないなら、取り除いても問題はありません。

免責事項: 次に述べるコマンドを使う人の 98% は何の問題も経験しません。し
かしこのコマンドを実行する前に LFS システムのバックアップを作っておいて
下さい。不測の結果となりお使いのシステムを使えないものにしてしまう(大
半はお使いのカーネルモジュールと動的及び共有リンクを破壊することで)ほ
んのわずかな可能性があります。これは使われるコマンドの問題というよりも
、タイプミスによって引き起こされます。

すでに述べたように、取り除くために使う --strip-debug オプションは通常の
状況では全く無害なものです。ファイルから重要な物を取り除くことはしませ
ん。通常のプログラムに対して --strip-all を使うこともまたまったく安全で
すが(ライブラリに対しては使ってはいけません。破壊されます)、しかし同
じように安全というわけではなく、それによって得られるスペースも大したこ
とはありません。ほんのわずかなディスクスペースの余裕もない場合、どうす
るかは自分で決めて下さい。その他に使える strip のオプションについては
strip の man page を参照して下さい。一般的な考えとしてはライブラリに対
しては( --strip-debug以外の) strip を実行しないで、安全を取るというこ
とです。

続行して strip を行なうつもりなのであれば、実行中の bash シェルも含めた
strip を受けるどんなバイナリも実行していないことを確かめるのに特別の注
意が必要です。それゆえ chroot 環境を抜けて、修正された chroot コマンド
を使って再び環境に入る必要があります。

logout                                                                 
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/,usr/local/}{bin,sbin,lib} -type f \            
   -exec /tools/bin/strip --strip-debug '{}' ';'                       

非常に多くのファイルが、認識できないファイルフォーマットであると報告さ
れるでしょう。これらの大半はバイナリではなくスクリプトです。これらの警
告は無視しても差し支えありません。

/etc/lfs-release ファイルを作るというのは良い考えです。このファイルがあ
ると(何かあることに質問をする場合、質問を受ける我々にとっても)どのバ
ージョンの LFS をシステムにインストールしたのかがすぐに分ります。以下の
コマンドを実行してこのファイルを作ります。

echo 5.0 > /etc/lfs-release                                            

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

ユーザリストに登録しよう

この本を終えた今、LFS ユーザの仲間に加わりたいですか。http://
linuxfromscratch.org/cgi-bin/lfscounter.cgi へ行って、あなたの名前と初
めに使った LFS のバージョンを入力して登録をしてください。

それでは、LFS を再起動しましょう。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

システムを再起動する

今や全てのソフトウェアがインストールされたので、chroot 環境から抜けてコ
ンピュータを再起動しましょう。 chroot 環境を抜ける前に、以下のコマンド
を実行して、マウントしてあった仮想ファイルシステムをすべてアンマウント
しましょう。

umount /proc                                                           
umount /dev/pts                                                        

chroot 環境を抜けます。

logout                                                                 

さらに、全てのソフトウェアがインストールされたので、最早 /tools ディレ
クトリは必要ありません。削除しても構いません。これは Tcl や Expect,
toolchain テストを実行するために使われた DejaGnu などの暫定的なコピーも
削除することになるので、後ほどこれらのプログラムを使う必要があるならば
、再びコンパイルして再インストールする必要があります。

また /sources の内容を /usr/src/packages や、似たような所へ移しディレク
トリを消してしまっても(あるいは/sources の内容を CD に焼いているなら、
単純に削除してしまっても)いいでしょう。

再起動する前に、LFS パーティション自身をアンマウントします。

umount $LFS                                                            

もし複数のパーティションを作ると決めていたら、次のようにして、$LFS をア
ンマウントする前にその他のパーテションをアンマウントする必要があります
。

umount $LFS/usr                                                        
umount $LFS/home                                                       
umount $LFS                                                            

それでは次のようなコマンドを実行することでシステムを再起動できます。

/sbin/shutdown -r now                                                  

前に述べたように Grub ブートローダーが設定されているなら、デフォルトの
メニューは自動的に LFS 5.0 を起動するように設定されているはずです。

再起動すると、LFS システムは使える状態になり、追加したいソフトウェアを
加えられるようになります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

まだ他に?

LFS についてこの本を読んでいただいたことに感謝します。この本が役立つよ
うに願っています。

LFS システムをインストールし終えたいま、"さらにまだ何か?" と思うかもし
れません。その質問に答えるために、情報源のリストを作成しました。

 ・ Beyond Linux From Scratch
   
    Beyond Linux From Scratch という本では LFS 本の範囲を越えて幅広いソ
    フトウェアのインストールのプロセスについて扱っています。BLFS プロジ
    ェクトは http://www.linuxfromscratch.org/blfs/ にあります。
   
 ・ LFS Hints
   
    LFS Hints は LFS コミュニティのボランティアによって投稿された、コン
    パクトにまとまった利用価値たかい文書の集まりです。Hints は http://
    www.linuxfromscratch.org/hints/list.html で利用できます。
   
 ・ Mailing lists
   
    援助が必要なら、登録したほうがよい LFS メーリングリストがいくつかあ
    ります。より詳しくは第 1 章ーメーリングリストを見て下さい。
   
 ・ The Linux Documentation Project
   
    Linux Documentation Project の目的は、すべての Linux 文章の収集です
    。LDP は、HOWTO 類やガイド、そして man ページの莫大な収集が特徴です
    。http://www.tldp.org/ にあります。
   
IV. 第四部ー付録

Table of Contents
A. パッケージの説明と依存性
B. プログラムとライブラリファイルの目録

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Appendix A. パッケージの説明と依存性

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

はじめに

この付録では本文でインストールされた全てのパッケージについて、以下の点
についての説明します。

 ・ パッケージの公式ダウンロード場所
   
 ・ パッケージの内容
   
 ・ パッケージに含まれるそれぞれのプログラムが何をするか
   
 ・ パッケージをコンパイルするのに何が必要か
   
これらのパッケージについての情報の大半は(特にその説明は)それぞれのパ
ッケージの man page から来ています。 man page を全て含めることはしませ
んが、そのプログラムが何をするかを理解するのに重要となる要点を記載しま
す。プログラムの詳しい説明全体を知るためには、その man page か info
page を参照して下さい。

いくつかのプログラムは他のものよりもより詳しく説明されています。もし以
下の説明に何か付け加えるべきことがあると思ったら、どうぞ恥ずかしがらず
にメーリングリストに投函してください。私達は、このリストがインストール
される全てのパッケージについての詳細な説明を持つようにするつもりですが
、助けなしでは実現できません。

現在のところパッケージが何をするかという事だけで、なぜそれがインストー
ルされる必要があるということは説明されないという事に注意してください。
これは恐らく後ほど追加されるでしょう。

この本の中でインストールされる全てのパッケージについてのインストール依
存性もまたリストされています。このリストは、パッケージがインストールさ
れるのに、どのパッケージからのどのプログラムが必要とされるかを含みます
。

またここには実行依存性、つまりパッケージのプログラムを使うのにどんなプ
ログラムが必要かという説明はなく、ただコンパイルするのに必要となるもの
だけが載せてあります。

依存性リストは、時あるごとに現在使われているパッケージのバージョンに比
べて古くなることがあります。依存性の確認はちょっとした手間がかかり、そ
れゆえパッケージのアップデートは少し遅れます。しかしパッケージのマイナ
ーアップデートではインストール依存性がまったく変わらないというのがよく
ある事で、大半の場合には通用するでしょう。私達がメジャーアップデートを
公開したときには、依存性の確認も確かめています。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf

インストールの説明についてはthe Section called Autoconf-2.57 のインスト
ール in Chapter 6という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Autoconf (2.57): 
ftp://ftp.gnu.org/gnu/autoconf/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf の内容

Autoconf はソースコードを自動的に最適化するシェルスクリプトを生成します
。

インストールされるプログラム: autoconf, autoheader,
autom4te,autoreconf, autoscan, autoupdate and ifnames

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

Autoconf はソフトウェアのソースコードパッケージを様々な Unix タイプのシ
ステムへ最適化させるシェルスクリプトを自動的に生成するためのツールです
。Autoconf が生成する最適化スクリプトは独立しており、実行するのに
Autoconf プログラムを必要としません。

autoheader は C 言語の #define 宣言の使用を最適化するためのテンプレート
ファイルを作成するツールです。

autom4te は M4 マクロプロセッサーのための wrapper です。

autoreconf は autoconf が生成した最適化スクリプトが沢山あるときに役に立
ちます。このプログラムは autoconf と autoheader を繰り返し実行し、
autoconf 最適化スクリプトと与えられたディレクトリツリーの中の最適化ヘッ
ダテンプレートを(適切に)作り直します。

autoscan はソフトウェアパッケージの configure.in ファイルを作るのに役に
立ちえます。これはディレクトリツリーの中にあるソースファイルを検査して
よくある移植性の問題がないかを探し、パッケージの仮 configure.in ファイ
ルとして働く configure.scan ファイルを作ります。

autoupdate は、古い名前で autoconf マクロを呼び出そうとする
configure.in ファイルを修正し、現在のマクロ名を使えるようにします。

ifnames はソフトウェアパッケージの configure.in ファイルを書いている時
に役に立つことがあります。これは C プリプロセッサの条件文の中で使われる
識別子を表示します。もしパッケージが既に移植性を持つように設定されてい
ると、このプログラムはどの configure をチェックする必要があるのか決定す
るのに役に立ちます。これは autoconf によって生成された configure.in フ
ァイルの中に空白を書き入れることができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Autoconf インストール依存性

Autoconf は以下のパッケージに依存します: Bash, Coreutils, Diffutils,
Grep,M4, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake

インストールの説明については the Section called Automake-1.7.6 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Automake (1.7.6): 
ftp://ftp.gnu.org/gnu/automake/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake の内容

Automake は Autoconf で使用されることを意図された Makefile.in を生成し
ます。

インストールされるプログラム: acinstall, aclocal,aclocal-1.7, automake,
automake-1.7, compile, config.guess, config.sub,depcomp, elisp-comp,
install-sh, mdate-sh, missing, mkinstalldirs, py-compile,ylwrap

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

acinstall は aclocal 形式の M4 ファイルをインストールするスクリプトです
。

aclocal は configure.in ファイルに基づいて aclocal.m4 ファイルを生成し
ます。

automake は Makefile.am と呼ばれるファイル郡から自動的に Makefile.in を
生成するためのツールです。パッケージのすべての Makefile.in ファイルを生
成するために、ディレクトリの一番上でこのプログラムを実行します。これは
configure.in ファイル郡を調べることで自動的にそれぞれ適切な Makefile.am
を探し、対応する Makefile.in を生成します。

compile はコンパイラのための wrapper です。

config.guess は与えられた構築、ホスト、または目的となるアーキテクチャに
対して、正準な三つ組を推測しようとするスクリプトです。

config.sub は最適化を確認するスクリプトのサブルーチンです。

depcomp は望みの出力だけでなく依存性の情報も生成するためにプログラムを
コンパイルするスクリプトです。

elisp-comp は Emacs Lisp コードをバイトコンパイルします。

install-sh はプログラムやスクリプト、またはデータファイルをインストール
するスクリプトです。

mdate-sh はファイルやディレクトリの修正時間を表示するスクリプトです。

missing はインストールの間に存在しなかった GNU プログラムに対し一般的な
ダミーとして振舞うスクリプトです。

mkinstalldirs はディレクトリツリーを作るスクリプトです。

py-compile は Python プログラムをコンパイルします。

ylwrap は lex と yacc のための wrapper です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Automake インストール依存性

Automake は以下のパッケージに依存します: Autoconf, Bash,
Coreutils,Diffutils, Grep, M4, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash

インストールの説明については the Section called Bash-2.05b のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Bash (2.05b): 
ftp://ftp.gnu.org/gnu/bash/

Bash Patch:
http://www.linuxfromscratch.org/patches/lfs/5.0/bash-2.05b-2.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash の内容

Bash は Bourne-Again シェルという、UNIX システムで広く使われているコマ
ンドインタープリターです。Bash プログラムは標準入力(キーボード)からの
入力を読み込みます。ユーザーが何かをタイプするとプログラムは何がタイプ
されたかを評価し、それについてプラグラムの実行のような事を行ないます。

インストールされるプログラム: bash, sh (link to bash) andbashbug

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

Bash は広く普及したコマンドインタープリターです。これは与えられたコマン
ドラインに対してそれを実行する前にあらゆる種類の拡張と代行を行い、それ
がこのインタープリターを強力なツールにしています。

bashbug はユーザーが bash に関するバグの報告を標準的な書式で構成しメー
ルするのを助けるスクリプトです。

sh は bash プログラムに対するシンボリックリンクです。sh として呼び出さ
れたとき、bash は POSIX 規格に従いつつ可能な限り sh の歴史的な版の起動
動作を真似しようとします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bash インストール依存性

Bash は以下のパッケージに依存します: Binutils, Coreutils, Diffutils,
Gawk,GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils

インストールの説明については the Section called Binutils-2.14 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Binutils (2.14): 
ftp://ftp.gnu.org/gnu/binutils/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils の内容

Binutils はオブジェクトファイルとアーカイブで働くリンカ、アセンブラ、そ
の他のツールを含むソフトウェア開発ツールの集まりです。

インストールされるプログラム: addr2line, ar, as, c++filt,gprof, ld, nm,
objcopy, objdump, ranlib, readelf, size, strings 及び strip

インストールされるライブラリ: libiberty.a, libbfd.[a,so] andlibopcodes.
[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

addr2line はプログラムアドレスをファイル名と行番号に翻訳します。アドレ
スと実行ファイルの名前が与えられると、それは実行ファイルの中のデバッグ
情報を使ってどのソースファイルと行番号がアドレスに対応するのかを探し出
します。

ar はアーカイブを作り、修正し、またそこからファイルを引き出します。アー
カイブは他のファイルを含んだ一つのファイルで元々の個別のファイル(アーカ
イブのメンバーと呼ばれる)を再び取り出すことができる構造をしています。

as はアセンブラです。これは gcc からの出力をオブジェクトファイルにアセ
ンブルします。

c++filt はリンカによって使われ、関数名の衝突を避けるために台なし (
mangle ) にされた C++ と Java のシンボル名を元に戻す ( demangle ) ため
に使われます。

gprof はグラフ呼び出しプロファイル情報を表示します。

ld はリンカです。これは数多くのオブジェクトとアーカイブファイルを一つの
ファイルに結合し、それらのデータを再配置し、シンボルへの参照を結びつけ
ます。

nm は与えられたオブジェクトファイルの中に存在するシンボルをリストします
。

objcopy は一種類のオブジェクトファイルを他の種類に翻訳するのに使われま
す。

objdump は与えられたオブジェクトファイルについての情報を表示し、オプシ
ョンによってどの特定の情報を表示するかを制御します。表示される情報はほ
とんどコンパイルのツールを作っているプログラマにだけ有用なものでしょう
。

ranlib はアーカイブの内容の目録を生成し、それをアーカイブの中に保管しま
す。この目録はリロケータブルなオブジェクトファイルであるアーカイブのす
べてのメンバーによって定義されるシンボルのリストです。

readelf は elf タイプのバイナリについての情報を表示します。

size は与えられたオブジェクトファイルについて、セクションと包括的な全体
のサイズをリストします。

strings は与えられたそれぞれのファイルについて、少なくとも特定の長さ(デ
フォルトでは4)の表示可能な文字の一続きを出力します。オブジェクトファイ
ルに対してはデフォルトで初期化と読み出しのセクションからの文字列のみを
表示します。その他の種類のファイルについてはそのファイル全体を調べます
。

strip はオブジェクトファイルからシンボルを捨てます。

libiberty は様々な GNU プログラムに使われる getopt や obstack,
strerror, strtol, strtoul などのルーチンを含みます。

libbfd はバイナリファイルデスクリプタのライブラリです。

libopcodes は opcode を扱うためのライブラリです。これは objdump などの
ユーティリティを構築するために使われます。 Opcode は "人に読める文章"
版のプロセッサへの説明です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Binutils インストール依存性

Binutils は以下のパッケージに依存します: Bash, Coreutils, Diffutils,
GCC, Gettext,Glibc, Grep, Make, Perl, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison

インストールの説明については the Section called Bison-1.875 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Bison (1.875): 
ftp://ftp.gnu.org/gnu/bison/

Bison に付属するパッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
bison-1.875-attribute.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison の内容

Bison は yacc の代わりとなる構文解析ジェネレーターです。Bison はテキス
トファイルの構造を検査するプログラムを生成します。

インストールされるプログラム: bison 及び yacc

インストールされるライブラリ: liby.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

Bison は決められた規則の連続から、テキストファイルの構造を検査するプロ
グラムを生成します。 Bison は yacc (Yet Another Compiler Compiler:コン
パイラのさらにまたコンパイラ)の代理です。

yacc は bison のための wrapper で、bison の変わりにまだ yacc を呼び出す
プログラムためにあります。これは bison を -y オプションで呼び出します。

liby.a は Yacc 互換の yyerror と基本的な関数の実装を含む yacc ライブラ
リです。このライブラリは普通あまり役に立ちませんが、POSIX はこれを要求
します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bison インストール依存性

Bison は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils,GCC, Gettext, Glibc, Grep, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2

インストールの説明については the Section called Bzip2-1.0.2 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Bzip2 (1.0.2): 
http://sources.redhat.com/bzip2/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 の内容

Bzip2 は一般的に従来の gzip が行なうよりもよりよい圧縮を達成するブロッ
クソート型のファイルコンプレッサーです。

インストールされるプログラム: bunzip2 (link to bzip2), bzcat (bzip2 へ
のリンク), bzcmp, bzdiff, bzegrep, bzfgrep, bzgrep, bzip2,
bzip2recover, bzless 及び bzmore

インストールされるライブラリ: libbz2.a, libbz2.so (libbz2.so.1.0 へのリ
ンク), libbz2.so.1.0 (libbz2.so.1.0.2へのリンク) 及び libbz2.so.1.0.2

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

bunzip2 は bzip 圧縮されたファイルを解凍します。

bzcat は標準出力へ解凍します。

bzcmp は bzip 圧縮されたファイルに対して cmp を実行します。

bzdiff は bzip 圧縮されたファイルに対して diff を実行します。

bzgrep と friends は bzip 圧縮されたファイルに対して grep を実行します
。

bzip2 は Huffman コーディングによる Burrows-Wheeler ブロックソート型テ
キスト圧縮アルゴリズムを使ってファイルを圧縮します。この圧縮比は一般的
に、gzip のような LZ77/LZ78 を使った伝統的な圧縮よりもかなり良くなりま
す。

bzip2recover は破損した bzip2 ファイルを復元しようと試みます。

bzless は bzip 圧縮されたファイルに対して less を実行します。

vzmore は bzip 圧縮されたファイルに対して more を実行します。

libbz2* は Burrows-Wheeler アルゴリズムを使った、無駄のないブロックソー
ト型データ圧縮を実装したライブラリです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Bzip2 インストール依存性

Bzip2 は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils

インストールの説明については the Section called Coreutils-5.0 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Coreutils (5.0):
ftp://ftp.gnu.org/gnu/coreutils/

Coreutils ホストネームパッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
coreutils-5.0-hostname-2.patch

Coreutils Uname パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
coreutils-5.0-uname.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils の内容

Coreutils パッケージは基本的なシェルユーティリティの一揃い全部を含みま
す。

インストールされるプログラム: basename, cat, 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, hostname, id, install, join, kill, link, ln, logname, ls,
md5sum, mkdir, mkfifo, mknod, mv, nice, nl, nohup, od, paste, pathchk,
pinky, pr, printenv, printf, ptx, pwd, readlink, rm, rmdir, seq,
sha1sum, shred, sleep, sort, split, stat, stty, su, sum, sync, tac,
tail, tee, test, touch, tr, true, tsort, tty, uname, unexpand, uniq,
unlink, uptime, users, vdir, wc, who, whoami 及び yes

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

basename は与えられたファイル名からあらゆるパスと与えられたサフィックス
を破棄します。

cat はファイルを標準出力へ結びつけます。

chgrp は与えられたそれぞれのファイルについてそのグループ所有権を与えら
れたグループに変更します。グループは名前と数字による ID のどちらででも
与えることができます。

chmod は与えられたそれぞれのファイルについてその許可を与えられたモード
に変更します。モードは変更したいシンボル表記と新しい許可を表す8進数のど
ちらででも与えることができます。

chown は与えられたそれぞれのファイルについてユーザーとグループの所有権
を与えられたユーザー:グループの組に変更します。

chroot は特定のディレクトリを /与えられたコマンドを実行します。与えられ
るコマンドは対話式のシェルでも可能です。ほとんどのシステムで root だけ
がこれを実行できます。

cksum は特定のファイルそれぞれについて CRC チェックサムとバイトカウント
を表示します。

comm は保管された二つのファイルを比較し、固有の行と共通の行を三列にして
出力します。

cp はファイルを複製します。

csplit は与えられたファイルを、与えられたパターンか行数に従って新しいい
くつかのファイルに分割し、それぞれの新しいファイルのバイトカウントを出
力します。

cut は与えられたフィールドか位置に従って、選び出した行の部分を表示しま
す。

date は与えられた書式で現在時刻を表示するか、またはシステムの日付を設定
します。

dd は与えられたブロックサイズとカウント数を使ってファイルを複製し、また
任意でそれに対する転換を行います。

df はマウントされた全てのファイルシステムか、または与えられたファイルが
あるファイルシステムだけについて、利用できるディスクスペースの量(と、
使われている量)を報告します。

dir は less と同じです。

dircolors は LS_COLOR 環境変数を設定するコマンドを出力し、ls によって使
われる色分けを変更するために使われます。

dirname 与えられたファイルからディレクトリでないサフィックスを取り除き
ます。

du は現在のディレクトリに使われている、与えられたディレクトリのサブディ
レクトリをすべて含むそれぞれの、または与えられたファイルそれぞれが使用
しているディスクスペースの量を報告します。

echo は与えられた文字列を表示します。

env は修正された環境でコマンドを実行します。

expand はタブをスペースに変換します。

expr は表記を評価します。

factor はすべての特定された整数の素数を表示します。

false はうまく行かずになにもしません。これはいつも失敗を示すステータス
コードと共に終了します。

fmt は与えられたファイルの中の段落を再整形します。

fold は与えられたファイルの中の特定の行を wrap します。

groups はユーザーが所属しているグループを報告します。

head は与えられたファイルそれぞれについて最初の10行を表示します。

hostid はホストの数字(16進数で)による識別子を報告します。

hostname はホストの名前を報告するか、設定します。

id は実際のユーザー ID やグループ ID, 現在、または与えられたユーザーの
所属するグループを報告します。

install はファイルの許可モードと、もし可能であるならばその所有権とグル
ープを設定している間にそのファイルをコピーします。

join は同一の結合フィールドを持つ二つのファイルからの行を結合します。

kill は与えられたプロセスを終了させます。

link は与えられたファイルに対して与えられた名前でハードリンクを作成しま
す。

ln はファイル間でハードリンクかまたはソフトリンクを作ります。

logname は現在のユーザーのログイン名を報告します。

ls は与えられたディレクトリそれぞれの内容をリストします。これはデフォル
トでファイルと差部ディレクトリをアルファベット順に並べます。

md5sum は MD5 チェックサムを報告するか、または確認します。

mkdir は与えられた名前でディレクトリを作ります。

mkfifo は与えられた名前で FIFO を作ります。

mknod は与えられた名前でデバイスノードを作ります。デバイスノードはキャ
ラクタースペシャルファイルかブロックスペシャルファイル、または FIFO で
す。

mv はファイルまたはディレクトリを移動させるか、または名前の変更をします
。

nice はプログラムを修正された優先順位で実行します。

nl は与えられたファイルの行数を数えます。

nohup はその出力をログファイルへ転送しながら、ハングアップに影響されな
いコマンドを実行します。

od は8進数やその他の形式でファイルをダンプします。

paste は与えられたファイルを併合し、行毎にタブで分け隣り合って対応させ
ながら結合します。

pathchk はファイル名が有効かまたは移動可能かどうかを調べます。

pinky は軽い指さしプログラムです。これは与えられたユーザーについての情
報を報告します。

pr は印刷のためにファイルを番号付けし、縦割りします。

printenv は環境を表示します

printf は与えられた引数を与えられた形式に従って表示し、C の printf 関数
に良く似ています。

ptx は与えられたファイルの内容からその文章の中にあるそれぞれのキーワー
ドによって置換された目録を生成します。

pwd は現在のディレクトリの名前を報告します。

readlink は与えられたシンボリックリンクの値を報告します。

rm はファイルやディレクトリを削除します。

rmdir はもし空であればディレクトリを削除します。

seq は与えられた範囲の中で与えられた増分の連続した数字を表示します。

sha1sum は 160 ビットの SHA1 チェックサムを表示するかチェックします。

shared は与えられたファイルを妙なパターンで繰り返し上書きし、データを復
元することを不可能にします。

sleep は与えられた時間の間停止します。

sort は与えられたファイルから行を検索します。

split は与えられたファイルを行のサイズまたは行数によって細かく分割しま
す。

stty はターミナルラインの設定を設定するか報告します。

su は代理のユーザーとグループ ID でシェルを実行します。

sum は与えられたファイルのチェックサムとブロックを表示します。

sync はファイルシステムのバッファを洗い流します。これは変更されたブロッ
クをディスクに書き込みスーパーブロックを更新することを強制します。

tac は与えられたファイルをさかさまに出力します。

tail は与えられたそれぞれのファイルの最後の10行(又は与えられた行数)を表
示します。

tee は標準入力からの入力を読み取り、標準出力と与えられたファイルの両方
に書き込みます。

test はファイルタイプの値を比較し、調査します。

touch はファイルスタンプを変更し、与えられたファイルのアクセスと修正時
間を現在の時間に設定します。存在しないファイルは長さ0で作られます。

tr は標準入力から与えられた文字を翻訳し、絞り出し、削除します。

true はうまく行ってなにもしません。これはいつも成功を示すステータスコー
ドと共に終了します。

tsort は位相幾何学的な検索を行います。これは与えられたファイルの中の不
完全な順序に従って完全に順序だったリストを書き出します。

tty は標準入力と接続されたターミナルのファイルネームを報告します。

uname はシステムの情報を報告します。

unexpand はスペースをタブに変換します。

uniq は連続的に同一の行以外を削除します。

unlink は与えられたファイルを削除します。

uptime はシステムが今まで実行されている時間と何人のユーザーがログインし
たか、およびシステム負荷の平均を報告します。

users は現在ログインしているユーザーの名前を報告します。

vdir は ls -l と同じです。

wc は与えられたそれぞれのファイルについて行数と単語数、およびバイト数を
報告し、また一つ以上のファイルが与えられたときには総行数を報告します。

who は誰がログインしているかを報告します。

whoami は現在有効なユーザー ID に対応するユーザー名を報告します。

yse は 'y' または与えられた文字列を、終了されるまで繰り返し出力します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Coreutils インストール依存性

Coreutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu

インストールの説明については the Section called DejaGnu-1.4.3 のインス
トール in Chapter 5 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

DejaGnu (1.4.3):
ftp://ftp.gnu.org/gnu/dejagnu/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu の内容

DejaGnu パッケージは他のプログラムをテストするためのフレームワークを含
みます。

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

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

runtest は適切な expect シェルを探して DejaGnu を実行する wrapper スク
リプトです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

DejaGnu インストール依存性

Dejagnu は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils

インストールの説明については the Section called Diffutils-2.8.1 のイン
ストール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Diffutils (2.8.1):
ftp://ftp.gnu.org/gnu/diffutils/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils の内容

このパッケージからのプログラムは二つのファイルやディレクトリの違いを教
えてくれます。最も一般的な使いかたはソフトウェアパッチを作ることです。

インストールされるプログラム: cmp, diff, diff3 and sdiff

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

cmp は二つのファイルを比較して異なっているかどうかと、どのバイトが異な
っているかを報告します。

diff は二つのファイルかディレクトリを比較してファイルの中のどの行が異な
っているかを報告します。

diff3 な三つのファイルを行毎に比較します。

sdiff は二つのファイルを併合し結果を対話的に出力します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Diffutils インストール依存性

Diffutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs

インストールの説明については the Section called E2fsprogs-1.34 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

E2fsprogs (1.34):
ftp://download.sourceforge.net/pub/sourceforge/e2fsprogs/
http://download.sourceforge.net/e2fsprogs/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs の内容

E2fsprogs は ext2 ファイルシステムで使用するファイルシステムユーティリ
ティを提供します。これはまたジャーナリングをサポートした ext3 ファイル
システムもサポートします。

インストールされるプログラム: badblocks, blkid, chattr, compile_et,
debugfs, dumpe2fs, e2fsck, e2image, e2label, findfs, fsck, fsck.ext2,
fsck.ext3, logsave, lsattr, mk_cmds, mke2fs, mkfs.ext2, mkfs.ext3,
mklost+found, resize2fs, tune2fs 及び uuidgen.

インストールされるライブラリ: libblkid.[a,so], libcom_err.[a,so],
libe2p.[a,so], libext2fs.[a,so], libss.[a,so] 及び libuuid.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

badblocks は破損したブロックがないかデバイス(通常ディスクパーティショ
ン)を検査します。

blkid はブロックデバイスの属性を定めたり表示するコマンドラインユーティ
リティです。

chattr はセカンドエクステンデッド(ext2)ファイルシステム上のファイルの属
性を変更します。

compile_et はエラーテーブルコンパイラーです。これはエラーコードネームと
メッセージのテーブルを com_err ライブラリでの使用に適した C のソースフ
ァイルに変換します。

debugfs はファイルシステムデバッガーです。これは ext2 ファイルシステム
の状態を検査し変更するために使われます。

dumpe2fsは与えられたデバイス上にあるファイルシステムについてのスーパー
ブロックとブロックグループインフォメーションを表示します。

e2fsck はセカンドエクステンデッド(ext2)ファイルシステムと、また ext3 フ
ァイルシステムについて検査しまた任意で修復するのに使われます。

e2image は非常に重要な ext2 ファイルシステムのデータをファイルに保存す
るために使われます。

e2label は与えられたデバイスにある ext2 ファイルシステムのファイルシス
テムラベルを表示したり変更したりします。

findfs はファイルシステムをラベルか UUID にしたがって検索します。

fsck はファイルシステムを検査し、任意で修復するために使われます。デフォ
ルトでは /etc/fstab にリストされたファイルシステムを検査します。

logsave はコマンドの出力をログファイルに保存します。

ladttr はセカンドエクステンデッドファイルシステム上のファイルの属性をリ
ストします。

mk_cmds はコマンド名とヘルプメッセージののテーブルを libss サブシステム
ライブラリでの使用に適した C ソースファイルに変換します。

mke2fs は与えられたデバイス上にセカンドエクステンデッドファイルシステム
を作るために使われます。

mklost+found はセカンドエクステンデッドファイルシステム上に lost+found
ディレクトリを作るために使われます。これは e2fsck の仕事を軽減するため
にディスクブロックをこのディレクトリへあらかじめ配置します。

resize2fs は ext2 ファイルシステムを大きくしたり縮めたりするのに使うこ
とができます。

tune2fs はセカンドエクステンデッドファイルシステム上の調節できるファイ
ルシステムパラメーターを調整します。

uuidgen は新しい普遍的固有識別子(UUID:unversally unique idenrifiers)を
作ります。それぞれの新しい UUID は、過去、未来、ローカルシステムやその
他のシステムすべてで作られるすべての UUID において、ほとんど固有のもの
であるであると考えられます。

libblkid はデバイスの識別とトークンを引き出すためのルーチンを含みます。

libcom_err は一般的なエラーを表示するルーチンです。

libe2p は dumpe2fs, chattr, および lasttr に使われます。

libext2fs はユーザーレベルプログラムが ext2 ファイルシステムを操作でき
るようにするルーチンを含みます。

libss は debugfs によって使われます。

libuuid はローカルシステム以外にも通用できるであろうオブジェクトのため
の固有識別子を生成するルーチンを含みます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

E2fsprogs インストール依存性

E2fsprogs は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed

インストールの説明については the Section called Ed-0.2 のインストール
in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Ed (0.2): 
ftp://ftp.gnu.org/gnu/ed/

Ed Mkstemp パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/ed-0.2-mkstemp.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed の内容

GNU Ed は 8 ビット対応で POSIX 準拠のラインエディターです。

インストールされるプログラム: ed and red (ed へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

ed は行型(line-oriented)のテキストエディタです。これはテキストファイル
を作成、表示、修正、またその他の操作をするために使われます。

red は制限付きの ed です。これは現在のディレクトリにあるファイルだけを
編集でき、またシェルコマンドを実行できません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ed インストール依存性

Ed は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect

インストールの説明については the Section called Expect-5.39.0 のインス
トール in Chapter 5 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Expect (5.39.0):
http://expect.nist.gov/src/

Expect Spawn パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
expect-5.39.0-spawn.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect の内容

Expect パッケージは他の対話形式プログラムとプログラムされた問答を行なう
プログラムを提供します。

インストールされるプログラム: expect

インストールされるライブラリ: libexpect5.39.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

Expect はスクリプトに従って他の対話式プログラムと "会話" します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Expect インストール依存性

Expect は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed, Tcl.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File

インストールの説明については the Section called File-4.04 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

File (4.04): 
ftp://ftp.gw.com/mirrors/pub/unix/file/

代替のダウンロード場所:
ftp://gaosu.rave.org/pub/linux/lfs/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File の内容

File はファイルタイプを決定するために使われるユーティリティです。

インストールされるプログラム: file

インストールされるライブラリ: libmagic.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

file は与えられたそれぞれのファイルを分類しようと試みます。これはファイ
ルシステムテスト、マジックナンバーテスト、言語テストといったいくつかの
テストを行います。初めに成功したテストが結果を決定します。

libmagic はファイルプログラムに使われるマジックナンバー評価のルーチンを
含みます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

File インストール依存性

File は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed, Zlib.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils

インストールの説明については the Section called Findutils-4.1.20 のイン
ストール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Findutils (4.1.20):
ftp://alpha.gnu.org/gnu/findutils/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils の内容

Findutils パッケージは、オンザフライ方式(実況的にディレクトリを再帰検
索して仕様に合ったファイルを表示する方式)とデータベースを通して検索す
る方式の両方のファイルを探すプログラムを含みます。

インストールされるプログラム: bigram, code, find, frcode, locate,
updatedb 及び xargs

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

bigram は配置データベースを生成するのに以前使われていました。

code は配置データベースを生成するのに以前使われていました。これは
frcode の先祖です。

find は特定された基準に一致するファイルを探して与えられたディレクトリツ
リーを検索します。

frcode はファイル名のリストを圧縮するために updatedb に呼び出されます。
これは前方圧縮を使い、データベースのサイズを4から5の因数で小さくします
。

locate はファイル名のデータベースを検索し、与えられた文字列を含むかパタ
ーンに一致する名前を報告します。

updatedb は配置データベースを更新します。これはファイルシステム全体(指
定のない限りは現在マウントされている他のファイルシステムも含む)を調べ
、データベースの中に見つけたすべての名前を出力します。

xargs は与えられたコマンドをファイルのリストへ適用するために使われます
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Findutils インストール依存性

Findutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex

インストールの説明については the Section called Flex-2.5.4a のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Flex (2.5.4a): 
ftp://ftp.gnu.org/non-gnu/flex/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex の内容

Flex パッケージはテキストの中のパターンを見つけるためのプログラムを生成
します。

インストールされるプログラム: flex, flex++ (flex へのリンク) 及び lex

インストールされるライブラリ: libfl.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

flex は文書中のパターンを認識するプログラムを生成するためのツールです。
パターン認識は多くのアプリケーションで役に立ちます。何を探すかという規
則の集まりから flex はそのパターンを探すプログラムを作ります。flex を使
う理由は、パターンの規則を特定することが実際のパターン検索プログラムを
書くよりもはるかに容易だからです。

flex++ はもっぱら C++ の検索で使われる flex のバージョンを呼びかけます
。

libfl.a は flex のライブラリです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Flex インストール依存性

Flex は以下のパッケージに依存します: Bash, Binutils, Bison, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk

インストールの説明については the Section called Gawk-3.1.3 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Gawk (3.1.3): 
ftp://ftp.gnu.org/pub/gnu/gawk/

Gawk Libexecdir パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gawk-3.1.3-libexecdir.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk の内容

Gawk はテキストファイルを操作するのに使われる awk の実装です。

インストールされるプログラム: awk (gawk へのリンク), gawk, gawk-3.1.3,
grcat, igawk, pgawk, pgawk-3.1.3 及び pwcat

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

gawk はテキストファイルを操作するためのプログラムです。これは awk の
GNU による実装です。

grcat はグループデータベース /etc/group をダンプします。

igawk は gawk にファイルを含める能力を与えます。

pgawk は gawk のプロファイリング版です。

pwcat はパスワードデータベース /etc/passwd をダンプします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gawk インストール依存性

Gawk は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC

インストールの説明については the Section called GCC-3.3.1 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダロード場所

GCC (3.3.1): 
ftp://ftp.gnu.org/pub/gnu/gcc/

GCC No-Fixincludes パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-3.3.1-no_fixincludes-2.patch

GCC Specs パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/gcc-3.3.1-specs-2.patch

GCC Suppress-Libiberty パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-3.3.1-suppress-libiberty.patch

GCC-2 (2.95.3): 
ftp://ftp.gnu.org/pub/gnu/gcc/

GCC-2 パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/gcc-2.95.3-2.patch

GCC-2 No-Fixincludes パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-2.95.3-no-fixinc.patch

GCC-2 Return-Type パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
gcc-2.95.3-returntype-fix.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC の内容

GCC パッケージは C 及び C++ コンパイラなどを含む GNU コンパイラコレクシ
ョンを収容しています。

インストールされるプログラム: c++, cc (link to gcc), cc1, cc1plus,
collect2, cpp, g++, gcc, gccbug, 及び gcov

インストールされるライブラリ: libgcc.a, libgcc_eh.a, libgcc_s.so,
libstdc++.[a,so] 及び libsupc++.a

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

cpp は C プリプロセッサです。これはソースファイルの中にある #include や
#define などの宣言を展開するためコンパイラに使われます。

g++ は C++ コンパイラです。

gcc は C コンパイラです。これはプログラムのソースコードをアセンブルコー
ドに翻訳します。

gccbug は良いバグの報告を作成するのを助けるのに使われるシェルスクリプト
です。

gcov は範囲テストツールです。これは最適化がどこで最も効果的になるかを調
べるためにプログラムを解析するために使われます。

libgcc+ は gcc のランタイムサポートを含みます。

libstdc++ はスタンダード C++ ライブラリです。これは多くのよく使われる関
数を含みます。

libsupc++ は C++ プログラミング言語のための支援ルーチンを提供します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

GCC インストール依存性

GCC は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed,
Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext

インストールの説明については the Section called Gettext-0.12.1 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Gettext (0.12.1): 
ftp://ftp.gnu.org/gnu/gettext/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext の内容

Gettext パッケージは国際化と地域化の為に使われます。プログラムは、ユー
ザーの母国語でメッセージを出すことを可能にする母国語サポート( NLS )で
コンパイルされることができます。

インストールされるプログラム: autopoint, config.charset, config.rpath,
gettext, gettextize, hostname, msgattrib, msgcat, msgcmp, msgcomm,
msgconv, msgen, msgexec, msgfilter, msgfmt, msggrep, msginit, msgmerge,
msgunfmt, msguniq, ngettext, project-id, team-address, trigger, urlget,
user-email 及び xgettext

インストールされるライブラリ: libasprintf[a,so], libgettextlib[a,so],
libgettextpo[a,so] 及び libgettextsrc[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

autopoint はスタンダード gettext 構造基板ファイルをソースパッケージへコ
ピーします。

config.charset はシステムに依存したキャラクタエンコードエイリアスのテー
ブルを出力します。

config.rpath はシステムに依存した変数の集まりを出力し、実行ファイル中の
共有ライブラリのパスを検索するランタイムをどのように設定するかを説明し
ます。

gettext は元々ある言語で書かれたメッセージを、メッセージカタログの中に
書かれた翻訳を参照しながらユーザーの言語に翻訳します。

gettextize はパッケージを国際化し始めるため、すべてのスタンダード
Gettext ファイルを与えられたパッケージの最上位ディレクトリへコピーしま
す。

hostname は様々な形式でネットワークホストネームを表示します。

msgattrib は翻訳カタログのメッセージをその配置に従ってフィルタし、また
配置を操作します。

msgcat は与えられた .po ファイルを結合し、併合します。

msgcmp は与えられた二つの .po ファイルが、共に同じ msgid 文字列の集まり
を持っているかどうか調べます。

msgcomm は与えられた.po ファイルに共通のメッセージを探します。

msgconf は翻訳カタログを異なるキャラクターエンコーディングへ変換します
。

msgen は英語の翻訳カタログを作ります。

msgexec は翻訳カタログの翻訳すべてに対してコマンドを適用します。

msgfilter は翻訳カタログの翻訳すべてにフィルタを適用します。

msgfmt は翻訳カタログからバイナリメッセージカタログを生成します。

msggrep は翻訳カタログのすべてのメッセージから与えられたパターンかソー
スファイルのいくつかに一致するものを引き出します。

msginit は新しい .po ファイルを作り、ユーザーの環境の変数を使ってメタ情
報を初期化します。

msgmerge は二つの加工していない翻訳を一つのファイルに結合します。

msgunfmt はバイナリメッセージカタログを加工していない翻訳文にデコンパイ
ルします。

msguniq は翻訳カタログの中の二重になった翻訳を統合します。

ngettext は文法形式が数字に依存するような原文の母国語による翻訳を表示し
ます。

xgettext は初めの翻訳テンプレートを作るため、与えられたソースファイルか
ら翻訳可能なメッセージの行を引き出します。

libasprintf は C で記述された出力ルーチンを C++ で使えるようにする
autosprintf クラスを、 文字列と  ストリームを使うため
に定義します。

libgettextlib は様々な gettext プログラムに使われる共通のルーチンを含む
プライベートライブラリです。これらは一般的に使用できるわけではありませ
ん。

libgettextpo は P0 ファイルを処理することに特化されたプログラムを書くた
めに使われます。このライブラリは gettext によって送り出された標準的なア
プリケーション(msgcomm や msgcmp, msgattrib, msgen など)が充分でないと
きに使われます。

libgettextsrc は様々な gettext プログラムに使われる共通のルーチンを含む
プライベートライブラリです。これらは一般的に使用できるわけではありませ
ん。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gettext インストール依存性

Gettext は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc

インストールの説明については the Section called Glibc-2.3.2 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Glibc (2.3.2): 
ftp://ftp.gnu.org/gnu/glibc/

Glibc-linuxthreads (2.3.2): 
ftp://ftp.gnu.org/gnu/glibc/

Glibc Sscanf パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
glibc-2.3.2-sscanf-1.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc の内容

Glibc は open, malloc, printf, 等といったシステムコールや基本的な関数を
提供するライブラリです。この C ライブラリは動的リンクされた全てのプログ
ラムに使われます。

インストールされるプログラム: catchsegv, gencat, getconf, getent,
glibcbug, iconv, iconvconfig, ldconfig, ldd, lddlibc4, locale,
localedef, mtrace, nscd, nscd_nischeck, pcprofiledump, pt_chown,
rpcgen, rpcinfo, sln, sprof, tzselect, xtrace, zdump 及び zic

インストールされるライブラリ: ld.so, libBrokenLocale.[a,so],
libSegFault.so, libanl.[a,so], libbsd-compat.a, libc.[a,so],
libc_nonshared.a, libcrypt.[a,so], libdl.[a,so], libg.a, libieee.a,
libm.[a,so], libmcheck.a, libmemusage.so, libnsl.a, libnss_compat.so,
libnss_dns.so, libnss_files.so, libnss_hesiod.so, libnss_nis.so,
libnss_nisplus.so, libpcprofile.so, libpthread.[a,so], libresolv.
[a,so], librpcsvc.a, librt.[a,so], libthread_db.so 及び libutil.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

catchsegv はプログラムがセグメテーション違反で終了したときにスタック追
跡を生成するために使われることができます。

gencat はメッセージカタログを生成します。

getconf はファイルシステム特有の変数のためのシステム最適化の値を表示し
ます。

getent は管理上のデータベースからの項目を得ます。

glibcbug はバグレポートを生成しそれをバグ e メールアドレスへ送信します
。

iconv はキャラクターセットの変換を行います。

iconvconfig は高速転送 iconv モジュール最適化ファイルを生成します。

ldconfig は動的リンカのランタイムバインドを最適化します。

ldd はどの共有ライブラリが与えられたそれぞれのプログラムか共有ライブラ
リに必要とされるかを報告します。

lddlibc4 はオブジェクトファイルに対する ldd の実行を助けます。

locale はコンパイラに組み込みの操作としての POSIX ロケールの使用を有効
にするか無効にするかを教える Perl のプログラムです。

localedef はロケールの仕様書をコンパイルします。

mtrace...

nscd は最も一般的なネームサービス要求を提供するネームサービスキャッシュ
デーモンです。

nscd_nischeck は NIS+lookup でセキュアモードが必要とされるかどうかを調
べます。

pcprofiledump は PC プロファイリング似よって生成された情報をダンプしま
す。

pt_chown は grantpt のために所有権とグループ、また従属仮想ターミナルへ
の接続許可を設定するのを助けるプログラムです。

rpcgen は RPC プロトコルを実装する C コードを生成します。

rpcinfo は RPC サーバへ RPC 呼び出しをします。

sln はシンボリックリンクを作ります。このプログラムは静的にリンクされて
いるので、もし何らかの理由で動的リンクシステムが機能しない場合にシンボ
リックリンクを作る役に立ちます。

sprof は共有オブジェクトプロファイルデータを読み込み、出力します。

tzselect はユーザーにシステムの場所について尋ね、それに対応するタイムゾ
ーンの説明を報告します。

xtrace は現在実行されている関数を表示してプログラムの実行を追跡します。

zdump はタイムゾーンをダンプします。

zic はタイムゾーンコンパイラです。

ld.so は共有ライブラリの実行ファイルを助けるプログラムです。

libBrokenLocale は Mozilla のようなプログラムが壊れたロケールを扱うため
に使われます。

libSegFault はセグメンテーション違反信号を扱います。これはセグメンテー
ション違反を捕まえようとします。

libanl は非同期名前検索ライブラリです。

libbsd-compact はある BSD プログラムを Linux の元で実行するために必要と
される移植性を提供します。

libc はメインの C ライブラリで、一般的に使われる関数の集まりです。

libcrypt は暗号ライブラリです。

libdl は動的リンクインターフェイスライブラリです。

libg は g++ のためのランタイムライブラリです。

libieee は IEEE 浮動小数点演算ライブラリです。

libm は数学ライブラリです。

libmcheck は起動時に実行されるコードを含みます。

libmemusage はプログラムのメモリ使用についての情報を集めるのを助けるた
めに memusage によって使われます。

libnsl はネットワークサービスライブラリです。

libnss* はネームサービススイッチライブラリで、ホストネーム、ユーザーネ
ーム、グループネーム、エイリアス、サービス、プロトコルなどのための関数
を含みます。

libpcprofile はソースコードの行が使う CPU タイムの量を追跡するために使
われるプロファイリング関数を含みます。

libpthred は POSIX スレッドライブラリです。

libresolv はインターネットドメインネームサーバーへのパケットを生成、送
信、通訳するための関数を含みます。

librpcsvc は様々な RPC サービスを提供する関数を含みます。

librt は POSIX.1b リアルタイム拡張に特定されたほとんどのインターフェイ
スを提供する関数を含みます。

libthread_db はマルチスレッドプログラムのためのデバッガを構築するのに便
利な関数を含みます

libutil は多くの異なる Unix ユーティリティに使われる "標準的な" 関数の
コードを含みます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Glibc インストール依存性

Glibc は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep

インストールの説明については the Section called Grep-2.5.1 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Grep (2.5.1): 
ftp://ftp.gnu.org/gnu/grep/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep の内容

Grep は指定されたパターンに合ったラインをファイルから表示するのに使われ
るプログラムです。

インストールされるプログラム: egrep (grep へのリンク), fgrep (grep への
リンク) 及び grep

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

egrep は拡張された正規表現に一致する行を表示します。

fgrep は固定された文字列に一致する行を表示します。

grep は基本的な正規表現に一致する行を表示します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grep インストール依存性

Grep は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff

インストールの説明については the Section called Groff-1.19 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Groff (1.19): 
ftp://ftp.gnu.org/gnu/groff/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff の内容

Groff パッケージは文章整形のためのいくつかのテキスト処理プログラムを含
みます。Groff は標準的な文章と特別なコマンドを、マニュアルページで目に
するような整形された出力に翻訳します。

インストールされるプログラム: addftinfo, afmtodit, eqn, eqn2graph, geqn
(eqn へのリンク), grn, grodvi, groff, groffer, grog, grolbp, grolj4,
grops, grotty, gtbl (tbl へのリンク), hpftodit, indxbib, lkbib,
lookbib, mmroff, neqn, nroff, pfbtops, pic, pic2graph, post-grohtml,
pre-grohtml, refer, soelim, tbl, tfmtodit, troff 及び zsoelim (soelim
へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

addftinfo は troff フォントファイルを読み込み groff システムで使われる
いくつかの付加的なフォントメトリック情報を加えます。

afmtodit は groff と grops で使用するためのフォントファイルを作ります。

eqn は troff 入力ファイルに埋め込まれた方程式の表現を troff に理解でき
るコマンドにコンパイルします。

egn2raph は EQN 方程式を短くきった画像に変換します。

grn は gremlin ファイルのための groff プリプロセッサーです。

grodvi は groff が TeX dvi フォーマットを生成するためのドライバです。

groff は groff 文章整形システムのためのフロントエンドです。通常これは
troff プログラムと与えられたデバイスに適切なポストプロセッサーを実行し
ます。

groffer は X と tty 上で groff ファイルと man page を表示します。

grop はファイルを読み込み、ファイルを印刷するのに -e, -man, -me, -mm,
-ms, -p, -s, -t のどの groff オプションが必要とされるかを推測し、これら
のオプションを含む groff コマンドを報告します。

grolbp は Canon CAPSL プリンタ(LBP-4 および LBP-8 シリーズのレーザープ
リンタ)のための groff ドライバです。

grolj4 は HP Laserjet 4 プリンタの PCL5 形式に適切な出力を生成する
groff のドライバです。

grops は GNU troff の出力を Postscript に翻訳します。

grotty は GNU troff の出力をタイプライターのようなデバイスに適切な形式
に翻訳します。

gtbl は tbl の GNU による実装です。

hpftodit は groff -Tlj4 で使うためのフォントファイルを HP 形式のフォン
トメトリックファイルから生成します。

indxbib は著書目録データベースのために逆順にされた目録を refer,
lookbib, lkbib で使うための特定のファイルにします。

lkbib は特定のキーを含む出典のために著書目録データベースを検索し、見つ
かった出典を報告します。

lookbib は標準エラーに(標準入力がターミナルでない限り)プロンプトを表示
し、標準入力からキーワードを含む行を読み込み、それらのキーワードを含む
出典の特定のファイルを著書目録データベースから検索し、見つかったすべて
の出典を標準出力へ表示し、入力が終了するまで以上の過程を繰り返します。

mmroff は groff のための単純なプリプロセッサーです。

neqn は方程式をアスキー出力のために整形します。

nroff は groff を使う nroff コマンドをエミュレートするスクリプトです。

pfbtops は .pfb 形式のファイルの中の Postscript フォントを ASCII へ変換
します。

pic は入力された troff または TeX ファイルの中に埋め込まれた画像の記述
を Tex や troff が理解できるコマンドにコンパイルします。

pic2graph は PIC ダイアグラムを短くされた画像に変換します。

pre-grohtml は GNU troff の出力を html へ翻訳します。

post-grohtml はGNU troff の出力を html へ翻訳します。

refer はファイルの内容を標準出力にコピーしますが、引用文として挿入され
た .[ .] で囲まれた行と、引用文をどのように処理するかと言うことを表すコ
マンドとして挿入された .R1 .R2 で囲まれた行はコピーしません。

soelim は .so ファイルを読み込み、ファイルの行を言及されたファイルの内
容と置き換えます。

tbl は troff に入力されたファイルに埋め込まれたテーブルの記述を troff
が理解できる記述にコンパイルします。

tfmtodit は groff -Tdvi で使うためのフォントファイルを生成します。

troff は Unix troff と高い互換性があります。通常これは groff コマンドを
使って呼び出されるべきで、このコマンドはまたプリプロセッサとポストプロ
セッサを適切な順序とオプションで実行します。

zsoelim は GNU による soelim の実装です。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Groff インストール依存性

Groff は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub

インストールの説明については the Section called Grub-0.93 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Grub (0.93):
ftp://alpha.gnu.org/pub/gnu/grub/

Grub Gcc33 Patch:
http://www.linuxfromscratch.org/patches/lfs/5.0/grub-0.93-gcc33-1.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub の内容

Grub パッケージはブートローダーを含みます。

インストールされるプログラム: grub, grub-install, grub-md5-crypt,
grub-terminfo and mbchk

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

grub は包括的統合ブートローダー(GRand Unified Bootloader)のコマンドシェ
ルです。

grub-install は GRUB を与えられたデバイスにインストールします。

grub-md5-crypt はパスワードを MD5 形式に暗号化します。

grub-terminfo は terminfo 名から terminfo コマンドを生成します。これは
もしあなたが一般的でないターミナルを持っているときに使うことができます
。

mbchk はマルチブートカーネルの形式を調べます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Grub インストール依存性

Grub は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip

インストールの説明については the Section called Gzip-1.3.5 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Gzip (1.3.5): 
ftp://alpha.gnu.org/gnu/gzip/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip の内容

Gzip パッケージは Kempel-Ziv コーディング( LZ77 )を使ってファイルを圧
縮したり解凍したりするプログラムを含みます。

インストールされるプログラム: gunzip (gzip へのリンク), gzexe, gzip,
uncompress (gunzip へのリンク), zcat (gzip へのリンク), zcmp, zdiff,
zegrep, zfgrep, zforce, zgrep, zless, zmore 及び znew

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

gunzip は gzip 圧縮されたファイルを解凍します。

gzexe は自己解凍型の実行ファイルを生成するために使われます。

gzip は与えられたファイルを Lempel-Ziv(LZ77) コーディングを使って圧縮し
ます。

zcat は与えられた gzip 圧縮されたファイルを標準出力へ展開します。

zcmp は gzip 圧縮されたファイルに対して cmp を実行します。

zdiff は gzip 圧縮されたファイルに対して diff を実行します。

zegrep は gzip 圧縮されたファイルに対して egrep を実行します。

zfgrep は gzip 圧縮されたファイルに対して fgrep を実行します。

zfcore は gzip 圧縮された与えられたすべてのファイルに対して、 gzip が再
び圧縮をしないように .gz 拡張子を強制します。これはファイルを転移してい
る間にファイル名が切り取られてしまった場合に便利です。

zgrep は gzip 圧縮されたファイルに対して grep を実行します。

zless は gzip 圧縮されたファイルに対して less を実行します。

zmore は gzip 圧縮されたファイルに対して more を実行します。

zmore は gzip 圧縮されたファイルに対して more を実行します。znew は
compress形式 .Z から gzip 形式 .gz へファイルを再圧縮します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Gzip インストール依存性

Gzip は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils

インストールの説明については the Section called Inetutils-1.4.2 のイン
ストール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Inetutils (1.4.2):
http://freshmeat.net/projects/inetutils/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils の内容

Inetutils パッケージはネットワーククライアントとサーバーを含みます。

インストールされるプログラム: ftp, ping, rcp, rlogin, rsh, talk, telnet
及び tftp

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

ftp は ARPANET ファイル転送プログラムです。

ping は反復要求パケットを送信し返事が来るのにかかった時間を報告します。

rcp はリモートファイルコピーをします。

rlogin はリモートログインをします。

rsh はリモートシェルを実行します。

talk は他のユーザーとチャットするために使われます。

telnet は TELNET プロトコルのインターフェイスです。

tftp はちょっとした(trivial)ファイル転送プログラムです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Inetutils インストール依存性

Inetutils は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd

インストールの説明については the Section called Kbd-1.08 のインストール
in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Kbd (1.08): 
ftp://ftp.win.tue.nl/pub/linux-local/utils/kbd/

Kbd More-Programs パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
kbd-1.08-more-programs.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd の内容

Kbd はキーテーブルファイルとキーボードユーティリティを含みます。

インストールされるプログラム: chvt, deallocvt, dumpkeys, fgconsole,
getkeycodes, getunimap, kbd_mode, kbdrate, loadkeys, loadunimap,
mapscrn, openvt, psfaddtable (psfxtable へのリンク), psfgettable
(psfxtable へのリンク), psfstriptable (psfxtable へのリンク),
psfxtable, resizecons, setfont, setkeycodes, setleds, setlogcons,
setmetamode, setvesablank, showconsolefont, showkey, unicode_start 及び
unicode_stop

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

chvt は前方仮想ターミナルを変更します。

deallocvt は使われていない仮想ターミナルを解除します。

dumpkeys はキーボード翻訳テーブルをダンプします。

fgconsole はアクティブな仮想ターミナルの数を表示します。

getkeycodes はカーネルのスキャンコードからキーコードへのマッピングテー
ブルを表示します。

getunimap は現在使われているユニマップを表示します。

kbd_mode はキーボードのモードを報告または設定します。

kbdrate はキーボードの繰り返しと遅延の比を設定します。

loadkeys はキーボード翻訳テーブルを読み込みます。

loadunimap はカーネルの湯にコードからフォントへのマッピングファイルを読
み込みます。

mapscrn はユーザー定義の出力文字マッピングテーブルをコンソールドライバ
へ読み込むために使われていた時代遅れのプログラムです。これは今 setfont
によって行われます。

openvt は新しい仮想ターミナル(VT)上でプログラムを開始します。

psf* はコンソールフォントでユニコードキャラクターテーブルを扱うためのツ
ールの集まりです。

resizecons はコンソールサイズのカーネルの認識を変更します。

setfont を使うとコンソールで EGA/VGA フォントを変更することができます。

setkeycode はカーネルのスキャンコードからキーコードへのマッピングテーブ
ルエントリを読み込み、もしあなたがキーボードにあまり一般的でないキーを
持っている場合には便利です。

setleds はキーボードフラグと LED を設定します。多くの人はデフォルトの設
定で NumLock がオンになっているのを便利だと思うでしょう。setleds +num
でこれを達成できます。

setlogcons はカーネルメッセージをコンソールへ送ります。

setmetamode はキーボードのメタキーの扱いを定義します。

setvesablank を使うと組み込みのハードウェアスクリーンセーバー(画面を変
化させるものではなく、ただの黒い画面)に少し手を加えることができます。

showconsolefont は現在の EGA/VGA コンソールスクリーンのフォントを表示し
ます。

showkey はキーボード上の押されたキーのスキャンコードとキーコード、ASCII
コードを報告します。

unicode_start はキーボードとコンソールをユニコードモードにします。

unicode_stop はキーボードとコンソールをユニコードモードから元の状態に戻
します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Kbd インストール依存性

Kbd は以下のパッケージに依存します: Bash, Binutils, Bison, Coreutils,
Diffutils, Flex, GCC, Gettext, Glibc, Grep, Gzip, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less

インストールの説明については the Section called Less-381 のインストール
in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Less (381): 
ftp://ftp.gnu.org/gnu/less/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less の内容

Less はファイルページャー、またはテキストビュワーです。これはファイルや
ストリームの内容を表示し、スクロールする能力があります。Less は more ぺ
ージャーには含まれない、後方へスクロールする機能などのいくつかの特徴を
持っています。

インストールされるプログラム: less, lessecho 及び lesskey

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

less はファイルビュワー、またはページャーです。これは与えられたファイル
の内容を表示し、上下にスクロールすることや文字列の検索、マークへのジャ
ンプができます。

lessecho は Unix システムのファイル名にある * や ? のようなメタキャラク
ターを展開するのに必要とされます。

lesskey は less のためにキーバインディングを特定するために使われます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Less インストール依存性

Less は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-Bootscripts

インストールの説明については the Section called LFS-Bootscripts-1.12 の
インストール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

LFS-Bootscripts (1.12): 
http://downloads.linuxfromscratch.org/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-bootscripts の内容

LFS-Bootscripts パッケージは SysV init スタイルのシェルスクリプトを含み
ます。これらのスクリプトはブートの間にファイルシステムの完全さをチェッ
クする、keymap をロードする、ネットワークを設定する、シャットダウン時に
プロセスを停止するなどの様々な仕事を行ないます。

インストールされるプログラム: checkfs, cleanfs, functions, halt,
ifdown, ifup, loadkeys, localnet, mountfs, mountproc, network, rc,
reboot, sendsignals, setclock, swap, sysklogd 及び template

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

checkfs スクリプトはマウントされる直前のファイルシステム(ジャーナルとネ
ットワークベースのファイルシステムは除く)を検査します。

cleanfs スクリプトは /var/run/ や /var/lock の中にあるような、再起動の
間に保存されるべきでないファイルを削除します。これは /var/run/utmp を再
生成し、あるかもしれない /etc/nologin や /fastboot, /forcefsck ファイル
を削除します。

functions スクリプトは error や status を調べる異なったスクリプトの間で
共有される機能を含みます。

halt スクリプトはシステムを停止します。

ifdown と ifup スクリプトはネットワークスクリプトがネットワークデバイス
を扱うのを助けます。

loadkeys スクリプトはあなたのキーボードレイアウトに適切なよう特定したキ
ーマップテーブルを読み込みます。

localnet スクリプトはシステムのホストネームとローカルループバックデバイ
スを設定します。

mountfs スクリプトは noauto と記されていないか、ネットワークベースでな
いすべてのファイルシステムをマウントします。

mountproc スクリプトは proc ファイルシステムをマウントするために使われ
ます。

network スクリプトはネットワークカードのようなネットワークインターフェ
イスを設定し、適用できるデフォルトのゲートウェイを設定します。

rc スクリプトはマスター実行レベル管理スクリプトです。これは他のすべての
スクリプトを一つずつ実行することの責任を持ちます。

reboot スクリプトはシステムを再起動します。

sendsignals スクリプトはシステムが再起動か停止する前にすべてのプロセス
が終了されることを確実にします。

setclock スクリプトはハードウェアクロックが GMT 時間に設定されていなか
った場合にカーネルのクロックをローカル時間に再設定します。

swap スクリプトはスワップファイルとパーティションを有効にしたり無効にし
たりします。

syslogd スクリプトはシステムとカーネルログデーモンを開始したり停止した
りします。

template スクリプトは他のデーモンのについてあなた自身の起動スクリプトを
作るために使うことができるテンプレートです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

LFS-Bootscripts インストール依存性

LFS-Bootscritps は以下のパッケージに依存します: Bash, Coreutils

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils

インストールの説明については the Section called Lfs-Utils-0.3 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Lfs-utils (0.3):
http://www.linuxfromscratch.org/~winkie/downloads/lfs-utils/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils の内容

Lfs-Utils パッケージは様々なパッケージに使われる種々雑多なプログラムを
含みますが、それぞれ個別のパッケージを請け負う程大きくはありません。

インストールされるプログラム: mktemp, tempfile, http-get and iana-net

インストールされるファイル: protocols, services

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

mktemp は安全な方法で暫定ファイルを作ります。これはスクリプトの中で使わ
れます。

tempfile は mktemp よりも安全でない方法で暫定ファイルを作ります。

http-get スクリプトは "ネットリダイレクション" と呼ばれる少し知られた 
bash の特徴を利用します。これはこれはウェブサイトから他のプログラムを使
わずにダウンロードするために使われます。

iana-net は IANA のサービスとプロトコルの最適化ファイルを手にいれるのを
http-get スクリプトを使って簡単にします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Lfs-Utils インストール依存性

(依存性はまだ調査されていません。)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool

インストールの説明については the Section called Libtool-1.5 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Libtool (1.5): 
ftp://ftp.gnu.org/gnu/libtool/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool の内容

GNU libtools は一般的なライブラリサポートスクリプトです。Libtools は共
有ライブラリを使用することの複雑さを堅実で小さなインターフェイスの後に
隠します。

インストールされるプログラム: libtool 及び libtoolize

インストールされるライブラリ: libltdl.[a,so].

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

libtool は一般化されたライブラリの構築を支援するサービスを提供します。

libtoolize はパッケージに libtool の支援を加える標準的な方法を提供しま
す。

libltdl は動的ライブラリを読み込むことの様々な困難を隠してくれます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Libtool インストール依存性

Libtool は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux (the kernel)

インストールの説明については the Section called Linux-2.4.22 のインスト
ール in Chapter 8 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Linux (2.4.22):
ftp://ftp.kernel.org/pub/linux/kernel/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux の内容

Linux カーネルは全ての Linux システムの中心です。これは Linux を動かし
ているものです。コンピュータの電源が付けられ Linux システムがブートする
時、真っ先にロードされる Linux ソフトウェアの一つがカーネルです。カーネ
ルはシステムのハードウェア構成、シリアルポート、パラレルポート、サウン
ドカード、ネットワークカード、IDE コントローラー、SCSI コントローラやそ
の他にも多くの物をを初期化します。簡単に言えばつまり、カーネルはソフト
ウェアが実行できるようにハードウェアを準備します。

インストールされるプログラム: the kernel 及び the kernel headers

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

kernel はあなたの GNU/Linux システムの原動機です。パソコンの電源を入れ
たとき、カーネルはオペレーティングシステムの初めに読み込まれる部分です
。これはコンピュータのハードウェアを構成するものすべてを検出、初期化し
、これらの構成要素をソフトウェアがファイルツリーとして利用できるように
し、一つの CPU を同時に多数のプログラムが動かせるようなマルチタスクのマ
シンに変えます。

kernel headers はカーネルが提供するサービスへのインターフェイスを定義し
ます。システムの include ディレクトリの中にあるヘッダはいつも必ず Glibc
がそれに対してコンパイルされていなくてはならず、それゆえカーネルをアッ
プグレードしたときも置き換えられるべきではありません。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Linux インストール依存性

Linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Findutils, GCC, Glibc, Grep, Gzip, Make, Modutils, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4

インストールの説明については the Section called M4-1.4 のインストール
in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

M4 (1.4): 
ftp://ftp.gnu.org/gnu/m4/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4 の内容

M4 はマクロプロセッサーです。このプログラムは入力をそのまま出力し、その
際にマクロを展開します。マクロは組み込みかユーザー定義のどちらでもよく
、引数はいくつでもとれます。マクロを展開する事以外にも、M4 は指定された
ファイルを取り込む、Unix コマンドを実行する、整数の計算を行なう、様々な
方法でテキストを操作する、再帰定義、などを含む機能を持っています。M4 プ
ログラムはコンパイラに対するフロントエンドとして、またそれ自身の機能で
あるマクロプロセッサとして使うことができます。

インストールされるプログラム: m4

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

M4 は与えられたファイルを、それが含むマクロを展開しながらコピーします。
これらのマクロは組み込みとユーザー定義の両方で、多くの引数を取ることが
できます。ただマクロを展開するだけでなく、 m4 は指定されたファイルを取
り込む、Unix コマンドを実行する、整数の計算を行う、様々な方法でテキスト
を操作する、再帰定義などを含む機能を持っています。M4 プログラムはコンパ
イラに対するフロントエンドとして、またそれ自身の機能であるマクロプロセ
ッサとして使うことができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

M4 インストール依存性

M4 は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make

インストールの説明については the Section called Make-3.80 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Make (3.80): 
ftp://ftp.gnu.org/gnu/make/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make の内容

Make は巨大なプログラムのどの構成要素が再コンパイルされる必要があるのか
を自動的に決定し、それらを再コンパイルするためのコマンドを発行します。

インストールされるプログラム: make

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

make は巨大なプログラムのどの構成要素が再コンパイルされる必要があるのか
を自動的に決定し、適切なコマンドを発行します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Make インストール依存性

Make は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

MAKEDEV

インストールの説明については the Section called デバイスの作成
(Makedev-1.7) in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

MAKEDEV (1.7):
http://downloads.linuxfromscratch.org/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

MAKEDEV の内容

MAKEDEV スクリプトは通常 /dev ディレクトリの中にある静的デバイスノード
を作ります。デバイスノードについての詳しい情報は Linux カーネルソースツ
リーの中の Documentation/devices.txt ファイルの中で見つけられるでしょう
。

インストールされるプログラム: MAKEDEV

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

MAKEDEV は必要な静的デバイスノードを作るためのスクリプトで、これらは通
常 /dev ディレクトリの中にあります。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

MAKEDEV インストール依存性

Makedev は以下のパッケージに依存します: Bash, Coreutils.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man

インストールの説明については the Section called Man-1.5m2 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Man (1.5m2): 
ftp://ftp.win.tue.nl/pub/linux-local/utils/man/

Man 80-Columns パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/man-1.5m2-80cols.patch

Man Manpath パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/man-1.5m2-manpath.patch

Man Pager パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/man-1.5m2-pager.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man の内容

Man は man pager です。

インストールされるプログラム: apropos, makewhatis, man, man2dvi,
man2html and whatis

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

apropos は whatis データベースを検索し与えられた文字列を含むシステムコ
マンドの略説を表示します。

makewhatis は whatis データベースを構築します。これは manpath の中にあ
る全てのマニュアルページを読み、 whatis データベースの中にそれぞれのペ
ージについて名前と略説を書きます。

man は要求されたオンラインマニュアルページを整形し表示します。

man2dvi はマニュアルページを dvi 形式に変換します。

man2html はマニュアルページを html に変換します。

whatis は whatis データベースを検索し、分割された単語として与えられたキ
ーワードを含むシステムコマンドの略説を表示します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man インストール依存性

Man は以下のパッケージに依存します: Bash, Binutils, Coreutils, Gawk,
GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages

インストールの説明については the Section called Man-pages-1.60 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Man-pages (1.60): 
ftp://ftp.kernel.org/pub/linux/docs/manpages/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages の内容

Man-pages パッケージは 1200 ページ以上のマニュアルページを含んでいます
。この公式文章は C と C++ の関数について詳しく述べ、いくつかの重要なデ
バイスファイルを説明し、他のパッケージに欠けている文章を提供します。

インストールされるプログラム: 様々なマニュアルページ

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

提供されたマニュアルページの例はすべての C と C++ の関数や重要なデバイ
スファイル、そして最適化ファイルを説明するページです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Man-pages インストール依存性

Man-pages は以下のパッケージに依存します: Bash, Coreutils, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils

インストールの説明については the Section called Modutils-2.4.25 のイン
ストール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Modutils (2.4.25): 
ftp://ftp.kernel.org/pub/linux/utils/kernel/modutils/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils の内容

Modutils パッケージはカーネルモジュールに対して使えるプログラムを含みま
す。

インストールされるプログラム: depmod, genksyms, insmod,
insmod_ksymoops_clean, kallsyms (insmod へのリンク), kernelversion,
ksyms (insmod へのリンク), lsmod (insmod へのリンク), modinfo, modprobe
(insmod へのリンク) 及び rmmod (insmod へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

depmod は存在するモジュールの集まりの中にあるシンボルを基礎として依存関
係ファイルを作ります。この依存関係ファイルは modprobe が要求されたモジ
ュールを自動的に読み込むために使われます。

genksyms はシンボルのバージョン情報を生成します。

insmod はローダブルモジュールを実行中のカーネルへインストールします。

insmod_ksymoops_clean は保存された ksyms と二日間使われなかったモジュー
ルを削除します。

kallsyms はデバッグのためのすべてのカーネルシンボルを引き出します。

kernelversion は実行中のカーネルのメジャーバージョンを報告します。

ksyms はエクスポートされたカーネルシンボルを表示します。

lsmod はどのモジュールが読み込まれているかを表示します。

modinfo はカーネルモジュールに関連したオブジェクトファイルを検査して、
そこから収集できたあらゆる情報を表示します。

modprobe は depmod によって作られた依存関係ファイルを使い、自動的に適切
なモジュールを読み込みます。

rmmod は実行中のカーネルからモジュールを取り外します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Modutils インストール依存性

Modutils は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, Flex, GCC, Glibc, Grep, M4, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses

インストールの説明については the Section called Ncurses-5.3 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Ncurses (5.3): 
ftp://ftp.gnu.org/gnu/ncurses/

Ncurses Etip パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
ncurses-5.3-etip-2.patch

Ncurses Vsscanf パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
ncurses-5.3-vsscanf.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses の内容

Ncurses パッケージはキャラクターと端末を扱う、パネルとメニューを含むラ
イブラリを提供します。

インストールされるプログラム: captoinfo (tic へのリンク), clear,
infocmp, infotocap (tic へのリンク), reset (tset へのリンク), tack,
tic, toe, tput 及び tset

インストールされるライブラリ: libcurses.[a,so] (libncurses.[a,so] への
リンク), libform.[a,so], libmenu.[a,so], libncurses++.a, libncurses.
[a,so], libpanel.[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

captoinfo は termcap 表記を terminfo 表記に変換します。

clear はもし可能であれば画面をクリアします。

infocmp は terminfo 表記を比較、表示します。

infotocap は terminfo 表記を termcap 表記に変換します。

reset はターミナルをそのデフォルト値初期化します。

tack は terminfo 挙動検査プログラムです。これは基本的に terminfo データ
ベースの中の記載の正しさをテストするために使われます。

tic は terminfo 記載表記コンパイラです。これは terminfo ファイルをソー
ス形式から ncurses ライブラリルーチンに必要とされるバイナリ形式に翻訳し
ます。terminfo ファイルはあるターミナルの性能についての情報を含みます。

toe は利用できるすべてのターミナルのタイプをリストし、それぞれがそのプ
ライマリネームとその説明を与えます。

tput はターミナルに依存した性能の値をシェルで利用できるようにします。こ
れはまたターミナルをリセットや再初期化するのに使われ、またそのロングネ
ームを報告します。

test はターミナルを再初期化するのに使われます。

libncurses* は多くの複雑な方法でターミナル上にテキストを表示するための
機能を含みます。これらの機能の使い方のいい例はカーネルの make
menuconfig の間に表示されるメニューです。

libform* はフォームを実装するための機能を含みます。

libmenu* はメニューを実装するための機能を含みます。

libpanel* はパネルを実装するための機能を含みます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Ncurses インストール依存性

Ncurses は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools

インストールの説明については the Section called Net-tools-1.60 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Net-tools (1.60): 
http://www.tazenda.demon.co.uk/phil/net-tools/

Net-tools Mii-Tool-Gcc33 パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
net-tools-1.60-miitool-gcc33-1.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools の内容

Net-tools パッケージは Linux のネットワークの基礎を形作るプログラムの集
まりを含みます。

インストールされるプログラム: arp, dnsdomainname (hostname へのリンク),
domainname (hostname へのリンク), hostname, ifconfig, nameif, netstat,
nisdomainname (hostname へのリンク), plipconfig, rarp, route, slattach
及び ypdomainname (hostname へのリンク)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

arp はカーネルの ARP キャッシュを操作するために使われ、通常エントリを加
えたり削除し、またエントリキャッシュをダンプします。

dnsdomainname はシステムの DNS ドメイン名を報告します。

domainnam はシステムの NIS/YP ドメイン名を報告、設定します。

hostname は現在のホストシステムの名前を報告、設定します。

ifconfig はネットワークインターフェイスを最適化するための主なユーティリ
ティです。

nameif は MAC アドレスを基礎としてネットワークインターフェイスに名前を
つけます。

netstat はネットワーク接続やルーチンテーブル、インターフェイスの統計量
を報告するのに使われます。

nisdomainname は domainname と同じことをします。

plipconfig は PLIP デバイスパラメータをうまく調整し、そのパフォーマンス
を改善するために使われます。

rarp はカーネルの RARP テーブルを操作するために使われます。

route は IP ルーティングテーブルを操作するために使われます。

slattach はネットワークインターフェイスをシリアルラインに結びつけます。
これによって通常のターミナルラインを他のコンピュータとの point-to-point
接続に使うことができます。

ypdomainname は domainname と同じことをします。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Net-tools インストール依存性

Net-tools は以下のパッケージに依存します: Bash, Binutils, Coreutils,
GCC, Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch

インストールの説明については the Section called Patch-2.5.4 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Patch (2.5.4): 
ftp://ftp.gnu.org/gnu/patch/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch の内容

Patch プログラムはパッチファイルに従ってファイルを修正します。パッチフ
ァイルは普通 diff プログラムによって作られたリストで、それは元々のファ
イルがどのように修正されることを必要とするかを含んでいます。

インストールされるプログラム: patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

patch はパッチファイルに従ってファイルを修正します。パッチファイルは普
通 diff プログラムで作られた違いのリストです。これらの違いを元々のファ
イルに適用することで、 patch は修正されたバージョンを作ります。あなたの
ソースを最新に保つために、新しい tarball 全体ではなくパッチを使うことで
多くのダウンロード時間を節約することができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Patch インストール依存性

Patch は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl

インストールの説明については the Section called Perl-5.8.0 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Perl (5.8.0):
http://www.perl.com/

Perl Libc パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/perl-5.8.0-libc-3.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl の内容

Perl パッケージは perl, the Practical Extraction and Report Language を
含みます。Perl は C や sed, awk 及び sh の最も良い特徴のいくつかを一つ
に統合した強力な言語です。

インストールされるプログラム: a2p, c2ph, dprofpp, enc2xs, find2perl,
h2ph, h2xs, libnetcfg, perl, perl5.8.0 (perl へのリンク), perlbug,
perlcc, perldoc, perlivp, piconv, pl2pm, pod2html, pod2latex, pod2man,
pod2text, pod2usage, podchecker, podselect, psed (s2p へのリンク),
pstruct (c2ph へのリンク), s2p, splain and xsubpp

インストールされるライブラリ: (too many to name)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

a2p は awk を perl に翻訳します。

c2ph は C の構造体を "cc -g -S" stab から生成されたものとしてダンプしま
す。

dprofpp は perl プロファイルデータを表示します。

en2cxs は Unicode キャラクターマッピングか Tcl エンコーディングファイル
から、エンコードモジュールのための perl エクステンションを構築します。

find2perl は find コマンドを perl へ翻訳します。

h2ph は .h C ヘッダファイルを .ph Perl ヘッダファイルへ変換します。

h2xs は .h C ヘッダファイルを Perl エクステンションへ変換します。

libnetcfg は libnet を最適化するのに使われます。

perl は C や sed, awk 及び sh の最も良い特徴のいくつかを一つの万能な言
語に統合します。

perlbug は Perl またはそれと一緒に来たモジュールについてのバグの報告を
生成し、メールします。

perlcc は Perl プログラムから実行ファイルを生成します。

perldoc は perl インストールツリーや perl スクリプトの中に組み込まれた
説明書の一部を pod 形式で表示します。

perlivp は perl インストール照合プロシージャです。これは Perl とそのラ
イブラリが正しくインストールされたことを照合します。

piconv は Perl バージョンのキャラクターエンコーディングコンバータ iconv
です。

pl2pm は Perl4 の .pl ファイルを perl5 の .pm モジュールに変換するため
の大雑把なツールです。

pod2html は pod 形式のファイルを HTML 形式に変換します。

pod2latex は pod 形式のファイルを LaTeX 形式に変換します。

pod2man は pod データを整形された *roff 入力へ変換します。

pod2text は pod データを整形された ASCII テキストへ変換します。

pod2usage はファイルに埋め込まれた pod doc から使い方のメッセージを表示
します。

podchecker は pod 形式の文章ファイルの文法を検査します。

podselect は pod 文章の選択された項目を表示します。

psed はストリームエディター sed の Perl バージョンです。

pstruct は C の構造体を "cc -g -S" stab から生成されたものとしてダンプ
します。

s2p は sed から perl へ翻訳します。

splain は perl で言葉通りの警告診断学を強制するために使われます。

xsubpp は Perl コードを C コードへ変換します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Perl インストール依存性

Perl は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo

インストールの説明については the Section called Procinfo-18 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Procinfo (18):
ftp://ftp.cistron.nl/pub/people/svm/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo の内容

Procinfo プログラムはメモリの使用や IRQ 番号のようなシステムデータを /
proc ディレクトリから集め、これらのデータを意味のある方法で整形します。

インストールされるプログラム: lsdev, procinfo and socklist

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

lsdev は現在システムにあるデバイスと、それらがどの IRQ や IO ポートを使
っているかをリストします。

procinfo は仮想 proc ファイルシステムの中にある情報のいくつかについての
概観を表示します。

socklist は開いているソケットをリストし、そのタイプ、ポート番号、その他
の項目を報告します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procinfo インストール依存性

Procinfo は以下のパッケージに依存します: Binutils, GCC, Glibc, Make,
Ncurses.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps

インストールの説明については the Section called Procps-3.1.11 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Procps (3.1.11):
http://procps.sourceforge.net/

Procps Locale パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
procps-3.1.11-locale-fix.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps の内容

Procps パッケージはシステムプロセスを監視し停止させるプログラムを提供し
ます。Procps は /proc ディレクトリを通じてプロセスについての情報を集め
ます。

インストールされるプログラム: free, kill, pgrep, pkill, pmap, ps,
skill, snice, sysctl, tload, top, uptime, vmstat, w and watch

インストールされるライブラリ: libproc.so

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

free はシステムのメモリー空き容量と使用量について、物理メモリとスワップ
メモリの両方について報告します。

kill はプロセスにシグナルを送るために使われます。

pgrep は名前とその他の属性に基礎を置いてプロセスを探します。

pkill は名前とその他の属性に基礎を置いてプロセスへシグナルを送ります。

pmap は与えられたプロセスのメモリマップを報告します。

ps は現在のプロセスのスナップショットを与えます。

skill は与えられた基準に一致するプロセスにシグナルを送ります。

snice は与えられた基準に一致するプロセスのスケジュール優先順位を変更し
ます。

sysctl は実行時のカーネルパラメータを修正します。

tload は現在のシステム負荷平均のグラフを表示します。

top は先頭の CPU プロセスを表示します。これは実際の時間で現在実行中のプ
ロセッサの活動を見ることができます。

uptime はシステムが今までにどれだけ動き続けているか、何人のユーザーがロ
グインしているか、そしてシステム負荷の平均を報告します。

vmstat は仮想メモリの統計量を報告し、これはプロセスやメモリ、ページング
、ブロック IO、トラップ、そして CPU の活動などについての情報を与えます
。

w はどのユーザーが現在ログオンしていて、どこにいていつからいるかを表示
します。

watch は与えられたコマンドを繰り返し実行し、その出力の初めの一画面を表
示します。これを使うと時間経過にしたがって変化する出力を見ることができ
ます。

libproc はこのパッケージに含まれるほとんどのプログラムに使われる関数を
含みます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Procps インストール依存性

Procps は以下のパッケージに依存します: Bash, Binutils, Coreutils, GCC,
Glibc, Make, Ncurses.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc

インストールの説明については the Section called Psmisc-21.3 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Psmisc (21.3):
http://download.sourceforge.net/psmisc/
ftp://download.sourceforge.net/pub/sourceforge/psmisc/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc の内容

Psmisc パッケージは /proc ディレクトリを管理するのを助ける三つのプログ
ラムを含みます。

インストールされるプログラム: fuser, killall and pstree

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

fuser は与えられたファイルかファイルシステムを使っているプロセスの PID
を報告します。

killall は名前によってプロセスを停止します。これは与えられたコマンドの
どれか一つでも実行しているプロセスすべてにシグナルを送ります。

pidof は与えられたプログラムの PID を報告します。(この pidof プログラム
ではなく、Sysvinit のものが使われます。)

pstree は実行中のプロセスをツリーとして表示します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Psmisc インストール依存性

Psmisc は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed

インストールの説明については the Section called Sed-4.0.7 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Sed (4.0.7):
ftp://ftp.gnu.org/gnu/sed/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed の内容

Sed はストリームエディターです。ストリームエディターは入力されるストリ
ーム(ファイルまたはパイプラインからの入力)に対して基本的なテキスト変
換を行なうために使われます。

インストールされるプログラム: sed

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

Sed はテキストファイルをフィルタし、一つの状態に変形するのに使われます
。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sed インストール依存性

Sed は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow

インストールの説明については the Section called Shadow-4.0.3 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Shadow (4.0.3):
ftp://ftp.pld.org.pl/software/shadow/

Shadow Newgrp パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
shadow-4.0.3-newgrp-fix.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow の内容

Shadow パッケージはシステムパスワードのセキュリティを強化するために作ら
れました。

インストールされるプログラム: chage, chfn, chpasswd, chsh, dpasswd,
expiry, faillog, gpasswd, groupadd, groupdel, groupmod, groups, grpck,
grpconv, grpunconv, lastlog, login, logoutd, mkpasswd, newgrp,
newusers, passwd, pwck, pwconv, pwunconv, sg (link to newgrp), useradd,
userdel, usermod, vigr (vipw へのリンク) 及び vipw

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

change はパスワードの変更義務の最大日数を変更するために使われます。

chfn はユーザーの降るネームとその他の情報を変更するために使われます。

chpasswd は一連のユーザーアカウント全体のパスワードを更新するために使わ
れます。

chsh はユーザーのデフォルトのログインシェルを変更するために使われます。

dpasswd はユーザーのログインシェルのためのダイアルアップパスワードを変
更するために使われます。

expiry は現在のパスワード期限の方針を調べ、施行します。

faillog は失敗したログインの記録を調べ、アカウントが塞がれるまでの最大
失敗数を設定し、また失敗のカウントをリセットするために使われます。

gpasswd はメンバーや管理者をグループへ加えたり、そこから削除したりする
のに使われます。

groupadd は与えられた名前でグループを作ります。

groupdel は与えられた名前のグループを削除します。

groupmod は与えられたグループ名か GID を修正するために使われます。

groups は与えられたユーザーがメンバーであるグループを報告します。

grpck はグループファイル、/etc/group と /etc/gshadow の完全さを確認しま
す。

grpconv は通常のグループファイルからシャドウグループファイルを作り、ま
た更新します。

grpunconf は /etc/gshadow から /etc/group を更新し、古いものを削除しま
す。

lastlog はすべてのユーザーの中か、または与えられたユーザーの中で最も最
近のログインを報告します。

login はユーザーをサインインさせるためにシステムによって使われます。

logoutd はログオン時間とポートの制限を施行するために使われるデーモンで
す。

mkpasswd は与えられたパスワードを同じく与えられた摂動を使って暗号化しま
す。

newgrp はログインセッションの間の現在の GID を変更するために使われます
。

newusers は一連のユーザーアカウント全体のパスワードを作り、また更新する
ために使われます。

passwd はユーザーやグループアカウントのパスワードを変更するために使われ
ます。

pwck はパスワードファイル、/etc/passwd と /etc/shadow の完全さを確認す
るために使われます。

pwconv は通常のパスワードファイルからシャドウパスワードファイルを作り、
また更新します。

pwunconv は /etc/shadow から /etc/passwd を作り、それから前者を削除しま
す。

sg はユーザーの GID が与えられたグループのそれに設定されている間、与え
られたコマンドを実行します。

useradd は与えられた名前で新しいユーザーを作るか、デフォルトの新ユーザ
ー情報を更新します。

userdel は与えられたユーザーアカウントを削除します。

usermod は与えられたユーザーのログインネームや UID、シェル、初期グルー
プ、ホームディレクトリ等を修正するのに使われます。

vigr は /etc/group や /etc/gshadow ファイルを編集するのに使うことができ
ます。

vipw は /etc/passwd や /etc/shadow ファイルを編集するのに使うことができ
ます。

libmisc...

libshadow はこのパッケージのほとんどのプログラムに使われる関数を含みま
す。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Shadow インストール依存性

Shadow は以下のパッケージに依存します: Bash, Binutils, Bison,
Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd

インストールの説明については the Section called Sysklogd-1.4.1 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Sysklogd (1.4.1):
http://www.infodrom.org/projects/sysklogd/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd の内容

Sysklogd パッケージはカーネルから報告されるようなシステムログメッセージ
を記録するためのプログラムを含みます。

インストールされるプログラム: klogd and syslogd

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

klogd はカーネルメッセージを傍受し記録するためのシステムデーモンです。

syslogd はシステムプログラムが記録のために提供するメッセージを記録しま
す。すべての記録されたメッセージは少なくとも日付とホストネーム、そして
通常はプログラムの名前も含みますが記録するデーモンがどのように信用され
るかに依存します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysklogd インストール依存性

Sysklogd は以下のパッケージに依存します: Binutils, Coreutils, GCC,
Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit

インストールの説明については the Section called Sysvinit-2.85 のインス
トール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Sysvinit (2.85):
ftp://ftp.cistron.nl/pub/people/miquels/sysvinit/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit の内容

Sysvinit パッケージはその他全てのプログラムの開始、実行及び終了を管理す
るためのっプログラムです。

インストールされるプログラム: halt, init, killall5, last, lastb (last
へのリンク), mesg, pidof (killall5 へのリンク), poweroff (halt へのリン
ク), reboot (halt へのリンク), runlevel, shutdown, sulogin, telinit
(init へのリンク), utmpdump 及び wall

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

halt は、すでに実行レベルが 0 にあるときを除いて、通常 shutdown を -h
フラグで呼び出し、カーネルにシステムを停止するよう教えます。しかしまず
初めに /var/log/wtmp ファイルへシステムが落されることを書き記します。

init はすべてのプロセスの母となります。通常これはそのコマンドを、どの実
行レベルでどのスクリプトを実行するか、いくつの getty を生成するかを教え
る /etc/inittab から読みます。

killall5 はそれ自身のセッションにあるプロセスを除いて、すべてのプロセス
にシグナルを送ります。つまり、これは自分に呼び出されたスクリプトを実行
しているシェルは停止しません。

last は /var/log/wtmp ファイルを検索し、どのユーザーが最後にログイン(そ
してアウト)したかを表示します。これはまたシステムの起動と停止、実行レベ
ルの変更を表示することもできます。

lastb は /var/log/btmp に記録された失敗したログインの試みを表示します。

mesg は他のユーザが現在のユーザーのターミナルへメッセージを送れるかどう
かを管理します。

pidof は与えられたプログラムの PID を報告します。

poweroff はカーネルにシステムを停止するよう教え、コンピュータの電源をき
ります。しかし halt も見てください。

reboot はカーネルにシステムを再起動するよう教えます。しかし halt も見て
ください。

runlevel は、最新の実行レベルの記録として /var/run/utmp に書き記された
、以前と現在の実行レベルを報告します。

shutdown は、すべてのプロセスにシグナルを送り、すべてのログインしている
ユーザーへ警告を送り、安全な方法でシステムを落します。

sulogin はスーパーユーザーのログインを許可します。これはシステムがシン
グルユーザーモードへ移行したときに、通常 init に呼び出されます。

telinit は init にどの実行レベルへ入るかを教えます。

utmpdump は与えられたログインファイルの内容を親切な形式で表示します。

wall はすべてのログインしてるユーザーへメッセージを書きます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Sysvinit インストール依存性

Sysvinit は以下のパッケージに依存します: Binutils, Coreutils, GCC,
Glibc, Make.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar

インストールの説明については the Section called Tar-1.13.25 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Tar (1.13.25):
ftp://alpha.gnu.org/gnu/tar/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar の内容

Tar は、tar ファイルとして知られるアーカイブファイルへファイルを保管し
、そこから取りだすように設計されたアーカイブプログラムです。

インストールされるプログラム: rmt and tar

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

rmt はプロセス間通信の接続を通して磁気テープドライブを遠隔操作するため
に使われます。

tar は tar ファイルとして知られるアーカイブファイルへファイルを保管し、
そこから取りだすように設計されたアーカイブプログラムです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tar インストール依存性

Tar は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl

インストールの説明については the Section called Tcl-8.4.4 のインストー
ル in Chapter 5 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Tcl (8.4.4):
http://download.sourceforge.net/tcl/
ftp://download.sourceforge.net/pub/sourceforge/tcl/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl の内容

Tcl パッケージは Tool コマンド言語を含みます。

インストールされるプログラム: tclsh (tclsh8.4 へのリンク), tclsh8.4

インストールされるライブラリ: libtcl8.4.so

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

tclsh8.4 は Tcl コマンドシェルです。

libtc18.4.so は Tcl ライブラリです。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Tcl インストール依存性

Tcl は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo

インストールの説明については the Section called Texinfo-4.6 のインスト
ール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Texinfo (4.6):
ftp://ftp.gnu.org/gnu/texinfo/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo の内容

Texinfo パッケージは、システムの公式文章を提供する Info ドキュメントを
読み、書き、変換するために使われるプログラムを含みます。

インストールされるプログラム: info, infokey, install-info, makeinfo,
texi2dvi 及び texindex

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

info は Info 文章を読むために使われます。Info 文章は man page に少し似
ていますが、しばしば単にすべてのフラグを説明するよりも深くなります。た
とえば man tar と info tar を比べてみてください。

infokey は Info のカスタム化を含むソースファイルをバイナリフォーマット
へコンパイルします。

install-info は Info ファイルをインストールするために使われます。これは
Info 目録ファイルの記載を更新します。

makeinfo は与えられた Texinfo ソース文章を様々な他の形式、Info ファイル
やプレーンテキスト、HTML などに翻訳します。

texi2dvi は与えられた Texinfo 文章を印刷可能なデバイスに依存しないファ
イルへ整形するために使われます。

texi2dvi は与えられた Texinfo 文章を印刷可能なデバイスに依存しないファ
イルへ整形するために使われます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Texinfo インストール依存性

Texinfo は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux

インストールの説明については the Section called Util-linux-2.12 のイン
ストール in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Util-linux (2.12):
http://ftp.cwi.nl/aeb/util-linux/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux の内容

Util-linux パッケージは種々雑多なものからなる数多くのユーティリティプロ
グラムを含みます。より重要なユーティリティのいくつかはマウントやアンマ
ウント、フォーマット、パーティション及びディスクドライブの管理、tty ポ
ートのオープンやカーネルメッセージの取得に使われます。

インストールされるプログラム: agetty, arch, blockdev, cal, cfdisk,
chkdupexe, col, colcrt, colrm, column, ctrlaltdel, cytune, ddate,
dmesg, elvtune, fdformat, fdisk, fsck.cramfs, fsck.minix, getopt,
hexdump, hwclock, ipcrm, ipcs, isosize, kill, line, logger, look,
losetup, mcookie, mkfs, mkfs.bfs, mkfs.cramfs, mkfs.minix, mkswap,
more, mount, namei, parse.bash, parse.tcsh, pg, pivot_root, ramsize
(rdev へのリンク), raw, rdev, readprofile, rename, renice, rev,
rootflags (rdev へのリンク), script, setfdprm, setsid, setterm, sfdisk,
swapoff (swapon へのリンク), swapon, test.bash, test.tcsh, tunelp, ul,
umount, vidmode (rdev へのリンク), whereis 及び write

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

agetty はログインネームのためのプロンプトである tty ポートを開き、それ
からログインプログラムを呼び出します。

arch はマシンのアーキテクチャーを報告します。

blockdev を使うとコマンドラインからブロックデバイスである ioctl を呼ぶ
ことができます。

cal は簡単なカレンダーを表示します。

cfdisk は与えられたデバイスのパーティションテーブルを操作するために使わ
れます。

chkdupexe は重複した実行ファイルを探します。

col は逆改行コードを取り除きます。

colcrt は重ね打ちやハーフラインなどを扱う能力が欠如している nroff から
のターミナルへの出力をフィルタするために使われます。

colrm は与えられた縦列を取り除きます。

column は与えられたファイルを複数の縦列に整形します。

ctrlaltdel は Ctrl+Alt+Del というキーの組合せによる機能を、ハード又はソ
フトリセットに設定します。

cytune は Cyclade カードのためのシリアルラインドライバのパラメータを調
節するために使われていました。

ddate はディスコード暦を与えるか、与えられたグレゴリオ暦をディスコード
暦に変換します。

dmesg はカーネル起動メッセージをダンプします。

elvtune はブロックデバイスの履行と対話を調節します。

fdformat はフロッピーディスクを低レベルフォーマットします。

fdisk は与えられたデバイスのパーティションテーブルを操作するために使う
ことができます。

fsck.cramfs は与えられたデバイス上の Cramfs ファイルシステムに整合性検
査を行います。

fsck.minix は与えられたデバイス上の Minix ファイルシステムに整合性検査
を行います。

getopt は与えられたコマンドラインの中のオプションを構文解析します。

hexdump は与えられたファイルを16進数か、又は他の形式でダンプします。

hwclock はシステムのハードウェアクロック(RTC や BIOS クロックとも呼ばれ
ます)を読むか設定するために使われます。

ipcrm は与えられた IPC リソースを削除します。

ipcs は IPC ステータス情報を提供します。

isosize は iso9660 ファイルシステムの大きさを報告します。

kill は指定されたプロセスを終了します。

line は一行をコピーします。

logger は与えられたメッセージをシステムログに記載します。

look は与えられた文字列で始まる行を表示します。

losetup はループデバイスを設定し管理するために使われます。

mcookie はマジッククッキー、128-bit の16進数の乱数を xauth のために生成
します。

mkfs はデバイス(通常はハードディスクのパーティション)上にファイルシステ
ムを構築します。

mkfs.bfs は SCO bfs ファイルシステムを作ります。

mkfs.cramfs は cramfs ファイルシステムを作ります。

mkfs.minix は Minix ファイルシステムを作ります。

mkswap は与えられたデバイスやファイルをスワップ領域として使えるように初
期化します。

more は文章を一度に一画面ずつ表示するためのフィルタです。しかし less の
方がより優れています。

mount は与えられたデバイス上のファイルシステムをシステムのファイルツリ
ーの中にある与えられたディレクトリへ結びつけます。

nemei は与えられたパス名の中にあるシンボリックリンクを表示します。

pg はテキストファイルを一度に一画面表示します。

pivot_root は与えられたファイルシステムを現在のプロセスの新しいルートフ
ァイルシステムにします。

ramsize は起動可能なイメージの中の RAM ディスクのサイズを設定するために
使うことができます。

rdev は起動可能なイメージの中のルートデバイスや他のものを尋ねたり設定す
るために使うことができます。

readprofile はカーネルプロファイリング情報を読みます。

rename は与えられたファイルの名前を変更し、与えられた文字列を他のものに
置き換えます。

renice は実行中のプロセスの優先度を変更するために使われます。

rev は与えられたファイルの行を逆転します。

rootflags は起動可能なイメージの中の rootflag を設定するのに使うことが
できます。

script はターミナルセッションの typescript, ターミナルへ出力されるすべ
てのものの写しを作ります。

setfdprm はユーザーによって提供されたフロッピーディスクのパラメータを設
定します。

setsid は与えられたプログラムを新しいセッションで実行します。

setterm はターミナルの属性を設定するのに使われます。

sfdisk はディスクパーティションを操作するものです。

swapdev は起動可能なイメージの中のスワップデバイスを設定するために使う
ことができます。

swapoff はページングとスワッピングのためのデバイスとファイルを無効にし
ます。

swapon はページングとスワッピングのためのデバイスとファイルを有効にしま
す。

tunelp はラインプリンタのパラメータを調節するのに使われます。

ul はアンダースコアをターミナルで使用できるアンダーラインを表すエスケー
プシーケンスに翻訳するためのフィルタです。

umount はシステムのファイルツリーからファイルシステムを切断します。

vidmode は起動可能なイメージの中のビデオモードを設定するために使うこと
ができます。

whereis は与えられたコマンドのバイナリやソース、説明書の場所を報告しま
す。

write は与えられたユーザーに対してメッセージを送ります。これは、そのユ
ーザーがそのようなメッセージを無効にしていない場合に行われます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Util-linux インストール依存性

Util-linux は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Zlib.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim

インストールの説明については the Section called Vim-6.2 のインストール
in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Vim (6.2):
ftp://ftp.vim.org/pub/editors/vim/unix/

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim の内容

Vim パッケージは能率的な文章編集を可能にするために構築された最適化可能
なテキストエディタを含みます。

インストールされるプログラム: efm_filter.pl, efm_perl.pl, ex (vim への
リンク), less.sh, mve.awk, pltags.pl, ref, rview (vim へのリンク), rvim
(vim へのリンク), shtags.pl, tcltags, vi (vim へのリンク), view (vim へ
のリンク), vim, vim132, vim2html.pl, vimdiff (vim へのリンク), vimm,
vimspell.sh, vimtutor 及び xxd

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

efm_filter.pl は vim で読むことができるエラーファイルを作るためのフィル
タです。

efm_perl.pl は Perl インタープリタのエラーメッセージを vim の quickfix
モードで使うことができるように再整形します。

ex は vim を ex モードで開始します。

less.sh は vim を less.vim で開始するスクリプトです。

mve.aek は vim のエラーを処理します。

pltags.pl は vim で使えるような perl コードのためのタグファイルを作りま
す。

ref は引数の綴りを調べます。

rview は view の制限されたバージョンで、どのシェルコマンドも実行されず
、一時中断することができません。

rvim は vim の制限されたバージョンで、どのシェルコマンドも実行されず、
一時中断することができません。

shtags.pl は perl スクリプトのためのタグファイルを作ります。

tcltags は TCL コードのためのタグファイルを作ります。

vi は vim を vi 互換モードで開始します。

view は vim を読み込み専用モードで開始します。

vim はエディタです。

vim132 は vim をターミナルの132列モードで開始します。

vim2html.pl は vim の公式文章を HTML に変換します。

vimdiff は一つのファイルの二つないし三つのバージョンを vim で編集し、違
いを表示します。

vimm はリモートターミナル上で DEC ロケーター入力モデルを有効にします。

vimspell.sh はファイルを綴り、vim の中でハイライトを行うために必要とな
る文法声明文を生成するスクリプトです。

vimtutor は vim の基本的なキーとコマンドをあなたに教えます。

xxd は与えられたファイルの16進数のダンプを作ります。これはまたその逆も
行い、それゆえバイナリパッチのために使うことができます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Vim インストール依存性

Vim は以下のパッケージに依存します: Bash, Binutils, Coreutils,
Diffutils, GCC, Glibc, Grep, Make, Ncurses, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib

インストールの説明については the Section called Zlib-1.1.4 のインストー
ル in Chapter 6 という項を見てください。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

公式ダウンロード場所

Zlib (1.1.4):
http://www.gzip.org/zlib/

Zlib Vsnprintf パッチ:
http://www.linuxfromscratch.org/patches/lfs/5.0/
zlib-1.1.4-vsnprintf.patch

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib の内容

Zlib パッケージはいくつかのプログラムがその圧縮と展開の機能のために必要
とする libz ライブラリを含みます。

インストールされるライブラリ: libz[a,so]

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

略説

libz* はいくつかのプログラムに使われる圧縮と展開の関数を含みます。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Zlib インストール依存性

Zlib は以下のパッケージに依存します: Binutils, Coreutils, GCC, Glibc,
Make, Sed.

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 

Appendix B. プログラムとライブラリファイルの目録

これはこの本の中でインストールされた全てのプログラムとライブラリのリス
トで、付録 A の中のそれが属するパッケージと対応します。

 ・ a2p : Perl
   
 ・ acinstall : Automake
   
 ・ aclocal : Automake
   
 ・ addftinfo : Groff
   
 ・ addr2line : Binutils
   
 ・ afmtodit : Groff
   
 ・ agetty : Util-linux
   
 ・ apropos : Man
   
 ・ ar : Binutils
   
 ・ arch : Util-linux
   
 ・ arp : Net-tools
   
 ・ as : Binutils
   
 ・ attrs : Perl
   
 ・ autoconf : Autoconf
   
 ・ autoheader : Autoconf
   
 ・ autom4te : Autoconf
   
 ・ automake : Automake
   
 ・ autopoint : Gettext
   
 ・ autoreconf : Autoconf
   
 ・ autoscan : Autoconf
   
 ・ autoupdate : Autoconf
   
 ・ awk : Gawk
   
 ・ badblocks : E2fsprogs
   
 ・ basename : Coreutils
   
 ・ bash : Bash
   
 ・ bashbug : Bash
   
 ・ bigram : Findutils
   
 ・ bison : Bison
   
 ・ blkid : E2fsprogs
   
 ・ blockdev : Util-linux
   
 ・ bunzip2 : Bzip2
   
 ・ bzcat : Bzip2
   
 ・ bzcmp : Bzip2
   
 ・ bzdiff : Bzip2
   
 ・ bzegrep : Bzip2
   
 ・ bzfgrep : Bzip2
   
 ・ bzgrep : Bzip2
   
 ・ bzip2 : Bzip2
   
 ・ bzip2recover : Bzip2
   
 ・ bzless : Bzip2
   
 ・ bzmore : Bzip2
   
 ・ c++ : GCC
   
 ・ c++filt : Binutils
   
 ・ c2ph : Perl
   
 ・ cal : Util-linux
   
 ・ captoinfo : Ncurses
   
 ・ cat : Coreutils
   
 ・ catchsegv : Glibc
   
 ・ cc : GCC
   
 ・ cc1 : GCC
   
 ・ cc1plus : GCC
   
 ・ cfdisk : Util-linux
   
 ・ chage : Shadow
   
 ・ chattr : E2fsprogs
   
 ・ checkfs : LFS-Bootscripts
   
 ・ chfn : Shadow
   
 ・ chgrp : Coreutils
   
 ・ chkdupexe : Util-linux
   
 ・ chmod : Coreutils
   
 ・ chown : Coreutils
   
 ・ chpasswd : Shadow
   
 ・ chroot : Coreutils
   
 ・ chsh : Shadow
   
 ・ chvt : Kbd
   
 ・ cksum : Coreutils
   
 ・ cleanfs : LFS-Bootscripts
   
 ・ clear : Ncurses
   
 ・ cmp : Diffutils
   
 ・ code : Findutils
   
 ・ col : Util-linux
   
 ・ colcrt : Util-linux
   
 ・ collect2 : GCC
   
 ・ colrm : Util-linux
   
 ・ column : Util-linux
   
 ・ comm : Coreutils
   
 ・ compile : Automake
   
 ・ compile_et : E2fsprogs
   
 ・ config.charset : Gettext
   
 ・ config.guess : Automake
   
 ・ config.rpath : Gettext
   
 ・ config.sub : Automake
   
 ・ cp : Coreutils
   
 ・ cpp : GCC
   
 ・ csplit : Coreutils
   
 ・ ctrlaltdel : Util-linux
   
 ・ cut : Coreutils
   
 ・ cytune : Util-linux
   
 ・ date : Coreutils
   
 ・ dd : Coreutils
   
 ・ ddate : Util-linux
   
 ・ deallocvt : Kbd
   
 ・ debugfs : E2fsprogs
   
 ・ depcomp : Automake
   
 ・ depmod : Modutils
   
 ・ df : Coreutils
   
 ・ diff : Diffutils
   
 ・ diff3 : Diffutils
   
 ・ dir : Coreutils
   
 ・ dircolors : Coreutils
   
 ・ dirname : Coreutils
   
 ・ dmesg : Util-linux
   
 ・ dnsdomainname : Net-tools
   
 ・ domainname : Net-tools
   
 ・ dpasswd : Shadow
   
 ・ dprofpp : Perl
   
 ・ du : Coreutils
   
 ・ dumpe2fs : E2fsprogs
   
 ・ dumpkeys : Kbd
   
 ・ e2fsck : E2fsprogs
   
 ・ e2image : E2fsprogs
   
 ・ e2label : E2fsprogs
   
 ・ echo : Coreutils
   
 ・ ed : Ed
   
 ・ efm_filter.pl : Vim
   
 ・ efm_perl.pl : Vim
   
 ・ egrep : Grep
   
 ・ elisp-comp : Automake
   
 ・ elvtune : Util-linux
   
 ・ env : Coreutils
   
 ・ enc2xs : Perl
   
 ・ eqn : Groff
   
 ・ e2n2graph : Groff
   
 ・ ex : Vim
   
 ・ expand : Coreutils
   
 ・ expiry : Shadow
   
 ・ expr : Coreutils
   
 ・ factor : Coreutils
   
 ・ faillog : Shadow
   
 ・ false : Coreutils
   
 ・ fdformat : Util-linux
   
 ・ fdisk : Util-linux
   
 ・ fgconsole : Kbd
   
 ・ fgrep : Grep
   
 ・ file : File
   
 ・ find : Findutils
   
 ・ find2perl : Perl
   
 ・ findfs : E2fsprogs
   
 ・ flex : Flex
   
 ・ flex++ : Flex
   
 ・ fmt : Coreutils
   
 ・ fold : Coreutils
   
 ・ frcode : Findutils
   
 ・ free : Procps
   
 ・ fsck : E2fsprogs
   
 ・ fsck.cramfs : Util-linux
   
 ・ fsck.ext2 : E2fsprogs
   
 ・ fsck.ext3 : E2fsprogs
   
 ・ fsck.minix : Util-linux
   
 ・ ftp : Inetutils
   
 ・ functions : LFS-Bootscripts
   
 ・ fuser : Psmisc
   
 ・ g++ : GCC
   
 ・ gawk : Gawk
   
 ・ gcc : GCC
   
 ・ gccbug : GCC
   
 ・ gcov : GCC
   
 ・ gencat : Glibc
   
 ・ genksyms : Modutils
   
 ・ geqn : Groff
   
 ・ getconf : Glibc
   
 ・ getent : Glibc
   
 ・ getkeycodes : Kbd
   
 ・ getopt : Util-linux
   
 ・ gettext : Gettext
   
 ・ gettextize : Gettext
   
 ・ getunimap : Kbd
   
 ・ glibcbug : Glibc
   
 ・ gpasswd : Shadow
   
 ・ gprof : Binutils
   
 ・ grcat : Gawk
   
 ・ grep : Grep
   
 ・ grn : Groff
   
 ・ grodvi : Groff
   
 ・ groff : Groff
   
 ・ groffer : Groff
   
 ・ grog : Groff
   
 ・ grolbp : Groff
   
 ・ grolj4 : Groff
   
 ・ grops : Groff
   
 ・ grotty : Groff
   
 ・ groupadd : Shadow
   
 ・ groupdel : Shadow
   
 ・ groupmod : Shadow
   
 ・ groups : Shadow
   
 ・ groups : Coreutils
   
 ・ grpck : Shadow
   
 ・ grpconv : Shadow
   
 ・ grpunconv : Shadow
   
 ・ gtbl : Groff
   
 ・ gunzip : Gzip
   
 ・ gzexe : Gzip
   
 ・ gzip : Gzip
   
 ・ h2ph : Perl
   
 ・ h2xs : Perl
   
 ・ halt : LFS-Bootscripts
   
 ・ halt : Sysvinit
   
 ・ head : Coreutils
   
 ・ hexdump : Util-linux
   
 ・ hostid : Coreutils
   
 ・ hostname : Gettext
   
 ・ hostname : Net-tools
   
 ・ hostname : Coreutils
   
 ・ hpftodit : Groff
   
 ・ http-get : Lfs-Utils
   
 ・ hwclock : Util-linux
   
 ・ iana-net : Lfs-Utils
   
 ・ iconv : Glibc
   
 ・ iconvconfig : Glibc
   
 ・ id : Coreutils
   
 ・ ifconfig : Net-tools
   
 ・ ifdown : LFS-Bootscripts
   
 ・ ifnames : Autoconf
   
 ・ ifup : LFS-Bootscripts
   
 ・ igawk : Gawk
   
 ・ indxbib : Groff
   
 ・ info : Texinfo
   
 ・ infocmp : Ncurses
   
 ・ infokey : Texinfo
   
 ・ infotocap : Ncurses
   
 ・ init : Sysvinit
   
 ・ insmod : Modutils
   
 ・ insmod_ksymoops_clean : Modutils
   
 ・ install : Coreutils
   
 ・ install-info : Texinfo
   
 ・ install-sh : Automake
   
 ・ ipcrm : Util-linux
   
 ・ ipcs : Util-linux
   
 ・ isosize : Util-linux
   
 ・ join : Coreutils
   
 ・ kallsyms : Modutils
   
 ・ kbdrate : Kbd
   
 ・ kbd_mode : Kbd
   
 ・ kernelversion : Modutils
   
 ・ kill : Procps
   
 ・ kill : Coreutils
   
 ・ kill : Util-linux
   
 ・ killall : Psmisc
   
 ・ killall5 : Sysvinit
   
 ・ klogd : Sysklogd
   
 ・ ksyms : Modutils
   
 ・ last : Sysvinit
   
 ・ lastb : Sysvinit
   
 ・ lastlog : Shadow
   
 ・ ld : Binutils
   
 ・ ld.so : Glibc
   
 ・ ldconfig : Glibc
   
 ・ ldd : Glibc
   
 ・ lddlibc4 : Glibc
   
 ・ less : Less
   
 ・ less.sh : Vim
   
 ・ lessecho : Less
   
 ・ lesskey : Less
   
 ・ lex : Flex
   
 ・ libanl : Glibc
   
 ・ libasprintf : Gettext
   
 ・ libbfd : Binutils
   
 ・ libblkid : E2fsprogs
   
 ・ libBrokenLocale : Glibc
   
 ・ libbsd-compat : Glibc
   
 ・ libbz2 : Bzip2
   
 ・ libc : Glibc
   
 ・ libcom_err : E2fsprogs
   
 ・ libcrypt : Glibc
   
 ・ libcurses : Ncurses
   
 ・ libc_nonshared : Glibc
   
 ・ libdl : Glibc
   
 ・ libe2p : E2fsprogs
   
 ・ libext2fs : E2fsprogs
   
 ・ libfl : Flex
   
 ・ libform : Ncurses
   
 ・ libg : Glibc
   
 ・ libgcc* : GCC
   
 ・ libgettextlib : Gettext
   
 ・ libgettextpo : Gettext
   
 ・ libgettextsrc : Gettext
   
 ・ libiberty : GCC
   
 ・ libieee : Glibc
   
 ・ libltdl* : Libtool
   
 ・ libm : Glibc
   
 ・ libmagic : File
   
 ・ libmcheck : Glibc
   
 ・ libmemusage : Glibc
   
 ・ libmenu : Ncurses
   
 ・ libmisc : Shadow
   
 ・ libncurses* : Ncurses
   
 ・ libnetcfg : Perl
   
 ・ libnsl : Glibc
   
 ・ libnss* : Glibc
   
 ・ libopcodes : Binutils
   
 ・ libpanel : Ncurses
   
 ・ libpcprofile : Glibc
   
 ・ libperl : Perl
   
 ・ libproc : Procps
   
 ・ libpthread : Glibc
   
 ・ libresolv : Glibc
   
 ・ librpcsvc : Glibc
   
 ・ librt : Glibc
   
 ・ libSegFault : Glibc
   
 ・ libshadow : Shadow
   
 ・ libss : E2fsprogs
   
 ・ libstdc++ : GCC
   
 ・ libsupc++ : GCC
   
 ・ libthread_db : Glibc
   
 ・ libtool : Libtool
   
 ・ libtoolize : Libtool
   
 ・ libutil : Glibc
   
 ・ libuuid : E2fsprogs
   
 ・ liby : Bison
   
 ・ libz : Zlib
   
 ・ line : Util-linux
   
 ・ link : Coreutils
   
 ・ lkbib : Groff
   
 ・ ln : Coreutils
   
 ・ loadkeys : LFS-Bootscripts
   
 ・ loadkeys : Kbd
   
 ・ loadunimap : Kbd
   
 ・ locale : Glibc
   
 ・ localedef : Glibc
   
 ・ localnet : LFS-Bootscripts
   
 ・ locate : Findutils
   
 ・ logger : Util-linux
   
 ・ login : Shadow
   
 ・ logname : Coreutils
   
 ・ logoutd : Shadow
   
 ・ logsave : E2fsprogs
   
 ・ look : Util-linux
   
 ・ lookbib : Groff
   
 ・ losetup : Util-linux
   
 ・ ls : Coreutils
   
 ・ lsattr : E2fsprogs
   
 ・ lsdev : Procinfo
   
 ・ lsmod : Modutils
   
 ・ m4 : M4
   
 ・ make : Make
   
 ・ MAKEDEV : Makedev
   
 ・ makeinfo : Texinfo
   
 ・ makewhatis : Man
   
 ・ man : Man
   
 ・ man2dvi : Man
   
 ・ man2html : Man
   
 ・ mapscrn : Kbd
   
 ・ mcookie : Util-linux
   
 ・ md5sum : Coreutils
   
 ・ mdate-sh : Automake
   
 ・ mesg : Sysvinit
   
 ・ missing : Automake
   
 ・ mkdir : Coreutils
   
 ・ mke2fs : E2fsprogs
   
 ・ mkfifo : Coreutils
   
 ・ mkfs : Util-linux
   
 ・ mkfs.bfs : Util-linux
   
 ・ mkfs.cramfs : Util-linux
   
 ・ mkfs.ext2 : E2fsprogs
   
 ・ mkfs.ext3 : E2fsprogs
   
 ・ mkfs.minix : Util-linux
   
 ・ mkinstalldirs : Automake
   
 ・ mklost+found : E2fsprogs
   
 ・ mknod : Coreutils
   
 ・ mkpasswd : Shadow
   
 ・ mkswap : Util-linux
   
 ・ mktemp : Lfs-Utils
   
 ・ mk_cmds : E2fsprogs
   
 ・ mmroff : Groff
   
 ・ modinfo : Modutils
   
 ・ modprobe : Modutils
   
 ・ more : Util-linux
   
 ・ mount : Util-linux
   
 ・ mountfs : LFS-Bootscripts
   
 ・ mountproc : LFS-Bootscripts
   
 ・ msgattrib : Gettext
   
 ・ msgcat : Gettext
   
 ・ msgcmp : Gettext
   
 ・ msgcomm : Gettext
   
 ・ msgconv : Gettext
   
 ・ msgen : Gettext
   
 ・ msgexec : Gettext
   
 ・ msgfilter : Gettext
   
 ・ msgfmt : Gettext
   
 ・ msggrep : Gettext
   
 ・ msginit : Gettext
   
 ・ msgmerge : Gettext
   
 ・ msgunfmt : Gettext
   
 ・ msguniq : Gettext
   
 ・ mtrace : Glibc
   
 ・ mv : Coreutils
   
 ・ mve.awk : Vim
   
 ・ namei : Util-linux
   
 ・ nameif : Net-tools
   
 ・ neqn : Groff
   
 ・ netstat : Net-tools
   
 ・ network : LFS-Bootscripts
   
 ・ newgrp : Shadow
   
 ・ newusers : Shadow
   
 ・ ngettext : Gettext
   
 ・ nice : Coreutils
   
 ・ nisdomainname : Net-tools
   
 ・ nl : Coreutils
   
 ・ nm : Binutils
   
 ・ nohup : Coreutils
   
 ・ nroff : Groff
   
 ・ nscd : Glibc
   
 ・ nscd_nischeck : Glibc
   
 ・ objcopy : Binutils
   
 ・ objdump : Binutils
   
 ・ od : Coreutils
   
 ・ oldps : Procps
   
 ・ openvt : Kbd
   
 ・ parse.bash : Util-linux
   
 ・ parse.tcsh : Util-linux
   
 ・ passwd : Shadow
   
 ・ paste : Coreutils
   
 ・ patch : Patch
   
 ・ pathchk : Coreutils
   
 ・ pcprofiledump : Glibc
   
 ・ perl : Perl
   
 ・ perlbug : Perl
   
 ・ perlcc : Perl
   
 ・ perldoc : Perl
   
 ・ perlivp : Perl
   
 ・ pfbtops : Groff
   
 ・ pg : Util-linux
   
 ・ pgawk : Gawk
   
 ・ pgrep : Procps
   
 ・ pic : Groff
   
 ・ pic2graph : Groff
   
 ・ piconv : Perl
   
 ・ pidof : Sysvinit
   
 ・ ping : Inetutils
   
 ・ pinky : Coreutils
   
 ・ pivot_root : Util-linux
   
 ・ pkill : Procps
   
 ・ pl2pm : Perl
   
 ・ plipconfig : Net-tools
   
 ・ pltags.pl : Vim
   
 ・ pmap : Procps
   
 ・ pod2html : Perl
   
 ・ pod2latex : Perl
   
 ・ pod2man : Perl
   
 ・ pod2text : Perl
   
 ・ pod2usage : Perl
   
 ・ podchecker : Perl
   
 ・ podselect : Perl
   
 ・ post-grohtml : Groff
   
 ・ poweroff : Sysvinit
   
 ・ pr : Coreutils
   
 ・ pre-grohtml : Groff
   
 ・ printenv : Coreutils
   
 ・ printf : Coreutils
   
 ・ procinfo : Procinfo
   
 ・ project-id : Gettext
   
 ・ ps : Procps
   
 ・ psed : Perl
   
 ・ psfaddtable : Kbd
   
 ・ psfgettable : Kbd
   
 ・ psfstriptable : Kbd
   
 ・ psfxtable : Kbd
   
 ・ pstree : Psmisc
   
 ・ pstruct : Perl
   
 ・ ptx : Coreutils
   
 ・ pt_chown : Glibc
   
 ・ pwcat : Gawk
   
 ・ pwck : Shadow
   
 ・ pwconv : Shadow
   
 ・ pwd : Coreutils
   
 ・ pwunconv : Shadow
   
 ・ py-compile : Automake
   
 ・ ramsize : Util-linux
   
 ・ ranlib : Binutils
   
 ・ rarp : Net-tools
   
 ・ raw : Util-linux
   
 ・ rc : LFS-Bootscripts
   
 ・ rcp : Inetutils
   
 ・ rdev : Util-linux
   
 ・ re : Perl
   
 ・ readelf : Binutils
   
 ・ readlink : Coreutils
   
 ・ readprofile : Util-linux
   
 ・ reboot : LFS-Bootscripts
   
 ・ reboot : Sysvinit
   
 ・ red : Ed
   
 ・ ref : Vim
   
 ・ refer : Groff
   
 ・ rename : Util-linux
   
 ・ renice : Util-linux
   
 ・ reset : Ncurses
   
 ・ resize2fs : E2fsprogs
   
 ・ resizecons : Kbd
   
 ・ rev : Util-linux
   
 ・ rlogin : Inetutils
   
 ・ rm : Coreutils
   
 ・ rmdir : Coreutils
   
 ・ rmmod : Modutils
   
 ・ rmt : Tar
   
 ・ rootflags : Util-linux
   
 ・ route : Net-tools
   
 ・ rpcgen : Glibc
   
 ・ rpcinfo : Glibc
   
 ・ rsh : Inetutils
   
 ・ runlevel : Sysvinit
   
 ・ rview : Vim
   
 ・ rvim : Vim
   
 ・ s2p : Perl
   
 ・ script : Util-linux
   
 ・ sdiff : Diffutils
   
 ・ sed : Sed
   
 ・ sendsignals : LFS-Bootscripts
   
 ・ seq : Coreutils
   
 ・ setclock : LFS-Bootscripts
   
 ・ setfdprm : Util-linux
   
 ・ setfont : Kbd
   
 ・ setkeycodes : Kbd
   
 ・ setleds : Kbd
   
 ・ setlogcons : Kbd
   
 ・ setmetamode : Kbd
   
 ・ setsid : Util-linux
   
 ・ setterm : Util-linux
   
 ・ setvesablank : Kbd
   
 ・ sfdisk : Util-linux
   
 ・ sg : Shadow
   
 ・ sh : Bash
   
 ・ sha1sum : Coreutils
   
 ・ showconsolefont : Kbd
   
 ・ showkey : Kbd
   
 ・ shred : Coreutils
   
 ・ shtags.pl : Vim
   
 ・ shutdown : Sysvinit
   
 ・ size : Binutils
   
 ・ skill : Procps
   
 ・ slattach : Net-tools
   
 ・ sleep : Coreutils
   
 ・ sln : Glibc
   
 ・ snice : Procps
   
 ・ socklist : Procinfo
   
 ・ soelim : Groff
   
 ・ sort : Coreutils
   
 ・ splain : Perl
   
 ・ split : Coreutils
   
 ・ sprof : Glibc
   
 ・ stat : Coreutils
   
 ・ strings : Binutils
   
 ・ strip : Binutils
   
 ・ stty : Coreutils
   
 ・ su : Coreutils
   
 ・ sulogin : Sysvinit
   
 ・ sum : Coreutils
   
 ・ swap : LFS-Bootscripts
   
 ・ swapoff : Util-linux
   
 ・ swapon : Util-linux
   
 ・ sync : Coreutils
   
 ・ sysctl : Procps
   
 ・ sysklogd : LFS-Bootscripts
   
 ・ syslogd : Sysklogd
   
 ・ tac : Coreutils
   
 ・ tack : Ncurses
   
 ・ tail : Coreutils
   
 ・ talk : Inetutils
   
 ・ tar : Tar
   
 ・ tbl : Groff
   
 ・ tcltags : Vim
   
 ・ team-address : Gettext
   
 ・ tee : Coreutils
   
 ・ telinit : Sysvinit
   
 ・ telnet : Inetutils
   
 ・ tempfile : Lfs-Utils
   
 ・ template : LFS-Bootscripts
   
 ・ test : Coreutils
   
 ・ test.bash : Util-linux
   
 ・ test.tcsh : Util-linux
   
 ・ texi2dvi : Texinfo
   
 ・ texindex : Texinfo
   
 ・ tfmtodit : Groff
   
 ・ tftp : Inetutils
   
 ・ tic : Ncurses
   
 ・ tload : Procps
   
 ・ toe : Ncurses
   
 ・ top : Procps
   
 ・ touch : Coreutils
   
 ・ tput : Ncurses
   
 ・ tr : Coreutils
   
 ・ trigger : Gettext
   
 ・ troff : Groff
   
 ・ true : Coreutils
   
 ・ tset : Ncurses
   
 ・ tsort : Coreutils
   
 ・ tty : Coreutils
   
 ・ tune2fs : E2fsprogs
   
 ・ tunelp : Util-linux
   
 ・ tzselect : Glibc
   
 ・ ul : Util-linux
   
 ・ umount : Util-linux
   
 ・ uname : Coreutils
   
 ・ uncompress : Gzip
   
 ・ unexpand : Coreutils
   
 ・ unicode_start : Kbd
   
 ・ unicode_stop : Kbd
   
 ・ uniq : Coreutils
   
 ・ unlink : Coreutils
   
 ・ updatedb : Findutils
   
 ・ uptime : Coreutils
   
 ・ uptime : Procps
   
 ・ urlget : Gettext
   
 ・ user-email : Gettext
   
 ・ useradd : Shadow
   
 ・ userdel : Shadow
   
 ・ usermod : Shadow
   
 ・ users : Coreutils
   
 ・ utmpdump : Sysvinit
   
 ・ uuidgen : E2fsprogs
   
 ・ vdir : Coreutils
   
 ・ vi : Vim
   
 ・ vidmode : Util-linux
   
 ・ view : Vim
   
 ・ vigr : Shadow
   
 ・ vim : Vim
   
 ・ vim132 : Vim
   
 ・ vim2html.pl : Vim
   
 ・ vimdiff : Vim
   
 ・ vimm : Vim
   
 ・ vimspell.sh : Vim
   
 ・ vimtutor : Vim
   
 ・ vipw : Shadow
   
 ・ vmstat : Procps
   
 ・ w : Procps
   
 ・ wall : Sysvinit
   
 ・ watch : Procps
   
 ・ wc : Coreutils
   
 ・ whatis : Man
   
 ・ whereis : Util-linux
   
 ・ who : Coreutils
   
 ・ whoami : Coreutils
   
 ・ write : Util-linux
   
 ・ xargs : Findutils
   
 ・ xgettext : Gettext
   
 ・ xsubpp : Perl
   
 ・ xtrace : Glibc
   
 ・ xxd : Vim
   
 ・ yacc : Bison
   
 ・ yes : Coreutils
   
 ・ ylwrap : Automake
   
 ・ ypdomainname : Net-tools
   
 ・ zcat : Gzip
   
 ・ zcmp : Gzip
   
 ・ zdiff : Gzip
   
 ・ zdump : Glibc
   
 ・ zegrep : Gzip
   
 ・ zfgrep : Gzip
   
 ・ zforce : Gzip
   
 ・ zgrep : Gzip
   
 ・ zic : Glibc
   
 ・ zless : Gzip
   
 ・ zmore : Gzip
   
 ・ znew : Gzip
   
 ・ zsoelim : Groff
   
一覧に戻る
グリーンネット・トップページへ戻る

http://www.green.ne.jp/