[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:00524] FAQ Ch.9



笹井@サーフライン西湘です。遅くなりましたが、Debian FAQ 9章の翻訳の
訂正版です。おかしなところもあったので直しました。
校正よろしくお願いします。

9.2.の dpkg-ftp, dftp, mirrorは利用したことがないので間違いがあるかも
しれません。

--
The Debian GNU/Linux FAQ [1996/12/28版]


9.  Debian システムを最新に保つには


9.1.  a.out 形式バイナリに基づく Debian 0.93 (あるいはそれ以前) の配布
パッケージを ELFバイナリ形式に基づく 1.1 (あるいはそれ以降) にアップグ
レードするにはどうすればいいのですか?

Debian 0.93R6 から Debian 1.1 (あるいはそれ以降) へアップグレードする
のに必要なファイルはディレクトリ upgrades/ にあります。アップグレード
には次の2つの方法があります。

o 手作業でパッケージをアップグレードする方法。
手順は upgrade_dselect.doc を見て下さい。この際、UpGrade, base_list,
dpkg-*.deb といったファイルも必要です。

o dselect を使って全てのパッケージをまとめてアップグレードする方法。
手順は upgrade_dselect.doc を見て下さい。この際、dpkg-*.deb も必要です。

このディレクトリの中にある dpkg のバージョンは a.out バイナリ形式だと
いうことに注意して下さい。development や stable ツリーにある dpkg のバー
ジョンは ELF 形式です。


9.2.  Debian システムを最新に保つにはどうすればいいのですか?

単純な方法は、まず、Debian アーカイブに anonymous ftp します。次に、ディ
レクトリをよく調べて欲しいファイルを見つけ、それを取ってきます。最後に 
dpkg を使ってそのファイルをインストールします。たとえシステムが稼動し
ていても、dpkg はアップグレードする必要のあるファイルをきちんとインス
トールしてくれます。あるパッケージをアップグレードしようとした時、他の
パッケージもアップグレードするように要求される場合があります。この場合、
指示されたアップグレードを行わなければ、希望するパッケージのアップグレー
ドは失敗してしまいます。

多くの人は、この方法はあまりにも時間がかかり過ぎると感じるでしょう。と
いうのも、Debian は急速に進化しているからです。通常、一週間に1ダース以
上もの新しいパッケージがアップロードされています。新しいメジャーリリー
スの直前にはもっと増えます。このような大変なアップグレード作業を自動化
してくれるプログラムが欲しくなりますよね。これには、現在、3種類のパッ
ケージが利用できます。

o dpkg-ftp.  この方法は dselect のアクセス手段の一つになっています。
dselect から実行することができるので、ファイルをダウンロードしてインス
トールするという作業を一度に直接行うことができます。やり方は、まず、
dselect プログラムを起動してオプション 0 (Choose the access method to
use.) を選択します。そして、オプション ftp をハイライトさせてリモート
ホスト名とディレクトリを指定します。dpkg-ftp は今回新しく選択したファ
イルや以前に選択したファイルを自動的にダウンロードしてくれます。mirror 
プログラムと違って、dpkg-ftp はミラーサイトの全てのファイルを取ってく
るわけではありません。このプログラムは、(dpkg-ftp を立ち上げた時に) 選
択したパッケージのうちアップグレードする必要のあるファイルだけをダウン
ロードします。

dpkg-ftp は Debian アーカイブのディレクトリ stable/binary-all/net/ か
ら入手できます。

o mirror.  この Perl スクリプトと mirror-master という付属の管理プログ
ラムは、anonymous ftp を使って特定のホストから指定したディレクトリツリー
を取ってくるのに使います。mirror は特に、大量のソフトウェアをダウンロー
ドする場合に役立ちます。初めてサイトからファイルをダウンロードすると、.
mirrorinfo と呼ばれるファイルがローカルホストに作成されます。リモート
ファイルシステムの変更は、 mirror がこのファイルとリモートシステムにあ
る同様のファイルを比較することによって、自動的に認識されます。この結果、
変更されたファイルだけがダウンロードされます。

mirror プログラムは一般に、リモートディレクトリツリーのローカルなコピー
を更新するのに使います。取ってくるファイルは Debian ファイルである必要
はありません。(mirror は Perl スクリプトなので、非Unix システム上でも
動かせます。) mirror プログラムには、指定した文字列にマッチする名前の
ファイルを除外する機能もありますが、このプログラムはパッケージを選択し
てダウンロードするよりもディレクトリツリー全体をダウンロードするのに大
変役立ちます。

mirror プログラムは Debian のためにパッケージ化されており、Debian FTP 
アーカイブのディレクトリ stable/binary-all/net から入手できます。

o dftp.  この Perl スクリプトは特定のホストからユーザ指定の Debian パッ
ケージを取ってくるのに使えます。このプログラムは、ユーザが指定したディ
レクトリ (つまり、stable, contrib, non-free) の Packages.gz をダウンロー
ドして、そのディレクトリに含まれるパッケージのリストを表示します。new
upgrades, downgrades, new packages, ignored upgrades, ignored packages 
など、様々なセクションがあります。欲しいパッケージを選択すると、dftp 
はそれをダウンロードしてインストールします。これを使えば、インストール
するつもりのないパッケージをダウンロードすることなく、簡単に、Debian シ
ステムを常に最新にしておくことができます。

dftp は dselect (7.1.1) を呼び出すことができるので、Debian パッケージ
の取得と更新を統合して行えます。インストールが終了すると、別の dftp コ
マンドでパッケージアーカイブ (.deb) ファイルを消去することができます。
リモートファイルシステムの変更は dftp がローカルとリモートシステムの 
Packages.gz ファイルを比較することによって、自動的に認識されます。

dftp プログラムは Debian FTP アーカイブのディレクトリ project/misc か
ら、スクリプトとして入手できます。


9.3.  パッケージをアップグレードするには、シングルユーザモードにしなけ
ればいけないのですか?

いいえ、その必要はありません。システムが稼動していてもパッケージはきち
んとアップグレードされます。Debian には start-stop-daemon プログラムが
あり、パッケージをアップグレードする時にもし必要なら、動いているプロセ
スをストップしてその後再びスタートするという作業を行ってくれます。


9.4.  自分のディスクに全ての .deb アーカイブファイルを保存しておかなけ
ればならないのですか?

いいえ、その必要はありません。もし自分のディスクにファイルをダウンロー
ドしているなら (これは必ずしも必要なことではありません。詳しくは 
dpkg-ftp (9.2) や dftp (9.2) を見てください。)、そのパッケージをインス
トールした後、そのファイルを消去しても構いません。


9.5.  システムに追加したパッケージのログを保存するにはどうしたらいいの
ですか?

dpkg は展開したり、設定したり、消去したり、追放したりしたパッケージの
記録をとっていますが、(現在のところは) パッケージのインストール中にユー
ザが端末で行った操作のログは保存されていません。あるユーザはこれを tee 
コマンドを使って簡単に克服しています。

   dpkg -iGOEB -R stable/binary non-free/binary contrib/binary | \
       tee -a /root/dpkg.log

長いオプションを用いて書くと次のようになります。

   dpkg --install --refuse-downgrade --selected-only \
     --skip-same-version --auto-deconfigure \
     --recursiv estable/binary non-free/binary contrib/binary | \
       tee -a /root/dpkg.log