続いて、null以外のデバイスファイルを作成する。これも、ほかの一般的なプログラムとはやり方が異なるので補足解説しておこう。MAKEDEV-1.4このアーカイブはtarではないので、bzcatコマンドの出力をリダイレクトしてファイルに保存する。生成されたファイルを見れば分かるが、これは単なるシェルスクリプトである。/dev/MAKEDEV作成したファイルを/dev/へ移動(コピー)する。このとき、名前を変更している。次に、/dev/へカレントディレクトリを移動し、コピーしておいたファイルのパーミッションを「754」に変更する。genericシェルスクリプトMAKEDEVを実行する。このときのオプションは、ptsデバイスを利用するかどうかで指定が異なる。devptsが必要なければ「generic」を指定し、devptsが必要なら「generic-nopty」を指定する。MAKEDEVは一般的に必要とされるデバイスを作成してくれるが、特殊なデバイスを使う場合は手動で作成しなければならないこともある。ptsデバイス(devpts)は端末用のデバイスファイルで、例えばtelnetなどが利用する。これがマウントされていないと、telnetやsshでのログイン、xtermやktermなどの端末エミュレータの使用が不可能になる(/dev/ttyp*などがあれば動作する)。これを使っているかどうかは、mountコマンドの実行結果やリモート接続後にwhoコマンドを入力してみれば分かる。以下は、whoコマンドを実行した場合の出力である。7.2)で、/dev/ptsをマウントしている状態とマウントしていない状態での出力である。(192.168.0.19)ptsを使わず/dev/ttyp*を使っている場合こうして見ると、devptsは必要と思われるかもしれないが、カーネル2.4になってから必要ではなくなったのである。2.4からは、devfsと呼ばれる新しいファイルシステムがサポートされ、それがdevptsと同様の機能を提供しているのだ。devptsを無効にしないとdevfsに問題が生じることもあるくらいである。従って、devfsを使おうと思うのであれば、MAKEDEV実行時にdevptsを使わないオプションを選択した方がよい。LFS-BOOKでも、よく分からないのであればptsデバイス不使用を選ぶようにと推奨している。devfsについての詳しい話はhttp://www-6.ibm.com/jp/developerworks/linux/011221/j_l-fs5.html、ttyp*などの端末スペシャルファイルについてはhttp://www.linux.or.jp/JF/JFdocs/Text-Terminal-HOWTO-6.htmlを参照していただきたい。MAKEDEVで勘違いしてはいけないのは、Windowsのように接続されているデバイスを検知して必要なデバイスファイルを作成しているわけではない、という点だ。MAKEDEVは、あくまでも一般的なデバイス用のファイルを作成しているにすぎない。いえ、「必要なデバイスが作成されていないのではないか」と神経質になる必要はない。ハードディスクやCD-ROMなど、絶対に必要なデバイス用のファイルは作成されているから、それ以外のデバイスが動作しなくても、後で追加することは不可能ではないからだ。PACKAGEに含まれるソフトウェアを一気にインストールしてしまおう。ここまでの内容を理解していれば、ほかのソフトウェアのインストールで使われているコマンドの意味も難なく理解できるだろう。ここでインストールするソフトウェアの中には、準備段階(第2回)でインストールしたものも含まれているが、それはあくまでもライブラリを静的にリンクしたものにすぎない。今回は、ライブラリを動的にリンクするように指定して、あらためてインストールし直す。make時のオプションを見れば、それが分かるはずだ。再インストール後に各プログラムのファイルサイズを見てみると、随分小さくなったことが分かるはずだ。ベースとなるディストリビューションに戻って、dfコマンドでディスクの空き容量を調べてみると、大きな差があることが理解できるだろう。今回は、ソフトウェアのインストールまでで一区切りとすることにしよう。次回は、インストールしたソフトウェアの設定を行い、LFSを単独で起動してみたい。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。