[% title = "The Debian GNU/Linux FAQ - Debian GNU/Linux のインストールをカスタマイズする" %]


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 次のページ ]


The Debian GNU/Linux FAQ
第 10 章 - Debian GNU/Linux のインストールをカスタマイズする


10.1 全てのプログラムが確実に同じ用紙サイズを使うように 設定するにはどうすればいいのですか?

ファイル /etc/papersize にはシステムのデフォルト用紙サイズの 名前 (すなわち letter や A4) が書かれています。これは環境変数 PAPERSIZE を使って上書きすることができます。詳しくは papersize(5) のマニュアルページを見て下さい。


10.2 セキュリティを弱めることなしにハードウェア機器 にアクセスするにはどうしたらよいですか?

/dev ディレクトリにある多くのデバイスファイルは予め定義され た何らかのグループに属しています。例えば /dev/fd0floppy グループに属しており、/dev/dspaudio グループに属しています。

あるユーザがこれらのデバイスの一つにアクセスできるようにするには、そ のデバイスが属するグループにそのユーザを加えれば結構です。つまり

     adduser user group

とします。こうすればデバイスファイルを chmod する必要はありません。


10.3 スタートアップ時にコンソールフォントを Debian 流 にロードするにはどうしたらよいですか?

kbdconsole-tools パッケージがこれをサポートし ています。/etc/kbd/config あるいは /etc/console-tools/config ファイルを編集してください。


10.4 X11 プログラムのアプリケーションデフォルトを設定 するにはどうすればいいのですか?

Debian の X11 インストールは、ユーザが /usr/X11R6/lib/X11/app-defaults/ の中のファイルを変更しないこと を想定しています。もし X アプリケーションを全体的にカスタマイズしたけれ ば /etc/X11/Xresources をカスタマイズして下さい。このファイル は設定ファイルとして登録されているので、パッケージをアップグレードしても その内容は保存されます。


10.5 どのディストリビューションもそれぞれ起動方法が異なっ ているようですね。Debian の場合について教えて下さい。

全ての Unix と同様に Debian は init プログラムを実行すること によってブートアップします。init の設定ファイル (/etc/inittab) にはスクリプト /etc/init.d/rcS を最初に 実行するように書かれています。このスクリプトはファイルシステムを検査して マウントし、モジュールをロードして、ネットワークサービスを開始します。ま た時刻を合わせたり、その他の初期化も行います。それから /etc/rc.boot/ にある (ファイル名に「.」が付くものを除いた) 全て のスクリプトを実行します。ここにあるスクリプトはシステム管理者のために予 約されており、パッケージでそれを使うことは推奨されません。

ブートプロセスを終えると init はデフォルトのランレベル (この ランレベルは /etc/inittab に書かれた id のエントリによっ て与えられます) によって指定されたディレクトリ中の全ての開始スクリプトを 実行します。多くの System V 互換 Unix と同様に Linux には 7 つのランレベ ルがあります。

Debian システムは id=2 で始まります。これはマルチユーザ状態に入った時の デフォルトのランレベルが 2 であり、/etc/rc2.d/ の中のスクリプト が実行されることを意味しています。

実際には、/etc/rcN.d/ のどのディレクトリのスクリプトも /etc/init.d/ の中にあるスクリプトへの単なるシンボリックリンクに なっています。しかし、ディレクトリ /etc/rcN.d/ の各々のファ イル名は、/etc/init.d/ 中のスクリプトを走らせる方法がわかるように選ばれています。具体的に言うと、あるランレベルに入る 前に「K」で始まる全てのスクリプトが実行されます。これによってそのサービ スは停止されます。次に「S」で始まる全てのスクリプトが実行されます。これ によってそのサービスは開始されます。「K」や「S」に続く 2 桁の数はスクリ プトが実行される順番を表しており、数の小さいスクリプトが最初に実行されま す。

このやり方はうまく機能します。というのも /etc/init.d/ の中に あるスクリプトはすべて「start」か「stop」か「reload」か「restart」か 「force-reload」のどれかを引数にとり、その引数に従って定められた仕事を行 うからです。これらのスクリプトはシステムがブートしてしまった後でも様々な プロセスを制御するために利用できます。

例えば「reload」を引数としたコマンド /etc/init.d/sendmail reload は sendmail デーモンに設定ファイルを再読み込みするようシグナ ルを送ります。


10.6 Debian はブートプロセスをカスタマイズするの に rc.local を使っていないようですね。どんな手段が使えるのです か?

起動時や特定の (System V) ランレベルへの入り口でシステムがスクリプト foo を実行しなければならないとします。その場合システム管理者は 次のようにして下さい。

コマンド update-rc.d/etc/init.d/ の中のスクリプ トからディレクトリ rc?.d の中のファイルへのリンクを作成します。各々のリ ンクは「S」か「K」で始まり、その次に数字が続き、最後にスクリプトの名前が 続きます。/etc/rcN.d/ の中の「S」で始まるスクリプトはランレベル N に入った時に実行されます。「K」で始まるスクリプトはランレベル N を離れた時に実行されます。

例えば、スクリプト foo/etc/init.d/ の中に置き、 update-rc.d foo defaults 19 としてリンクを作成すると、スクリプ ト foo を起動時に実行させることができます。ここで引数「defaults」はデフォ ルトのランレベルである 2 から 5 を表しており、引数「19」は foo がファイル名に 20 以上の数を含んでいるスクリプトよりも先に 呼び出されることを表しています。


10.7 パッケージ管理システムでは、別のパッケージに関 する設定ファイルを含んでいるようなパッケージをどのようにして取り扱うので すか?

例えば、ユーザの環境に合わせた設定ファイルを含むパッケージをローカル に作成しておき、いくつかの Debian パッケージ群とこの設定ファイルを含むパッ ケージをインストールすることで簡単に新しいサーバを作りたい、という状況を 考えてみます。これは一般的に良い考えではありません。もし設定ファイルが別 のパッケージの中にあっても dpkg はそれらの設定ファイルについて知 るはずもなく、パッケージ「群」の一つをアップグレードした時に設定ファイル も更新されて矛盾が生じてしまうからです。

代わりに、関心のある Debian パッケージ「群」の設定ファイルを修正する ローカルなパッケージを作って下さい。こうすれば、dpkg などのパッケー ジ管理システムは、ファイルがローカルな「システム管理者」によって修正され たかどうかわかるので、パッケージをアップグレードする時に上書きされること はありません。


10.8 あるパッケージによってインストールされたファイルを上書 きして、代わりに違うバージョンのものを使うにはどうすればいいのですか?

システム管理者やローカルユーザが、Debian の login パッケー ジに含まれる「login」プログラムではなく「login-local」プログラムを使いた いとします。

次のようにしてはいけません。

パッケージ管理システムはこの変更について知るはずもなく、login (あるいは /bin/login を提供するパッケージ) を新たにインストール したり更新したりすると、カスタム /bin/login は単純に上書きされ てしまいます。

代わりに次のようにして下さい。

詳しくは マニュアルページ dpkg-divert(8) に 書かれています。


10.9 パッケージ管理システムが知っている利用可能パッ ケージのリストの中に自分で作ったパッケージを含めるにはどうすればいいので すか?

次のコマンドを実行してください。

     dpkg-scanpackages BIN_DIR OVERRIDE_FILE [PATHPREFIX] > my_Packages

ここで

いったんファイル my_Packages を作ってしまえば、以下のコマン ドによってパッケージ管理システムにそれを教えることができます。

     dpkg --merge-avail my_Packages

10.10 mawk が好きなユーザもいれば gawk が好きなユーザもいま す。vim が好きなユーザもいれば elvis が好きなユーザもいます。trn が好き なユーザもいればtin が好きなユーザもいます。このような多様性を Debian は どのようにしてサポートしていますか?

二つのパッケージがあるプログラムの異なるバージョンを提供しており、双 方が同じ基本機能を提供しているといういくつかのケースがあります。ユーザが どちらか一方のパッケージを好むのは、習慣からかもしれませんし、あるパッケー ジのユーザインタフェースが別のものよりもどういうわけか心地よいという理由 からかもしれません。同じシステムの別のユーザは違う選択をするかもしれませ ん。

Debian では「仮想」パッケージシステムを使うことによって、同じ基本機能 を提供する 2 つ以上のパッケージが存在している時にシステム管理者 (あるい はユーザ) がお気に入りのツールを選ぶことができます。また、特定のパッケー ジを指定しなくてもパッケージ依存条件が満たされるようになっています。

例えば、一つのシステムに 2 つの異なるニュースリーダーが存在するとしま す。ニュースサーバパッケージは、システムになんらかのニュースリー ダーがインストールされていることを「recommend (推薦)」してはいますが、 tintrn かという選択は個々のユーザに任せています。 これがうまく機能するのは、tintrn が共に仮想パッケー ジ news-reader を提供しているからです。どのプログラム が実行されるかは、仮想パッケージ名を持つファイル /etc/alternatives/news-reader から選択したファイル、例えば /usr/bin/trn へリンクを張ることにより決定されます。

このような方法を使う場合、リンクが一つだけではプログラムを十分に利用 するのに不十分です。普通、マニュアルページやその他のサポートファイルも適 切に選択されていなければなりません。Perl スクリプト update-alternative を使えば、パッケージに関連する全てのファイル をシステムデフォルトとして正しく選択することができます。

例えば、どの実行ファイルが「x-window-manager」を提供するのかをチェッ クするには

     update-alternatives --display x-window-manager

を走らせます。それを変更したいのなら

     update-alternatives --config x-window-manager

を走らせ、画面の指示に従います (基本的には選択したいエントリの次の番号を 入力します)。

何らかの理由でパッケージが自分自身をウィンドウマネージャとして登録し ない場合 (エラーになるならバグとして提出してください)、あるいは /usr/local ディレクトリにあるウィンドウマネージャを使いたい場合は、選択 したいエントリが画面の選択肢に現れないでしょう。そんなときは例えば以下の ようにコマンドラインオプションでリンクを更新できます。

     update-alternatives --install /usr/bin/x-window-manager \
       x-window-manager /usr/local/bin/wmaker-cvs 50

「--install」オプションの第一引数は /etc/alternatives/NAME へのシンボ リックリンクです。ここで NAME が次の引数になります。第三引数は /etc/alternatives/NAME が指すべきプログラムです。第四引数は優先度で、大 きな値を指定すると自動的に選択される可能性が大きくなります。

別候補を削除するには単に

     update-alternatives --remove x-window-manager /usr/local/bin/wmaker-cvs

を実行してください。


[ 前のページ ] [ 目次 ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ 次のページ ]


The Debian GNU/Linux FAQ

version CVS, 2 January 2007

著者, 第 15.1 節