<!doctype linuxdoc system>

<article>

<title> Debian 便利ワザ集
<author> 佐野武俊 / Taketoshi Sano, (<tt/sano@debian.org/) 
<date> $Date: 1999/12/15 07:22:42 $, $Revision: 1.4 $
<abstract>
Debian システムを使う上で、知っていると便利そうなちょっとした
「ワザ」を Debian JP の debian-users ML に流れた話題などから
まとめたものです。

内容の修正・追加・削除、また 文書の構成などについての
御意見をお待ちしております。
</abstract>

<sect> まず最初に - 知っておくと便利なワザ
<p>

<sect1> ファイル XXX がどのパッケージにあるか知りたいのですが ?
<p>

<sect2> *** zcat Contents-*.gz|grep &lt;filename&gt; ***
<p>
Contents-*.gz (Linux i386 なら Contents-i386.gz) というファイル
を grep で検索するのが早いです。このファイルはネットワーク上なら
例えば ftp サイトの debian/dists/stable/ 以下にあります。
また JP Package に含まれているファイルのリストは
 debian-jp/dists/stable-jp/ 以下にあります。
一方 CD-ROM の場合は、まずその CD-ROM をマウントします。
マウント先が/cdrom だとすると、
<p>
<verb>
 find /cdrom/ -name 'Contents*'
</verb>
<p>
を実行します。その CD-ROM の中に該当するファイルがあれば、
表示されるはずです。
<p>
さて、この Contents-*.gz を入手したら次に検索を実行します。
<p>
例えば、「ppxp のパッケージはどこにあるのかな ?」と調べる場合
<p>
<verb>
  zcat Contents-i386.gz | grep ppxp
</verb>
<p>
としてみましょう。何か出てきましたか ?
<p>
実は ppxp パッケージは (slink では) まだ Debian Project に
提供されておらず、 slink-jp のほうに置かれています。ですので、
 debian/dists/stable 以下の Contents-i386.gz で検索した場合は
「何も出てこない」で正解です。
(開発中の potato では 1999年 10 月 6 日現在、ppxp のパッケージが
 main/binary-i386/net/ppxp_0.99072807-2.deb として含まれています。
 これは JP Package ではなく Debian Package です)
<p>
もう一度、今度は JP Package の Contents-i386.gz で
上記のように検索してみてください。
<p>
すると、たくさん (wc で数えたら 187 行) 出てきます。
左側が各パッケージ中の個々のファイル名、右側がパッケージの
分類、セクション、名前を示します。
<p>
ところで 187 行だと多すぎてここでは紹介できないので、
 &dquot;ppxp&dquot; というコマンドの含まれるパッケージを
調べることにします。
<p>
一般的に、「コマンド」の置き場所は **bin/ というディレクトリ
 (管理者用のコマンドは /sbin, /usr/sbin など、一般アカウント用
のコマンドは /bin, /usr/bin など) にあることが多いので、
 (例外は /usr/bin/mh 以下にある mh 関連コマンドとか)
とりあえず
<p>
<verb>
  zcat Contents-i386.gz | grep bin/ppxp
</verb>
<p>
を実行してみましょう。いかがですか ? 
<p>
<verb>
usr/bin/ppxp                        contrib/net/ppxp
usr/sbin/ppxpd                      contrib/net/ppxp
</verb>
<p>
こういう結果が表示されたと思います。
これによって &dquot;/usr/bin/ppxp&dquot; というコマンドが
分類 &dquot;contrib&dquot; の &dquot;net&dquot; セクションに
ある &dquot;ppxp&dquot; パッケージに含まれていることがわかります。
<p>
「分類」というのは説明すると長くなるので、この節の最後にまとめて
おきます。
<p>
「セクション」というのは各ソフトウェアを利用分野によって
大きくまとめたもので、現在
<p>
<itemize>
<item> admin (管理者用)
<item> comm (通信用)
<item> devel (開発用),
<item> doc (manpage などの参考資料)
<item> editors (エディタ),
<item> electronics (電子工学)
<item> games (ゲーム),
<item> graphics (グラフィック)
<item> hamradio (アマチュア無線),
<item> interpreters (各種スクリプト言語)
<item> libs (ライブラリ),
<item> mail (メールソフトなど)
<item> math (数学),
<item>  misc (その他),
<item> net (ネットワーク)
<item> news (ネットニュース), 
<item> oldlibs (古いバイナリを実行させるための古いライブラリ),
<item> otherosfs (他の OS のファイルを読み書きするためのツール),
<item> shells (シェル)
<item> sound (サウンド)
<item> tex (TeX),
<item> text (テキストファイルを扱うツール),
<item> utils (あると便利なもの)
<item> web (ウェブ),
<item> x11 (X ウィンドウシステム)
</itemize>
<p>
などのセクションがあります。これは binary-i386 などの
アーキテクチャ毎のディレクトリのサブディレクトリとしての
区別でもあり、パッケージを探す時はセクションに対応する
サブディレクトリの中を見ることになります。
<p>
以上のように、 contrib/net/ppxp という結果から、
<p>
<verb>
 debian-jp/dists/stable-jp/contrib/binary-i386/net/ppxp*.deb 
</verb>
<p>
というパッケージファイルを探せば良い、ということがわかります。 
<p>
さらに grep の正規表現を使えば検索条件の絞り込みもできます。
例えば &dquot;ppxp&dquot; という名前を忘れてしまって、
「 pp 何とか p という名前で、何とかのところに一文字」と
覚えていた場合は
<p>
<verb>
  zcat Contents-i386.gz | grep 'pp.p'
</verb>
<p>
としてみましょう。もちろん先程のように 'bin/pp.p' としても良いです。
<p>
「何とかのところに何文字だったかもわからない」場合は
上の 'pp.p' の代わりに 'pp.*p' を使います。
実際にいろいろ試してみると、動作がわかって面白いでしょう。
<p>

<sect2> *** dpkg -S &lt;filename&gt; ***
<p>
 既に該当するパッケージをインストール済みの場合は、
dpkg -S ``file_name'' コマンドも使えます。
<p>
こちらは検索条件としてシェルと同様の正規表現を使えます。
例えばこんな感じです。
<p>
<verb>
    $ dpkg -S 'X*/bin/*term'
  rxvt: /usr/X11R6/bin/rxvt-xterm
  kterm: /usr/X11R6/bin/kterm
  xterm: /usr/X11R6/bin/xterm
    $ dpkg -S 'X*/bin/*vt'
  rxvt-ml: /usr/X11R6/bin/crxvt
  rxvt: /usr/X11R6/bin/rxvt-xpm
  rxvt-ml: /usr/X11R6/bin/krxvt
  rxvt: /usr/X11R6/bin/rxvt-xterm
  rxvt-ml: /usr/X11R6/bin/grxvt
</verb>
<p>

<sect2> *** grep &lt;filename&gt; /var/lib/dpkg/info/&lt;package-name&gt;.list ***
<p>
  同じく、インストール済みのパッケージの場合は、
 /var/lib/dpkg/info/&lt;package-name&gt;.list にパッケージに含まれる
 ファイル名がリストされているので、これらのファイルに grep を
 かけることで検索できます。
<p>

<sect2> *** Web 上での検索 ***
<p>
最近 Debian JP の debian-users ML で教えてもらったのですが、
あるファイルがどのパッケージに含まれているかを Webで調べることもできます。
 
<url url="http://www.jp.debian.org/distrib/packages" name="パッケージ一覧">
のページから「最新リリースの内容を検索」
 &dquot;Search the Contents of the Latest Release&dquot; を選択して
ファイル名を (できるだけディレクトリ名なども付けた形で) 検索してみると
よいでしょう。
<p>

<sect1> パッケージをインストールした時のメッセージを調べるには ? 
<p>
  設定の必要なパッケージが、インストール時に質問してくるメッセージ
  などは /var/lib/dpkg/info/&lt;package-name&gt;.preinst および
   /var/lib/dpkg/info/&lt;package-name&gt;.postinst という
   shell script の実行によって表示されています。これらの
  シェルスクリプトを読んでみましょう。
<p>

<sect1> dselect で一覧表示される、各パッケージの詳細を検索したい
<p>
  /var/lib/dpkg/available を検索してみましょう。
<p>

<sect1>  dpkg の使い方をマスターしたい
<p>
 dpkg --help を印刷して (しなくても良いけど) じっくり読んでみる
ことをお勧めします。
<p>
 最低限、
<p>

<itemize>
<item>   --info &lt;package_file&gt; 指定されたパッケージファイルの説明を表示
<item>   --contents &lt;package_file&gt; 指定されたパッケージファイルの中身
      (パッケージに含まれるファイルの一覧) をリスト

<item>   -l (--list) インストール済みのパッケージをリスト
<item>   -s (--status) &lt;package_name&gt; 
      (インストールされていれば) 指定されたパッケージの説明を表示
<item>   -L (--listfiles) &lt;package_name&gt;
      (インストールされていれば) 指定されたパッケージに含まれる
      ファイル (一覧) をリスト
<item>   -S (--search) &lt;filename-search-pattern&gt;
      指定されたパターンに従って該当するファイルを含むパッケージ
      をインストール済みのパッケージの中から検索。
</itemize>
<p>
 この 6 種類くらい覚えていれば (あと、インストールする時に使う
  -i を追加して 7 種類) たいていの用は足りると思います。
<p>

<sect1> パッケージファイルの中身を調べたい
<p>
上に書いた dpkg --info (-I) や dpkg --contents (-c) を使いましょう。
また ar コマンドで中身 (data.tar.gz, control.tar.gz, debian-binary) 
を取り出すこともできます。 data.tar.gz が実際のアーカイブの中身、
 control.tar.gz には preinst, postinst などパッケージのインストール時
(あるいはアンインストール時) に実行されるスクリプトなどが収容されて
います。
<p>
man dpkg-deb を見るのも良いでしょう。--field (-f) や --extract (-x) 
などのオプションが役に立つかもしれません。
<p>
さらに debview パッケージをインストールすると、emacs から
アーカイブの中にあるファイルの内容を見ることができるようです。
興味のある方は調べてみると良いでしょう。
(ただし私の場合はこれがうまく動作しないみたいで、アーカイブの中身が
途中までしか表示されませんでした。)
<p>

<sect1> カーネル再構築について
<p>
Debian でカーネル再構築をする場合には、 .deb パッケージにして
しまうのが便利です。まずは kernel-package という名前のパッケージを
インストールしましょう。これには make-kpkg というコマンドが
含まれています。
<p>
あとは一般的なカーネル再構築の手順で、必要なもの (コンパイラ、
ライブラリなどの開発用パッケージ。もちろんカーネルソースも) を
用意して、 make {menuconfig,xconfig} などによってカーネルの
構成を設定します。
<p>
よく &dquot;bin86&dquot; パッケージのインストールを忘れて
 make に失敗する人がいます。これは i386 アーキテクチャでのみ
必要とされるもので、他のアーキテクチャでは不要なため依存関係の
情報 (Depends: など) には入っていません。
<p>
 &dquot;kernel-package&dquot; の附属資料である
 /usr/doc/kernel-package/README.gz には
<p>
<verb>
Firstly, you will need gcc, the libc development package (libc5-dev or
libc6-dev at the time of writing), and, on Intel platforms, bin86. [If
you use the menuconfig target of make, you will need ncursesX.X-dev,
and make xconfig also requires tkX.X-dev, and other packages these
depend on]

# まず gcc と libc の開発パッケージ (今なら libc6-dev) それに
# Intel i386 上で make するなら bin86 が必要ですね。
# (もし menuconfig を使うなら、これに加えて ncursesX.X-dev が必要だし
#  make xconfig を使うなら tkX.X-dev も必要。もちろんこれらのパッケージ
#  が必要とするものはすべて依存関係に従ってインストールすること) 
# (英文には libc5-dev が入ってますが、hamm 以降は通常 libc6-dev です。
#  libc5-dev は bo 以前の場合ですね)

The packages suggested are:
devel:        gcc, libc5-dev/libc6-dev, binutils, make, and, for intel
              x86 platforms, bin86 (non-Intel platforms don't need
              this).
interpreters: awk, which is contained in either the mawk or gawk packages
base:         gzip, shellutils, and grep.

# インストールしておくべきパッケージ (セクション: パッケージ名)
# devel:      gcc, libc6-dev, binutils, make
#             Intel x86 上では、これに加えて bin86
#             (他の CPU (alpha, sparc など) では bin86 は不要)
# interpreters: awk (これは mawk や gawk をインストールすれば良い)
# base:         gzip, shellutils, grep

Some of these packages are marked essential, and hence are going to be
present on your machine already. Others you have to check and install.

# これらのパッケージのうちいくつかは "essential" (必要不可欠) な
# パッケージなので、既にお持ちのシステムには含まれているはず。
# だが、そうではないパッケージもあるので、上のリストをチェックして
# 不足しているものがあればインストールすること。

Of course, pretty GUI front ends to kernel configuration require more
packages, but they are not strictly essential (though quite nice really). 

# もちろん、カーネル設定用のしゃれた GUI なフロントエンドは
# より多くのパッケージを必要とするが、それらのパッケージが
# カーネルの make に必須ってわけじゃないんだ。
# (あるとすごく便利だけどね)

</verb>
<p>
と書かれています。抜けの無いように注意しましょう。
<p>
カーネルソースは Debian パッケージから入れたものでも、自分でオリジナルの
ソースコードを持ってきて独自にパッチを当てたものでも OK です。
<p>
Debian のカーネルソースパッケージは、以前の流儀では、インストールすると
<tt>/usr/src/linux/</tt> 以下に展開された形でインストール
(実際には <tt>/usr/src/kernel-source-version</tt> 以下に展開され、
そこから <tt>/usr/src/linux</tt> にシンボリックリンク) されていましたが、
現在は <tt>/usr/src/kernel-source-version.tar.gz</tt> として tar+gzip
アーカイブのままで置かれるようになりました。
<p>
これはカーネルソースが巨大になってきて、<tt>/usr/src/</tt> 以下で
展開・make すると <tt>/usr</tt> パーティションが圧迫されてしまう
可能性が高くなってきた (<tt>/usr</tt> を別パーティションにして
使っている人もいます) ために、別の場所でカーネルを make できるように
するための処置です。
<p>
Debian Package のカーネルソースをインストールしたら、
もし <tt>/usr/src</tt> 以下で展開・make しても問題無いようなら
<quote>
 cd /usr/src
 tar -xvzf kernel-source-version.tar.gz
 rm -f linux
 ln -s kernel-source-version linux
</quote>
を実行すると良いでしょう。なお &dquot;<tt>tar -xvzf</tt>&dquot; は
 tar+gzip なアーカイブを展開するためのコマンド、
&dquot;<tt>rm -f linux</tt>&dquot; は、<tt>linux</tt> が既に
別の場所へのシンボリックリンクとして存在する場合にあらかじめ
削除しておくためのコマンド、
&dquot;<tt>ln -s</tt>&dquot; はシンボリックリンクを作成するコマンドです。
<p>
なお上記の <tt>kernel-source-version</tt> は、実際には version の
部分に例えば 2.0.36 や 2.2.10 などのカーネルバージョンが入ります。
それから <tt>/usr/doc/kernel-source-version/debian.README.gz</tt>
には &dquot;Unpacking kernel sources&dquot; としてこのあたりの
説明がちょこっと書いてあります。
<p>
カーネルソースツリーを展開して、<tt>/usr/src/linux</tt> をそこへの
シンボリックリンクとして作成したら、
次に &dquot;make-kpkg clean&dquot; コマンドを実行していったん make-kpkg コマンド
が使用する制御情報ファイルを初期化します。
<p>
そして
 &dquot;<tt>make-kpkg --revision=local1 kernel-image</tt>&dquot; で
カーネル本体とモジュールの含まれたパッケージを作成し、
&dquot;<tt>dpkg -i kernel-image-&lt;kernel version%gt;_&lt;revision&gt;.deb</tt>&dquot;
でインストールします。
<p>
後で紹介する ``topics-ML'' にも、また後述の各書籍にも関連する説明が
あります。
それから make-kpkg コマンドの使い方は man make-kpkg で調べることが
できます。特に &dquot;--revisin=&dquot; で指定するレビジョンには
必ず数字を含まなければいけないこと、数字およびアルファベット以外は
 &dquot;.&dquot; と &dquot;+&dquot; (ビリオドとプラス) しか使えない
(ハイフンやアンダーラインはダメ) ことに注意してください。
<p>

<sect1> 「分類」について
<p>
「分類」というのは正式な用語ではなくて、ここで便宜的に使っている
言葉ですが、 Debian システム用の deb パッケージとして
配布されているものには、現在
<p>
 &dquot;main&dquot;, &dquot;non-free&dquot;,
 &dquot;contrib&dquot; &dquot;non-us&dquot;
<p>
の 4 つの「分類」があります。
あまりつっこむとボロが出るのでここでは簡単に紹介します。
<p>
まず &dquot;main&dquot; は正式に Debian システムの一部として
認められるパッケージによって構成されるものです。これらは
<p>
<url url="http://www.jp.debian.org/social_contract#guidelines"
  name="デビアン・フリーソフトウェア・ガイドライン">
<p>
(Debian Free Software Guideline, よく DFSG と省略して呼ばれる)
に沿ったパッケージであり、商用・非商用、学術・非学術などの目的や
分野、また利用者・団体などによらず、「100 &percnt; 自由」な利用を
保証しています。ただし、ここで言う「自由」とは「何でも好き勝手を
して良い」ということではありません。
<p>
特に配布ライセンスとして GPL を採用しているソフトウェアは
「将来に渡ってソフトウェア改変の自由を保証するため」に
商用配布の場合などについて、ソースコード供給の義務を課しています。
(詳細は GPL の 3.a および 3.b を参照してください。)
<p>
次に &dquot;non-free&dquot; は何らかの点で上記の
 &dquot;Debian フリーソフトウェア・ガイドライン&dquot;
を満たしていないソフトウェアが含まれています。これらのパッケージは
正式には Debian システムの一部ではありませんが、利用者の便宜のために
 ftp サイトに置かれています。ここに含まれるパッケージの配布に関する
ライセンスは個別に異なり、商用 CD-ROM などに収録する際にはそれぞれの
権利保持者に問い合わせるなどの作業が必要です。
<p>
一方 &dquot;contrib&dquot; には、実際にそれを利用する場合
 &dquot;non-free&dquot; に含まれるパッケージを必要とするが、
それ自身としては
 &dquot;Debian フリーソフトウェア・ガイドライン&dquot;
に反していない (従って &dquot;non-free&dquot; に依存しないように
なれば &dquot;main&dquot; への収録が可能なもの) が含まれます。
<p>
最後の &dquot;non-us&dquot; はアメリカ合衆国の暗号輸出規制による
制限に関連するものです。
例えば、アメリカ国民以外の Debian ユーザーが PGP を使おうと思った場合、
ここに含まれている pgp-i や pgp5i などのパッケージを
 ftp サイトの debian/dists/non-US/ 以下から入手して利用することに
なります。
<p>

<sect> もっと詳しく - 参考資料はどこにある ?
<p>

<sect1> Debian Project Web Site
<p>
<url url="http://www.jp.debian.org/" name="Debian プロジェクトのウェブサイト">
<p>
には Debian Project 自体の概要や Debian システムについての説明、
また  &dquot;Debian フリーソフトウェア・ガイドライン&dquot; や
 &dquot;社会契約&dquot; の説明などがあります。
Debian を使うなら、是非一度御覧になることをお勧めします。
<p>
なお、このページは現在かなりの部分を日本語で読めるように
なってきています。
これは Deiban JP の www-ML で活躍されている遠藤さんを始めとした
人々の作業の結果です。
<p>
しかし、英語でしか表示されないページもまだまだあります。
ちょっとした翻訳ができれば誰でも参加することができますので、
もし興味があれば以下のページを御覧ください。
<p>
<url url="http://www.debian.or.jp/devel/www/WebTranslation.html">
<p>

<sect1> Debian JP Project Web Site
<p>
<p>
<url url="http://www.debian.or.jp/" name="Debian JP プロジェクトのウェブサイト">
<p>
には日本国内で入手できる Debian の CD-ROM に関する情報や
Debian に関する話題が日本語で読めるメーリングリストの案内と
そのアーカイブと検索のページ、また (後で紹介しますが) 
「プロジェクト日誌」のページなどがあります。
<p>
そして、
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
のページには、Debian に関連したさまざまな文書の情報がまとめて紹介されています。
これらの情報は、Debian を使っていく上で、きっと参考になることでしょう。
<p>

<sect1> 鵜飼さんの &dquot;Topics-ML&dquot;
<p>
 Debian JP 独自の資料として、鵜飼さんが作成して下さった
「Debian GNU Linux に関する Q &amp A」があります。
<p>
この文書は
 <url url="http://www.debian.or.jp/" name="Debian JP のウェブページ"> から
「メーリングリスト」のページにジャンプして
「 MLで流れた記事から作成した Debian GNU/Linux に関する Q &amp A」
というタイトルを選択することで読むことができます。
<p>
これには機種別の情報などもあるし、また日本語キーボードの設定や
日本語入力、また日本語を含む文書の印刷についての情報などもあるので、
特に日本の Debian ユーザーにとっては非常に役に立つ情報源だと思います。
<p>
 tar+gzip なものも用意して下さっているので、手元に置いて grep で
検索したり、lynx で参照したりという使い方でお世話になっている
 Debian ユーザーも多いです。
<p>
また
 <url url="http://www.debian.or.jp/search/" name="関連 ML の検索ページ">
から、この文書も検索できます。このページは
 <url url="http://www.debian.or.jp/" name="Debian JP のウェブページ"> に
ある「メーリングリスト(検索)」から辿れます。
<p>
なお、この文書を改訂・内容拡充しようという &dquot;dejavu&dquot; 計画が
メーリングリスト &lt;debian-doc@debian.or.jp&gt; で進行中です。
興味のある方は是非作業に参加してください。
<p>

<sect1> Debian JP Project 「プロジェクト日誌」
<p>
これも Debian JP 独自の資料ですが、プロジェクトメンバーの有志が
作成している
 <url url="http://www.debian.or.jp/diary/" name="「プロジェクト日誌」">
というものがあります。
これも <url url="http://www.debian.or.jp/" name="Debian JP のウェブページ"> 
から辿ることができます。新しく追加されたパッケージの情報や、最近の開発動向など
いろいろな情報を得ることができます。
<p>

<sect1> Debian FAQ
<p>
 Debian JP の doc-debian-ja パッケージをインストールすると
 /usr/doc/debian-ja/FAQ 以下に Debian Project が作成している
 ``The Debian GNU/Linux FAQ'' の日本語訳が置かれます。
<p>
またこの日本語訳文書の html 版は
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「総合/FAQ」で ``Debian GNU/Linux FAQ'' としてリンクされています。
<p>

<sect1> Debian Policy Manual
<p>
 <url url="http://www.jp.debian.org/doc/debian-policy/"
  name="Debian ポリシーマニュアル">
から Debian プロジェクトの方針に関する文書を読むことができます。
またすこし古いバージョンをベースにしていますが、日本語訳を
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」にある「Debian ポリシーマニュアル」から
読むことができます。英文のオリジナルでは slink 版のバージョンが 2.5.0.0 に
対し、現在の日本語訳は 2.2.0.0 ベースとなっていますが、そのまま
参考にできる部分も多いと思います。日本語訳で概略の内容をつかんで
詳細は英語の原文を参照する、という使い方をすると良いでしょう。
<p>
これはパッケージ作成の際に参考とするために Debian プロジェクトとしての
方針・規約を説明したものですが、この中にパッケージの構成などについての
情報も含まれているので、利用者としての立場で読んでも参考になると思います。
<p>
特にパッケージをそのまま使うのでなく、ちょっとカスタマイズして使おうと
したり、自分で上流ソースコード (upstream sources) を持ってきてパッケージ化
しようとする際などには是非一度読んでみましょう。
<p>
例えば、
(この「便利ワザ集」では便宜上「分類」という呼び方で先に説明しましたが)
「ディストリビューション」 (原語でも &dquot;distribution&dquot; です) 
と呼ばれるパッケージの種類分けについての説明や、セクションや優先度
 (priority、ここでは説明を省略します) などについての説明があります。
<p>
この文書は &dquot;main/binary-all/debian-policy&dquot; パッケージに
含まれている /usr/doc/debian-policy/policy.html/ というディレクトリの
 html ファイルを翻訳したものです。
<p>
 /usr/doc/fsstnd/ というディレクトリには FSSTND (File System Standard) に
ついての解説である FSSTND-FAQ.gz および fsstnd-1.2.txt.gz というファイル
もありますので、(英文ですが) 読んでおくと参考になります。また開発中の
 potato 版では fhs/ というディレクトリに FSSTND の後継である FHS 2.0
 (Filesystem Hierarchy Standard -- Version 2.0) の文書も収録されています。
 potato では部分的に FHS への移行が始まっていますが、おそらく potato の次に
リリースされる Debian は FHS へ完全移行すると思われます。
今のうちから調べておいて将来に備えるというのも良いでしょう。
<p>

<sect1> Debian パッケージ作成入門 (Debian New Maintainers' Guide)
<p>
 <url url="http://www.jp.debian.org/doc/maint-guide/"
  name="Debian パッケージ作成入門">
から Debian パッケージの作成方法などを具体的な例を挙げて説明した
文書を読むことができます。
またこの文書は &dquot;maint-guide&dquot; という名前のパッケージにも
含まれています。
<p>
この文書の日本語訳をベースに Debian JP 用に編集した文書が
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に「Debian パッケージ作成入門 Debian JP 版」に
リンクされています。
<p>
パッケージの作成に興味のある方は一度目を通しておくと参考になるでしょう。

<sect1> Debian Packaging Manual
<p>
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に「パッケージングマニュアル日本語版」が
リンクされています。英文のオリジナル slink 版のバージョン 2.4.1.0 を
ベースにした翻訳は既にリリースされ、現在開発中の potato 版である
バージョン 3.0.1.1 に対する翻訳作業が進められています。
<p>
なお
 <url url="http://www.jp.debian.org/doc/packaging-manuals/packaging.html/"
  name="パッケージングマニュアル">
から最新のオリジナル (英語) 文書を読むことができます。
<p>
この文書は
 &dquot;main/binary-all/doc/packaging-manual&dquot; パッケージに
含まれている /usr/doc/packaging-manual/packaging.html/ ディレクトリの
中の html ファイルを翻訳したものです。
<p>
「Debian ポリシーマニュアル」が Debian プロジェクトとしての方針について
述べているのに対し、この文書では主に技術的な内容、つまり dpkg や dselect 
などのコマンドの動作や「パッケージ管理情報ファイル」の記述について
説明しています。
<p>
既存のパッケージをカスタマイズしたり、また自分で新しいパッケージを
作成する際に、[Debian パッケージ作成入門」だけでは解決できない疑問が
生じた場合に読んでみると、きっと参考になるでしょう。
<p>

<sect1> Debian デベロッパーズリファレンス
<p>
 <url url="http://www.jp.debian.org/doc/packaging-manuals/developers-reference/"
  name="デベロッパーズリファレンス">
から読めます。debian/dists/stable/main/binary-all/doc/developers-reference に
パッケージもあります。
<p>
Debian プロジェクトのメンテナー (maintainer) として知っておくべき
知識をまとめたものです。
<p>
ここに含まれる内容には
<itemize>
<item> メンテナーになるための手続き、
<item> 新しいパッケージをアップロードする手順、
<item> ノン・メンテナーズ・アップロード (NMU) の説明、
<item> パッケージの移動、削除、改名、引き継ぎ、放棄の手順、
<item> バグレポートへの対処方法
</itemize>
などがあります。
<p>
なお、現状ではまだ日本語訳は校正前のためパッケージ化されていませんが、
もし作業が間に合えば、potato に日本語訳を入れることができるかも
しれません。現状の日本語β版を読みたい場合は Debian JP の Web サイトを
経由してリンクを辿ってください。
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に「Debian デベロッパーズリファレンス」の
日本語β版がリンクされています。
<p>

<sect> たまには活字でも - お勧めの本
<p>

<sect1>「一歩本」
<p>
ソフトバンクから Debian JP 2.0 (hamm-jp) オフィシャル CD-ROM 付きで
最初に出版 (1998.12/8) された
「Debian GNU/Linux / 一歩進んだフリー Linux システム」
(ISBN4-7973-0754-4) です。
著者は Debian JP Project でもおなじみの方々で、最初のほうの
Debian プロジェクトや Linux 自体についての説明など、なるほどと
思わせるものがあります。
インストールや設定の説明については、複数人で執筆されたせいか、
一部に不具合点や内容の矛盾などもありますが、全体的には参考となる内容を
含んだ良い本です。もし見かけたことが無ければ、一度捜してみましょう。
<p>

<sect1>「徹底入門」
<p>
翔泳社から CD-ROM 4枚付きで出版 (1999. 1 月初版) された
「Debian GNU/Linux 徹底入門」(ISBN 4-88135-711-5) です。
<p>
この本の附属 CD-ROM には他の書籍ではまず含まれていない Netscape などの
 &dquot;non-free&dquot; に分類されるパッケージも収録されています。
また、著者である武藤さん (ちなみに Debian JP Project のメンバーです) が
サポートページ
<p>
<url url="http://www.topstudio.co.jp/~kmuto/debian/">
<p>
において正誤表の公開や「談話室」の開設、一部のノート PC など標準の
起動ディスクではうまく起動できない機種への対応などをされています。
他の本に比べるとすこし高価 (4,800 円 + 税) ですが、
ネットワーク経由でパッケージを取得するのがツライ環境に居る人には
有難い本でしょう。
<p>
なお、この本は WebMasters (www.linux.or.jp 管理チーム) の
ブックレビューコーナーに献本されました。寄せられた書評は
<p>
<url url="http://www.linux.or.jp/bookreview/DebianNyuumon.html">
<p>
で見ることができます。
<p>

<sect1>「今日から Debian」
<p>
（株）オーム社から出版 (1999.2.25) された
「今日から Debian GNU/Linux」 (ISBN 4-274-06300-3) です。
この本の著者の芳尾さんも Debian JP Project で以前から活動されて
こられた方で、また他の方々と一緒に Debian Packaging Manual の翻訳を
まとめられた方でもあります。なお、芳尾さんも個人ページでこの本の
正誤訂正などのサポートをされています。
<p>
<url url="http://www2.osk.3web.ne.jp/~shishamo/">
<p>
ここにある「Debian Linux 本書評」のコーナーなど、読んでおくと
参考になるかもしれません。一度御覧になると良いでしょう。
<p>
なお、この本も WebMasters (www.linux.or.jp 管理チーム) の
ブックレビューコーナーに献本されています。寄せられた書評は
<p>
<url url="http://www.linux.or.jp/bookreview/KyoukaraDebian.html">
<p>
で見ることができます。
<p>

<sect> お勧めのパッケージ
<p>
ここにはまだ少ししか書いてありませんが、他にも
「これはお勧め」というパッケージがあれば是非パッケージ名
と分類/セクション、それに簡単な説明を付けて教えてください。
適当なものがあればどんどん追加していきたいと思っています。
<p>

<sect1> debian-jp/dists/stable-jp/main/binary-all/misc/user-ja
<p>
一般ユーザーが emacs や shell などで必要となる各種の設定ファイルを
標準的な環境にあわせて整備してくれる便利なユーティリティツールです。
特に emacs の日本語表示設定で苦労されている方にはオススメでしょう。
<p>
なお emacs の設定関係では stable-jp/main/binary-all/doc にも
 &dquot;emacs-manual-ja&dquot; や
 &dquot;emacs-lisp-intro-ja&dquot;, &dquot;elisp-manual-ja&dquot; 
などのパッケージがあります。
(開発中の potato ではすべて Debian Package に収録されています)
<p>

<sect1> debian/dists/stable/main/binary-all/doc/manpages-ja
<p>
オンラインマニュアル manpages の日本語訳です。JM による翻訳を
ベースとしています。
<p>
<!--
(&dquot;copyright&dquot; ファイルに &dquot;See README.jman&dquot;
と書いてありますが、README.jman は日本語のファイルなので
英語の copywrite 表記が存在しない状態になってます)
<p>
-->

<sect1> debian-jp/dists/stable-jp/main/binary-i386/x11/xmanpages-ja
<p>
オンラインマニュアル manpages のうち、 X11 関連部分の日本語訳
です。xjman による翻訳をベースとしています。
<p>

<sect1> debian-jp/dists/stable-jp/main/binary-all/doc/doc-debian-ja
<p>
上で紹介していますが、Debian FAQ の日本語訳などが含まれたパッケージです。
<p>

<sect1> debian/dists/stable/main/binary-all/doc/doc-linux-ja
<p>
Debian に限らず、Linux 関連の資料を集めたパッケージで日本語訳は
JF による翻訳をベースとしているようです。
<p>
<!--
(&dquot;copyright&dquot; ファイルに &dquot;it was downloaded from&dquot;
が記載されていないのはもしかしてバグ ?)
<p>
-->

<sect1> debian/dists/stable/main/binary-all/doc/debian-policy
<p>
Debian パッケージ作成上の規約についての説明です。
パッケージの構造など技術的な内容は次の
 &dquot;Packaging-Manual&dquot; にあります。
<p>
なお、現状ではまだ日本語訳はパッケージ化されていませんので、
日本語で読みたい場合は Debian JP の Web サイトを経由して
リンクを辿る必要があります。また日本語訳は原文のバージョンに
まだ追いついていないので注意が必要です。
<p>
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に日本語訳された「Debian ポリシーマニュアル」が
リンクされています。
<p>

<sect1> debian/dists/stable/main/binary-all/doc/maint-guide
<p>
Debian パッケージの作成についての入門編的な説明です。Web から
 <url url="http://www.jp.debian.org/doc/maint-guide/"
  name="Debian パッケージ作成入門">
で読むこともできます。
<p>
この文書の日本語訳をベースに Debian JP Project 固有の情報を
入れて編集した文書が JP Package の maint-guide-ja にあります。
また Debian JP の Web サイトから
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に「Debian パッケージ作成入門 Debian JP 版」
をいうリンクを辿って読むこともできます。
<p>

<sect1> debian/dists/stable/main/binary-all/doc/packaging-manual
<p>
Debian パッケージの構造など技術的な説明です。「パッケージ作成入門」
より量も多く、詳細に説明しています。
<p>
なお、現状ではまだ日本語訳はパッケージ化されていませんので、
日本語で読みたい場合は Debian JP の Web サイトを経由して
リンクを辿る必要があります。
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に「パッケージングマニュアル日本語版」が
リンクされています。
<p>

<sect1> debian/dists/stable/main/binary-all/doc/developers-reference
<p>
Debian プロジェクトのメンテナー (maintainer) として知っておくべき
知識をまとめたものです。
<p>
なお、現状ではまだ日本語訳はパッケージ化されていませんので、
日本語で読みたい場合は Debian JP の Web サイトを経由して
リンクを辿る必要があります。
 <url url="http://www.debian.or.jp/Documents/index.html.ja"
  name="Debian JP Project: 文書">
ページの「パッケージ開発」に「Debian デベロッパーズリファレンス」が
リンクされています。
<p>

<sect> とりあえずやってみよう - カスタムパッケージ作成
<p>
まずは、パッケージ作成の参考文書から。
既に紹介した「Debian ポリシーマニュアル」と「Debian パッケージ作成入門」
はとりあえず目を通しておきましょう。余裕があれば「パッケージングマニュアル」
や「デベロッパーズリファレンス」を読んでおくとさらに良いです。
<p>

<sect1> カスタムパッケージの作り方
<p>
以下は ``topics-ML'' にある説明文をほとんどそのまま写したものです。
<p>
Debian 標準のパッケージからコンパイルオプションを変更したバイナリ
パッケージを作成したい場合は、以下の手順で実行します。
<p>
まず dpkg-dev, cpp, gcc, make などのパッケージをインストールし、
 *.dsc, *.orig.tar.gz, *.diff.gz をとってきて
<QUOTE>
 dpkg-source -x パッケージ名.dsc
</QUOTE>
を実行します。
<p>
するとパッケージ名と同じ名前のディレクトリが作成されるので、
そのディレクトリに移動し、必要な修正をします。
<p>
debchange -v として、debian/changelog ファイルくらいは直しておく。 
(revision をあげて、変更の内容を記述。Maintainer の名前と E-mail
アドレスは自分のものにしておく)
<p>
そして rootになって
<QUOTE>
 ./debian/rules build
</QUOTE>
を実行するか、
<QUOTE>
 dpkg-buildpackage -ppgp -rsudo
</QUOTE>
を実行する。
<p>
まだ pgp を使えるようになっていない人は
<quote>
 dpkg-buildpackage -rsudo -us -uc
</quote>
としてみて、ちゃんと作成されるかどうか確認してみると良いかもしれません。
<p>
以上の操作によって .deb ファイルが作成されるので、 それを
普通のパッケージをインストールするのと同じように dpkg --install で
インストールすればよいです。
<p>
<sect1> パッケージソースの構成
<p>
Debian Package のソースは、 .dsc, .diff.gz, .orig.tar.gz の 3 つから
構成されます。 (古いパッケージでは違うものもあります)。
<p>
基本的に Debian 固有の変更はすべて .diff.gz に入れることになって
いるため、 .orig.tar.gz に相当するものが既に手元にある場合は、
\  .dsc と .diff.gz だけ入手すればパッケージを作成できます。
<p>
\  .orig.tar.gz に含まれるものが、どこから持ってきたものか、という情報は
\  .diff.gz の中にある debian/copyright ファイルに記載されることになって
います。
<p>

<sect> おわりに
<p>
<sect1>お願い
<p>
ここまで、とりあえず書けた部分だけでまとめてみましたが、
まだまだ不足している情報があるはずです。
「これも追加して欲しい」という意見をお持ちの方は
是非教えて下さい。よろしくお願いします。
<p>
<sect1>謝辞
<p>
この「Debian Tips ( Debian 便利技集)」は Debian JP の users ML で
見かけたアイデアがもとになって誕生しました。特に名前を挙げませんが、
アイデアを提供して下さった方々にこの場を借りてお礼を差し上げます。
<p>
また、この文書でも参照している「 Q &amp; A」をまとめられた鵜飼さんや
 Debian の Web Site 日本語訳に貢献されている遠藤さんを始め、
パッケージの開発、文書 や Web の整備、ftp サイトの管理などに
活躍されている Debian JP プロジェクトの方々、それにこの素晴しい
システムを作り出した Debian プロジェクトの方々、
そしてまた Linus 氏と RMS 氏にも感謝を捧げます。
<p>
<sect1> この文書の配布について
<p>
<verb>
 copyrighted (c) 1999 Taketoshi Sano
</verb>
<p>
この文書は GNU パブリックライセンス (GPL) バージョン 2 かそれ以降
の条件、あるいは標準的な Linux ドキュメントプロジェクト (LDP) の条件に
基づいた配布ならば自由にしていただいてかまいません。これらのライセンス
はこのドキュメントが入手できるようなサイトから入手できます。LDP の条件は
(翻訳をのぞく) いかなる修正も許可していません。修正されたバージョンは
GPL の基でのみ配布されるものとすることが可能です。
<p>

</article>

<!--
Revision 1.5  1999/08/01 07:43:51  sano
add description for kernel-source package, and update some info

Revision 1.4  1999/06/10 15:36:44  sano
change "sounto" to "Sound"

Revision 1.3  1999/04/30 22:16:54  sano
fix Log information (add "Local" to local rcs revision log)

Revision 1.2  1999/04/30 22:15:13  sano
update and add many point :)

Local Revision 1.2  1999/04/30 04:13:04  sano
add some info about books, web pages, and commands

Revision 1.1  1999/03/02 13:55:38  mituzi
drafts uploaded to LTGP CVS system by t.sano :
 debiantips: tips for debian users
 sgmlmemo: quick memo to use sgml
 termlist: terminology list in Linux community

Original local Revision 1.3  1998/12/29 10:45:20  sano
brush up text

-->
