  Saving Space mini-HOWTO
  Guido Gonzato（guido@ibogeo.df.unibo.it）
  v1.0.1, 7 April 1999
  山下 義之
  20 April 2000

  この mini-HOWTO はお使いの Linux システムをぎりぎりまでスリムにするた
  めの手引きです。とりわけノートパソコンのユーザーを念頭に置いて書かれて
  います。
  ______________________________________________________________________

  目次

  1. はじめに
  2. 用意すべきソフトウェア
  3. 手順
     3.1 カーネルソースの削除
     3.2 アプリケーションの整理
     3.3 バイナリのシェイプアップ
     3.4 upx による圧縮
     3.5 かたっぱしから gzip

  4. 実際の一例
  5. 最後に
     5.1 著作権について
     5.2 免責条項

  ______________________________________________________________________

  1.  はじめに

  筆者の手持ちのノートパソコンでは、もともとインストールされていた
  Windows 95 とあとからインストールした Linux が共存しています。Windows
  のパーティションを 500MB まで切り詰めた結果、Linux のパーティションと
  しては 240MB のスペースを確保できました。後者は小さく感じられるかもし
  れませんが、RedHat 4.1 にちょっとした細工をほどこすことで、なるべく多
  くのスペースを節約し、それなりに充実した Linux システムを導入できてい
  ます。

  空きスペースが不足しているという方も、以下の各章に記されたアイデアを実
  行すれば、ハードディスクの空き容量をかなり増やせることでしょう。ただ
  し、ひとつだけお断りを――トラブルが発生してもわたしのせいにはしないよ
  うに！ これから使用するプログラムは、いずれも筆者の環境においてうまく
  機能しましたが、そもそも危険性の伴うものばかりです。確かに警告しました
  からね。

  2.  用意すべきソフトウェア

  必要なものは以下のとおり。

  o  きちんと動作する Linux システム（どのバージョンでもよいはず）。

  o  おなじみの圧縮プログラム gzip。さもなくば、
     <ftp://sunsite.unc.edu:/pub/Linux/utils/compress> で bzip2 を入手し
     てもよい。こちらは gzip に勝る圧縮率を誇るものの、やや処理が遅く、
     メモリの消費量も多い。

  o  圧縮ツール upx。ホームページは
     <http://cdata.tvnet.hu/~ml/upx.html> と <http://wildsau.idv.uni-
     linz.ac.at/mfx/upx.html> 。

  o  zlibc パッケージ。これは
     <ftp://sunsite.unc.edu:/pub/Linux/libs/compression> で手に入る。
     ファイル名は zlibc-X.X.tar.gz で、X.X の部分は最新のバージョン番
     号。

     圧縮ツールはほかにもあります。gzexe もそのひとつですが（無視）、upx
     が出回る以前の最上品といえば tcx でしょう。また、理論上は tcx より
     tzx のほうがさらに優れているはずです。もっとも、操作に手落ちがあっ
     たのか、遊んでいたパソコンで筆者が tzx を使ってみたときは大失敗に終
     わりました。ここはやはり upx でしょう。信頼の置ける優秀なソフトです
     し、扱いもごく簡単です。

  Stacker よろしく、ファイルシステムの透過的な圧縮を実現するカーネルパッ
  チもいくつかありますが、本稿の執筆時点では、安定性および信頼性の面で定
  評を確立するまでに至っていません。手を出さないほうが無難でしょう。

  3.  手順

  3.1.  カーネルソースの削除

  カーネルソースは 20MB 以上もありますから、削除したくなるところでしょ
  う。そうとなったら、ご自分のマシンに合った新しいカーネルをコンパイルし
  てしまい、しかるのちにソースを処分することです。ただし、作業は慎重にど
  うぞ。

  マシンの設定がきちんとできているかどうか心もとないのなら、カーネルソー
  スの削除は決してお勧めできません。また、カーネルのインクルードファイル
  は C のプログラムをコンパイルする際に欠かせません。事前にじっくり考え
  ましょう！

  削除することにした場合も、以後そのマシンでアプリケーションをコンパイル
  する可能性がゼロでなければ、include/linux 以下のディレクトリツリーはぜ
  ひ残しておきましょう。

  3.2.  アプリケーションの整理

  さて、どうしても必要なアプリケーションを選別してください。考えてみれば
  余計なものもあるはずです。たとえば、本当に Emacs なしではやっていけま
  せんか？ 代わりに jed を使う手もありますよ。

  どれを残すべきか判断するのはあなた自身です。以下は一般論になります。

  o  gcc はかなり大きなパッケージです。が、カーネルを再構築するとき
     や、Linux 向けのバイナリが用意されていないアプリケーションを再コン
     パイルするときには欠かせません。また、言うまでもありませんが、自分
     の手で C や（ f2c ないし g77 を使って）Fortran のプログラムを書くと
     きも入り用になります。自分には何が必要なのか、削除する前によく考え
     てください。lcc など、ほかのコンパイラも悪くはありませんが、gcc に
     はおよびません。残しておいてはどうでしょう。

  o  X11 はどうしようもなく大きいのですが、あったほうがありがたいもので
     す。手放せないとなったら、せめて必要最小限の構成で間に合わせるよう
     努めましょう。X サーバは使うものだけ、ウィンドウマネージャはシンプ
     ルなものをひとつだけ、xterm もひとつだけ、 100 dpi のフォントはすっ
     かり削除、という具合に。

  o  TeX および付随するパッケージの大きさたるや相当なものです。LaTeX を
     お払い箱にして、ひたすら plain TeX を利用すれば、おおいにスペースを
     節約できます。また、dvi2tty や dvivga を使うことにすれば、xdvi や
     ghostview といった X11 のプレビュー用プログラムも処分できます。X11
     の DVI プログラムが不要となったら、X11 そのものすら無用の長物になる
     かもしれません。

  o  ゲームが「必要」ということはありませんよね。

  3.3.  バイナリのシェイプアップ

  ここではバイナリファイルのサイズを縮小していきましょう。/usr/bin に移
  動してから、

       # strip *

  とコマンドを入力すれば、バイナリに埋めこまれているシンボルが除去されま
  す。 /usr/X11R6/bin/ など、実行ファイルが置いてあるディレクトリで同じ
  作業をくりかえしてください（ TeX と gcc のバイナリも抜かりなく探しだし
  ましょう）。ただし、ご自分のシステムが大事なら、絶対に /sbin や /bin
  、/usr/sbin/ で実行してはいけませんよ！

  3.4.  upx による圧縮

  まずは upx をインストールして、付属の文書に目を通します。それから
  /usr/bin に移動し、upx * を実行します。これで実行ファイルはすべて、そ
  れも（ tcx とは違って） suid されたものまで圧縮できるはずです。この作
  業も前述の各ディレクトリでくりかえしてください。

  新たにパッケージをインストールするときは、各種実行ファイルの圧縮をお忘
  れなく！

  3.5.  かたっぱしから gzip

  圧縮してしまえるファイルはまだまだあります。まずは /usr/doc/ に取りか
  かりましょう。このディレクトリに移動したら、次のコマンドを入力してくだ
  さい。

       # find . -type f -exec gzip -9 {} \; 2> /dev/null

  新たにパッケージをインストールするときは、各種文書ファイルの圧縮をお忘
  れなく！

  この作業は TeX の関連文書があるディレクトリ（筆者の場合は
  /usr/lib/texmf/texmf/doc/）でもくりかえします。また、本当にかまわない
  と言い切れる方は、こうしたディレクトリをすっかり削除してください。

  さて、つづいては zlibc のインストールとコンパイルです。お使いのシステ
  ムが筆者の環境と似通っているなら、コンパイラは（static な）libc がない
  という趣旨のメッセージを出し、途中で止まってしまうでしょう。それでも心
  配はいりません。uncompress.o という名のファイルがありますね？ 必要なの
  はこいつです。これを /usr/local/lib/ に移動してやり、/etc/profile に次
  の一行を追記してください。

       export LD_ELF_PRELOAD=/usr/local/lib/uncompress.o

  さあ、これで文書ファイルばかりか、データファイルも gzip で圧縮できるよ
  うになりました。アプリケーションが利用するデータファイルは、今や圧縮さ
  れていても利用できるのです。この裏技は、理屈の上ではたいていのアプリケ
  ーションに通用するはずですが、実際の成果はまちまちでしょう。筆者の場合
  は今ひとつでした。

  4.  実際の一例

  以下は筆者が前述の手順を手持ちの一台で実践した結果です。処置をほどこす
  前のディスク使用量は、df によると 398,798 ブロックでした。

  o  カーネルソースとカーネルヘッダーは削除しないことにする。

  o  数々のアプリとゲームすべてを削除。ただし、X11 および X11 の開発環
     境、C と Fortran の開発環境、Tcl/Tk 、ネットワーク関連ツール、そし
     てスタンダードなアプリ少々は残しておく。df の表示する使用量は
     244,668 ブロックに。

  o  /usr/bin と /usr/X11R6/bin 、/usr/lib/texmf/bin/i586-linux 、
     /usr/lib/gcc-lib/i386-linux/2.7.2.1 で upx を実行。使用量は 226,270
     ブロックに。

  o  /usr/doc および /usr/lib/texmf/texmf/doc 以下の文書を圧縮。使用量は
     198,745 ブロックに。

     結論を述べると、398,798 ブロックからはじめて 198,745 ブロックにおち
     ついたわけです。空いた 200,000 ブロックにどれだけのものが押しこめる
     ことか！ しかも、gzip の代わりに bzip2 を使っていたら、節約できるス
     ペースはさらに増えていたはず。

  はじめから必要なアプリケーションのみをインストールするように心がけてい
  れば、実行ファイルと文書を圧縮するだけで、平均して 20MB 程度のスペース
  が浮くものです。ノートパソコンをお使いなら、これで救われる場合もあるこ
  とでしょう。

  5.  最後に

  5.1.  著作権について

  （訳注：参考までに訳文をつけておきますが、著作権に関しては原文の内容が
  優先されます）

  Unless otherwise stated, Linux HOWTO documents are copyrighted by
  their respective authors. Linux HOWTO documents may be reproduced and
  distributed in whole or in part, in any medium physical or electronic,
  as long as this copyright notice is retained on all copies. Commercial
  redistribution is allowed and encouraged; however, the author would
  like to be notified of any such distributions.

  特に明記されていないかぎり、Linux HOWTO 文書の著作権はそれぞれの著者に
  属します。この著作権条項さえ逐一きちんと記されていれば、Linux HOWTO 文
  書の複製ならびに配布は、一括した形であれ個別の形であれ、印刷物や電子メ
  ディア等の媒体を問わず、自由に行ってかまいません。商業目的の再配布も認
  められていますし、むしろ奨励されています。ただし、配布の際には著者当人
  に連絡していただけると幸いです。

  All translations, derivative works, or aggregate works incorporating
  any Linux HOWTO documents must be covered under this copyright notice.
  That is, you may not produce a derivative work from a HOWTO and impose
  additional restrictions on its distribution. Exceptions to these rules
  may be granted under certain conditions; please contact the Linux
  HOWTO coordinator at the address given below.

  Linux HOWTO 文書を翻訳・編集・集成したものには、この著作権条項が例外な
  く適用されます。従って、HOWTO 文書を第三者が編集した場合でも、その配布
  に新たな制限をもうけることは許されません。もっとも、事と次第によって
  は、こうした規定に例外が認められる場合もあります。下記のアドレスま
  で、Linux HOWTO の世話役宛てにご連絡ください。

  In short, we wish to promote dissemination of this information through
  as many channels as possible. However, we do wish to retain copyright
  on the HOWTO documents, and would like to be notified of any plans to
  redistribute the HOWTOs.

  端的に言えば、なるべく多くのルートを通じて本稿が普及することを当方は望
  んでいます。しかし、HOWTO 文書の著作権を保持しておきたいことも事実です
  し、HOWTO 文書を再配布する場合はぜひ事前に通知していただきたいのです。

  If you have questions, please contact Tim Bynum, the Linux HOWTO
  coordinator, at tjbinum@sunsite.unc.edu via email.

  質問があれば、Linux HOWTO の世話役 Tim Bynum までメールでどうぞ。アド
  レスは tjbinum@sunsite.unc.edu です。

  5.2.  免責条項

  "Saving Space mini-HOWTO" は Guido Gonzato
  <mailto:REMOVE_MEguido@ibogeo.df.unibo.it> の手になる文書です。

  本稿は「無保証」の文書です。執筆に当たっては正確を期して少なからず努力
  しましたが、内容を実践する際はご自分の責任でお願いします。本稿の利用か
  ら生じた損害に対して、筆者はなんら責任を負いません。

  読者の声は歓迎します。要望や提案、お叱りなどなど、お気軽にどうぞ。

  Linux と人生を楽しんでくださいね。

  Guido   =8-)

