連載
» 2002年09月10日 00時00分 公開

LFSで作って学ぶLinuxの仕組み(1):ソースファイルからLinux環境を構築しよう! (1/3)

最近のディストリビューションは非常に多くのプログラムから成っており、システムに必要なソフトウェアを把握するのは困難になってきている。必要なプログラムを1つずつ自分でコンパイルしてインストールするLinux From Scratchを通して、LinuxがOSとして機能するための仕組みを学んでもらいたい。(編集局)

[一志達也,@IT]

Linux From Scratchとは

 Linux From Scratch(以下LFS)とは、1999年に本格始動したプロジェクトの名称である。日本での知名度はまだまだだが、海外では相応の注目を集めている。

 LFSを一言でいうなら、「一からLinux環境を構築しよう」といったところだろう。ここでいう「一から」とは、カーネルを含むあらゆるプログラムを意味する。環境構築のために必要なものはすべてソースコードからコンパイルし、1つずつシステムに組み込んでいくのがLFSなのである。当然ながら、LFSは一般的なディストリビューションとは違う(編注)。Red Hat/Debian/SuSE/Slackwareなど、およそ考え付くLinuxディストリビューションは、容易に環境を構築できるインストーラを備えている。CD-ROM(またはインストール・ディスク)をセットしてコンピュータを起動すれば、1時間ほどで何不自由ない環境を構築してくれるはずだ。

 それにもかかわらず、なぜわざわざ不自由な思いをして一からコンパイルなどしなくてはならないのだろうか?

編注:LFSに比較的近いディストリビューションをあえて挙げるならGentoo Linux(http://www.gentoo.org/)がある。


LFSを使う目的

 LFSを使う(一から環境を作ってみる)最大の目的は、Linuxの動作について学ぶことにある。1つ1つプログラムをコンパイルして、少しずつ環境を構築してみれば、普段何げなく使っている各機能が何によって動作しているかを理解できる。カーネルとは何か、デバイスとは何か、OSとは何かを理解できるだろう。

 それは、LinuxがWindowsよりもコンピュータを理解するのに適しているのと同じである。すべてが隠ぺいされ、GUIで操作するWindowsに比べ、デバイスなどを意識してコマンドで操作するLinuxの方が、確かにコンピュータに関する理解を必要とする。LFSは、Linuxが熟成する間に隠ぺいされていった部分を意識させるから、必然的にコンピュータやOSへの理解が深まるのである。

 もう1つの目的は、自分に必要なプログラムだけを組み込み、好みの設定を適用した自分だけのディストリビューションが作成できることである。通常のディストリビューション(編注)のインストーラが必要なプログラムを選択する機会を用意しているといっても、本当の意味で必要最小限のファイルに抑えられるわけではない。LFSであれば、何か(例えばApache)を高速に動作させることだけに目的を絞り、GUIも余計なツール類も一切含まれないディストリビューションを作成できる。

編注:ここではRed Hat Linuxなど、インストーラで基本的な設定を行いながらバイナリでインストールするディストリビューションを指す。


 LFSドキュメントの言葉を借りれば、一般的なディストリビューションはファストフードで買うハンバーガーなのだという。それに対し、自分で一から作るハンバーガーがLFSというわけだ。ハンバーガー(環境)を作るための材料(ソースコード)は、あらかじめ用意されていて、LFSプロジェクトから提供される。どの材料を使い、どのように調理するかは自由だ。とにかくゴージャスなハンバーガーも、チープなハンバーガーも、焼き加減も味付けも自由自在。それがおいしいと感じれば、ほかの人にレシピ(ディストリビューション)を公開し、みんなで共有してもいい。

 調理済みのものを買っているだけでは分からない調理法や、そこに含まれている材料も理解できる。理解を深めて、自分好みに仕上げることもできる。あえて調理しなくても不自由はしないし、かえってまずくなってしまうかもしれないが、挑戦してみる価値があると思わないだろうか?

それがLFSであって、便利とか高性能とか高機能を誇るものとは違うのである。

LFSが稼働する環境

 LFSは、Linuxが動作する環境であればPowerPCでもSPARCでも環境を選ばない。ただし、提供されているソースコードはx86(IA)の環境で開発されたものである。環境が異なれば、ハードウェアに依存する部分でコンパイルができないなどの困難に遭遇する機会が増えるだろう。筆者も、x86環境で本稿の執筆を進める。

LFSインストール作業の前に

LFS BOOKの取得

 LFSを始めるに当たって、まずは参考文献を取得しよう。これは「LFS BOOK」と呼ばれるもので、LFSの公式サイト(http://www.linuxfromscratch.org/)から取得できる。英語ではあるが、いまのところこれが最も確実な手掛かりを提供してくれる。ファイルのサイズは800Kbytes程度だから、手軽に取得できるだろう。公式サイトの左側にある「download」カテゴリから「lfs books」を選択すればよい。FTPサイトのミラーにリンクされているから、適切なミラーサイトを選んで/lfs-books/3.3/に格納されたファイルを取得する。

 HTML形式やテキスト形式、PDF形式などが用意されているので、好みのものを取得すればいいだろう。いずれもbz2で圧縮されているが、uncompressedディレクトリにある非圧縮のファイルを取得してもよい。以下のリンクでシンガポールのミラーサイトに直接アクセスできる。

 また、以下のWebページではLFS BOOKの日本語訳が公開されている。「まだ完成品ではなく、これから修正を加えていく」とのことだが、それでも非常に有用だろう。英語版と併せて活用していただきたい。

インストールの準備

 それでは、LFSで環境を構築するに当たって、最初に行う準備作業の手順を紹介しよう。

1.Linuxのインストール
 LFSで環境を構築するには、何らかのディストリビューションのLinuxをあらかじめインストールしておかなくてはならない。これは、ファイルを操作するためのシェルやエディタ、コンパイルを行うための環境が必要になるためである。本稿の読者であれば、すでにLinux環境を持っている方が多いと思う。

2.LFS用パーティションの作成
 LFSのために最初に行うべき作業は、ディスクスペース(パーティション)を作成することだ。先に述べたとおり、LFSでの環境構築には別のLinux環境が必要だ。その際、インストール済みのLinuxで、LFS用のパーティションを作成してマウントする必要がある(図1)。詳しくは次のセクションで紹介しよう。

/  
/bin
/boot
/dev
/etc
/home
/lib
/mnt
  /cdrom
  /floppy
  /lfs
  /bin
  /boot
  /dev
  /etc
  (以下略)
 
(中略)
/root
/sbin
/usr
/var
図1 ブルーの部分がLFS用パーティションで、ここに各ディレクトリを作成する。それ以外は既存のLinuxのパーティション/ディレクトリ

3.LFS用ユーザーの作成
 LFSの環境構築を進めるために、インストール済みのLinuxに環境構築作業用のユーザーを作成する。

4.ディレクトリの作成
 作成したパーティションに、環境構築を行うためのディレクトリを作成する。

5.ファイルのダウンロードと展開
 ここまでの作業が完了したら、後はLFSの公式サイトで配布されているファイルをダウンロードし、環境構築作業を進めていけばよい。

       1|2|3 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。