Product SiteDocumentation Site

第 7 章 問題の解決と関連情報の探索

7.1. 情報源となる文書
7.1.1. マニュアルページ
7.1.2. info 文書
7.1.3. 独自の文書
7.1.4. ウェブサイト
7.1.5. チュートリアル (HOWTO)
7.2. 常套手段
7.2.1. プログラムの設定
7.2.2. デーモンの挙動を監視する
7.2.3. メーリングリストで助けを求める
7.2.4. 問題が難しすぎる場合のバグ報告
管理者にとって最も重要な技能は、既知か未知かに関わらず、いかなる状況にも対処できる技能です。この章では遭遇した問題の原因を探し出すのにおそらく役立ついくつかの方法を紹介します。そうすれば、問題を解決できるようになるかもしれません。

7.1. 情報源となる文書

問題が起きた際に一体何が起きたのかを理解する前に、問題に関連しているプログラムがどのような役割を担っているかを理論的に知る必要があります。これを行う最良の方法はプログラムの文書を参照することです。しかし、それらの文書は数多くて広範囲に分散しているため、管理者は文書の置かれている場所をすべて知っておくべきです。

7.1.1. マニュアルページ

Manual pages, while relatively terse in style, contain a great deal of essential information. We will quickly go over the command for viewing them, provided by the man-db package. Simply type man manual-page — the manual page usually goes by the same name as the command whose documentation is sought. For example, to learn about the possible options for the cp command, you would type the man cp command at the shell prompt (see sidebar BACK TO BASICS シェル、コマンドラインインタプリタ」).
Man pages not only document commands and programs accessible from the command line, but also configuration files, system calls, library functions, and so forth. Sometimes names can collide. For example, the shell's read command has the same name as the read system call. This is why manual pages are organized in numbered sections:
1
第 1 セクションにはコマンドラインから実行できるコマンドに関する文書が含まれます。
2
第 2 セクションにはシステムコール (カーネルから提供される関数) に関する文書が含まれます。
3
第 3 セクションにはライブラリ関数 (システムライブラリから提供される関数) に関する文書が含まれます。
4
第 4 セクションにはデバイスに関する文書が含まれます (Unix 系システムには特別なファイルがあり、通常 /dev/ ディレクトリに格納されています)。
5
第 5 セクションには設定ファイル (書式や規約) に関する文書が含まれます。
6
第 6 セクションにはゲームに関する文書が含まれます。
7
第 7 セクションには一連のマクロと標準化規約に関する文書が含まれます。
8
第 8 セクションにはシステム管理コマンドに関する文書が含まれます。
9
第 9 セクションにはカーネルルーチンに関する文書が含まれます。
探しているマニュアルページのセクション番号を指定することも可能です。すなわち read システムコールに関する文書を見るには、man 2 read と入力してください。セクション番号を指定しなかった場合、指定した名前に関するマニュアルページが最初に見つかったセクションから内容が表示されます。そんなわけで、man shadowshadow(5) を表示します。なぜなら、shadow に関するマニュアルページは第 1 セクションから第 4 セクションの間に存在しないからです。
もちろん、コマンドの名前を知らなければ、マニュアルページは役に立ちません。コマンドの名前がわからない場合に役立つのが apropos コマンドです。apropos コマンドはマニュアルページ内、正確に言うと短い説明文内を検索します。それぞれのマニュアルページは基本的に 1 行の要旨から始まります。apropos はマニュアルページの要旨にキーワードを含むプログラムのマニュアルページのリストを返します。キーワードをうまく選べば、必要なコマンドの名前を見つけることができるでしょう。

例 7.1 apropos を使って cp を探す

$ apropos "copy file"
cp (1)               - copy files and directories
cpio (1)             - copy files to and from archives
hpcopy (1)           - copy files from an HFS+ volume
install (1)          - copy files and set attributes
ntfscp (8)           - copy file to an NTFS volume.
The man command is not the only means of consulting the manual pages, since khelpcenter and konqueror (by KDE) and yelp (under GNOME) programs also offer this possibility. There is also a web interface, provided by the man2html package, which allows you to view manual pages in a web browser. On a computer where this package is installed, use this URL after following the instructions in /usr/share/doc/man2html/README.Debian:
man2html ユーティリティを動かすにはウェブサーバが必要です。このため、man2html サービスをインストールするマシンは管理下にあるサーバの 1 台だけにするべきです。こうすることで、ローカルネットワークのユーザは全員 (非 Linux マシンでも) man2html サービスからの恩恵を受けることができますし、HTTP サーバを各ワークステーションにセットアップする必要がなくなります。man2html サービスをインストールしたマシンに他のネットワークからもアクセスできる場合、man2html サービスにアクセスできるのはローカルネットワークのユーザだけに制限することが望ましいです。
最後に重要なことですが、Debian が運営する manpages.debian.org サービスを使えば、自分のコンピュータにインストールされていないマニュアルを含むすべてのマニュアルを見ることができます。このサービスはすべてのマニュアルページを Debian リリース毎に提供しています。

7.1.2. info 文書

これまでずっと GNU プロジェクトはほとんどのプログラムのマニュアルを info フォーマットで書き続けてきました。そのため、多くのマニュアルページでは対応する info 文書を参照することが求められています。info フォーマットにはいくつかの利点がありますが、info 文書を表示するためにデフォルトで用意されているプログラム (これは info と呼ばれています) は若干理解に苦労するものです。info の代わりに pinfo (pinfo パッケージに含まれます) を使うのが賢明かもしれません。
info 文書は階層的な構造をしており、pinfo をパラメータなしで実行した場合、最初の階層から利用できるノードのリストが表示されます。通常、ノードには対応するコマンドの名前が付けられています。
With pinfo navigating between these nodes is easy to achieve with the arrow keys. Alternatively, you could also use a graphical browser, which is a lot more user-friendly. Again, konqueror and yelp work; the info2www package also provides a web interface.
info システムは man ページシステムと異なり翻訳に適さないシステムであるという点に注意してください。そんなわけで、info 文書はほとんど常に英語で書かれています。しかしながら、pinfo プログラムに対して存在しない info ページを表示するよう要求した場合、プログラムは同名の man ページを (存在すれば) 表示します。これは翻訳されているかもしれません。

7.1.3. 独自の文書

各パッケージには独自の文書が含まれています。最も貧弱な文書しか持たないプログラムの場合でも、興味深く重要な情報を含む README ファイルは提供されています。README ファイルは /usr/share/doc/package/ ディレクトリにインストールされます (ここで package はパッケージ名を示します)。README ファイルのサイズが著しく大きな場合、README ファイルはプログラムのメインパッケージに含まれないかもしれません。この場合、通常 package-doc と名付けられた専用の文書パッケージに含まれています。メインパッケージは通常文書パッケージを推奨します。そうすれば、ユーザが簡単に文書を見つけられるからです。
The /usr/share/doc/package/ directory also contains some files provided by Debian which complete the documentation by specifying the package's particularities or improvements compared to a traditional installation of the software. The README.Debian file also indicates all of the adaptations that were made to comply with the Debian Policy. The changelog.Debian.gz file allows the user to follow the modifications made to the package over time: it is very useful to try to understand what has changed between two installed versions that do not have the same behavior. Finally, there is sometimes a NEWS.Debian.gz file which documents the major changes in the program that may directly concern the administrator (see 第 6.7.2 節「アップグレードの後から問題を取り扱う」).

7.1.4. ウェブサイト

多くの場合、フリーソフトウェアプログラムはソフトウェアを配布して開発者とユーザのコミュニティを作るためのウェブサイトを持っています。これらのサイトには、さまざまな形態で関連する情報がたくさん載せられています。ここで情報とは、公式文書、FAQ (よくある質問)、メーリングリストアーカイブなどです。多くの場合、あなたが直面するであろう問題は既に何度も質問されている問題です。このため、FAQ かメーリングリストアーカイブに問題に対する解決策があるかもしれません。関連するページを素早く発見するには、検索エンジンをうまく使いこなす (検索対象をそのプログラム専用のインターネットドメインまたはサブドメインに限定する) と非常に有益です。検索でヒットしたページ数が多すぎたり、検索結果に探しているものが含まれなければ、キーワード debian を追加することにより、検索結果を絞り込むか関連する情報に狙いを定めることが可能です。
ソフトウェアのウェブサイトのアドレスがわからない場合、さまざまな手段でそれを知ることができます。最初に、パッケージのメタ情報を表示して (apt show package) Homepage フィールドがあるか確認してください。別の方法として、パッケージ説明文にプログラムの公式サイトへのリンクが載っているかもしれません。URL が見つからなければ、/usr/share/doc/package/copyright を確認してください。Debian メンテナは通常このファイルの中に、プログラムのソースコードを手に入れた場所を示しており、これこそが探しているウェブサイトのものである可能性が高いです。それでもなおウェブサイトがわからない場合、たとえば FSF の フリーソフトウェアディレクトリなどのフリーソフトウェアディレクトリを確認するか、Google、DuckDuckGo、Yahoo などの検索エンジンで直接検索してください。
You might also want to check the Debian wiki, a collaborative website where anybody, even simple visitors, can make suggestions directly from their browsers. It is used equally by developers who design and specify their projects, and by users who share their knowledge by writing documents collaboratively.

7.1.5. チュートリアル (HOWTO)

A HOWTO is a document that describes, in concrete terms and step by step, “how to” reach a predefined goal. The covered goals are relatively varied, but often technical in nature: for example, setting up IP Masquerading, configuring software RAID, installing a Samba server, etc. These documents often attempt to cover all of the potential problems likely to occur during the implementation of a given technology.
Many such tutorials are managed by the Linux Documentation Project (LDP), whose website hosts all of these documents:
Debian also provides tutorials for its users:
All these documents should be taken with a grain of salt. They are often several years old; the information they contain is sometimes obsolete. This phenomenon is even more frequent for their translations, since updates are neither systematic nor instant after the publication of a new version of the original documents. Further many tutorials nowadays are provided by bloggers, sharing their individual solution with the interested reader. They often lack important information, i.e. the reason why some configuration has been chosen over another, or why some option has been enabled or disabled. Because blogging and creating own websites made it so easy to share, many of these often short tutorials exist, but only a few are actively maintained and well-kept. This can make it hard, to find the "right" one for you. This is all part of the joys of working in a volunteer environment and without constraints…