Debian Jigdo mini-HOWTO DJ-HOWTO Peter Jay Salzman
p@dirac.org
山口つかさ 日本語訳
PDC01212@nifty.com
v0.116, 2002-12-15 2001 Peter Jay Salzman p@dirac.org / www.dirac.org/p. Distributed subject to the GNU General Public License, version 2. 概要 Debian の ISO イメージを手に入れるのは骨が折れて、時間がかかり非効率極まりない作業でした。jigdo は Debian の ISO イメージを簡単に手早く、ずっと効率よく入手する新しいツールです。この HOWTO では jigdo を使うべき理由、動作についての説明を少しと、Debian ISO イメージを jigdo を使って手に入れ、アップデートする方法について述べます。 jigdo は極めて汎用性の高いツールであり用途は Debian ISO 用に限られません。jigdo ツールを使えばどのような ISO イメージであってもDebian の ISO を入手するのと同じように簡単に手早く、効率的にダウンロードできます。この HOWTO では Debian 以外の ISO についてもカバーしていますが、主な対象は Debian ISO です。
前書き 著者及び著作権 この文書の著作権は Peter Jay Salzman p@dirac.org にあります。 次の段落の但し書きに指定する場合を除いて GNU フリー文書利用許諾契約書 バージョン 1.1 に基づく複写、配布、改変は許諾済みです。私としては許諾条項を含む HOWTO は嫌いです−そのような HOWTO は「紙の無駄」です。GNU FDL は http://www.gnu.org/copyleft/fdl.htmlで入手できます。 この HOWTO の派生物を製作したり商用目的で刊行する場合は、私に連絡してもらえば最新のバージョンをお渡しします。あなたが作った何らかの成果物のコピーであれ、ほうれん草、ガーリック、マッシュルーム、フェタチーズとアーティチョークののったピザであれ大歓迎ですよ。 謝辞 最初はjigdo の作者の Richard Atterer に jigdo を生み出したことについて感謝するつもりだけでした。Debian の ISO イメージを他の方法で取得したことのある人であれば誰でもそうしたでしょう。しかし私は更に Richard に更に感謝すべきです。この HOWTO は、私自身が jigdo を使った経験をウェブページに掲載したことから始まりましたが、Richard は私宛の電子メールに時間をとってくださり、多数の修正をしていただき、jigdo に関する私の疑問に明快に答えてくださいました。以来、Richard は私の文書を何度も読み返してくださっています。Richard は開発者として自分の作品だけでなく、それを使う人にも関心を寄せています。悲しいかな現在の世知辛い世の中では貴重な存在となりつつありますが。Richard 、ありがとう! 更にConrad Wood, Elcio MelloMarcelo Ramos がこの mini-HOWTO を翻訳してくれたことにも感謝します。私の文書が時間と労力を割くに値すると認めてくださったことは光栄です。ありがとう! コメントと修正 この文書を作成するに当たっては読みやすい文書を作成するようにかなり注意を払いました。mini-HOWTO を書くにはかなり時間がかかりますが、読んでも理解できない程度の完成度で投げ出すのなら労力を投じはしなかったでしょう。コメントや修正、提案―例えそれが文書のスタイルに関するものであっても遠慮なく私に電子メールで連絡してください。博士号取得に忙殺されていない限り、この mini-HOWTO に関する電子メールに対して全てお返事を差し上げるように努めます。 最新バージョンと翻訳 Conrad Wood cnw@conradwood.net がドイツ語に翻訳しています。 Elcio Mello mello@ajato.com.br がポルトガル語に翻訳しています。 Marcelo Ramos mramos@montevideo.com.uy がスペイン語に翻訳しています。 翻訳済みのものは http://www.dirac.org/linux/debian/jigdo にあります。 を参照してください。 英語で書かれた確定版は The Linux Documentation Project: http://tldp.org/docs.html の mini-HOWTO セクションにあります。「最新 (bleeding edge) 」版の進行状況を知りたければ http://www.dirac.org/linux/debian で確認してください。この mini-HOWTO を他の言語に翻訳しようとする人は私 p@dirac.org に連絡してください。 なぜ jigdo を使うか? Debian の ISO イメージ一式を手に入れるには? 自分用の Debian CD を手に入れようと思えば、数多くの方法があります。まず Debian の CD を販売している小売業者から買うという手があります。小売業者には Debian プロジェクトに代金の一部を寄付しているところもありますので、この方法にもメリットはあります。Debian プロジェクトが長期にわたって存続し続けられるよう援助するには寄付が確実です。 もう一つは自分で CD を焼くやり方です。すなわち ISO イメージを手に入れた上で新品の CD に焼くということです。jigdo が登場するまでは Debian の CD を作るには二通りの方法がありました− ISO イメージ全体をダウンロード pseudo-image kit (PIK) を使う この文書では jigdo を使って Debian の ISO イメージを入手する新しくてより良い方法について解説します。PIK は実際のところお勧めできません、Debian の ISO イメージを入手する正統的な方法は jigdo です。 ISO イメージを丸ごとダウンロードしないのはなぜか? Debian の ISO イメージを http や ftp でダウンロード可能なミラーサイトも存在しますが、数は少なく、ミラーサイトの帯域は Debian の ISO イメージを手に入れる人全ての要求に応えられるほどはありません。例えば、聞くところによると fsn.hu はプロバイダーからの接続がパンクしたそうです。そのときの月単位の送出量は数テラバイトに達したそうです。 加えて、Debian の testing と unstable は頻繁に更新されていて、ISO イメージはダウンロードしたその日の内に旧版になってしまい、それを避けるには ISO イメージを loopback デバイスにマウントして rsync を使う (PIK が採用している方法です)ような奇手をとるしかありません。すなわち最新版の ISO イメージが欲しければ ISO イメージを毎日ダウンロードしなければなりません。こんなやり方を誰もが望んでいないことはハッキリしています。 手に入れたいのは安定版の ISO イメージであっても、 安定版ですら数ヶ月おきに更新されます。ISO イメージをダウンロードすると数ヶ月の間は最新版のイメージを手元に置いておけますが、Debian 安定版の改訂がリリースされる毎にスクラッチから ISO イメージセット全体をダウンロードするという面倒な手順を行わなければならないのです。こんなやりかたは時間とミラーサイトの資源の無駄遣いです。 なぜ Pseudo Image Kit (PIK)を使わないか? PIK を使えば、ISO イメージ全体をダウンロードすることにより発生する問題をかなり回避できます。PIK によるダウンロードは高速で rsync の利用により ISO イメージの内、更新が発生した部分だけを作り替えるので、自分の ISO イメージを最新状態に保つには効率のよいやり方です。しかし PIK には見過ごせない問題も存在します− 使い方は難しく、ユーザーフレンドリーとは言えません。 testing または unstable 版の ISO イメージセットのダウンロードには PIKを使えません。 PIK は rsync を使い、rsync はサーバーの CPU に負荷がかかります。PIK を使って同時にサーバーに接続する人数が多すぎるとサーバーはダウンしてしまうでしょう。PIK のユーザーインターフェースが改善されたとしても、ミラーサーバーにとっては歓迎せざる存在であることに変りありません。 PIK は rsync を利用していますが、rsync はアクセス制限の厳しいファイアウォール越しには利用できないことが多く、高速で快適な勤め先のネットワーク上で PIK を使おうとしても障害に突き当たってしまうかもしれません。 PIK を利用する前提として ISO イメージを全てサーバー上に保持しておく必要がありますが、Potato 時代の「旧き良き時代」には 28 枚の CD イメージで「たったの」17GB であったものが、Woody になると 96 枚の CD で 57GB 相当を要します。CD に加えて DVD まで配布するとなったら、必要なサーバーの領域は倍増するでしょう。 jigdo とは? jigdo (「Jigsaw Download」の略です) は Richard Atterer が作成して GNU GPL の条件で公開しています。jigdo を使うと ISO イメージを効率的にダウンロードし更新できます。jigdo は Debian に特化しておらず、どのような ISO イメージにも適用できますが、Debian プロジェクトでは jigdo を ISO イメージダウンロード用のツールとして推奨しています。 jigdo は 2 個のユーティリティで構成されます− jigdo-file は ISO イメージを提供する人が使います。jigdo-file を使ってダウンロード対象のイメージファイル用に .jigdo と .templateファイルを生成すれば、誰でも ISO イメージをダウンロードできるようになります。 jigdo-lite は ISO イメージをダウンロードしたい人が利用します。ダウンロード時には jigdo-file で生成した .jigdo と .template ファイルを使用します。単に Debian の ISO イメージをダウンロードするのであれば、jigdo-lite のみを使用します。 jigdo は ISO イメージを生成するものという誤解をしている人がよくいますが、そうではなく jigdo-file を使うと.jigdo と .template ファイルを生成して ISO イメージのダウンロードが可能になるのです。ISO イメージをダウンロードしようとする人は、.jigdo と .template の 2 種類のファイルを手に入れてから、jigdo-lite を使って ISO イメージをダウンロードします。jigdo-file を使うには前もって ISO イメージを作成しておく必要があり、通常は作成には mkisofs や debian-cd などのユーティリティを使用します。 jigdo を使えば、ISO イメージを丸ごとダウンロードしたり、PIK を使った場合に発生する問題を全て回避できます。 ISO イメージ全体をダウンロードするのに比べてはるかに高速です。 ISO イメージ全体をダウンロードする場合と違って、旧版の CD (または loop マウントした旧版の ISO イメージ)を入手でき、CD (または ISO イメージ)を作成した以降に変更されたファイルのみをダウンロードして新しい ISO イメージを生成します。cvs を使ってソースコードを更新する作業と非常に似ています。 jigdo-lite は PIK よりもずっと易しく使えます。 jigdo-lite では wget を使用し、デフォルトでファイル転送に http プロトコルを利用します。PIK では rsync を利用し、rsyncが通過できないファイアウォールは複数ありますが、http をブロックするファイアウォールでは jigdo-lite どころか、そもそも jigdo を使い始めることすらできないはずです。jigdo-lite を使っていてファイアウォールが問題になることはありえないでしょう。 jigdo-lite のユーザーインターフェースは PIK よりずっと使い易いものです。 jigdo-lite は PIK に比べてサーバーにかかる負荷がはるかに少なくなります。 jigdo が Debian ISO イメージの取得に最適であることはハッキリしています。 jigdo の動作 (読み飛ばし可) この部分は jigdo を使用する上では読む必要がありませんが、jigdo の仕組みについて理解するのに役立つでしょう。興味が無ければ、「どのように jigdo を使うのか」に進んでください。 jigdo は 2 個のコンポーネントからなります。 jigdo-file ― ダウンロード用の ISO イメージを用意します (ISO イメージを提供する側が使用します)。 jigdo-lite ― ISO イメージをダウンロードします (ISO イメージを手に入れる側が使います)。 ダウンロード用の ISO イメージを用意する CD イメージは iso9660 といわれるファイルシステムですが、ここでは「ISO イメージ」(約 650MB) と呼ばれる単体のファイルで複数のオフセットにファイルが含まれているものと考えて構いません。例えば、CD に README という 567 バイトのファイルがあれば、ISO イメージ内では、オフセット 20480000 から 20480567 の間に存在しているでしょう。図示すると次のようになります― -------------------------------------------------------- ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx| -------------------------------------------------------- 上の図で「x」の部分には、ディレクトリ情報やゼロパディング、ディスク名、ブートブロックなどが入ります。jigdo-file takes two things as input: the complete CD image (so the ISO already needs to have been made) and a set of files which may or may not be in the image. Here's a visualization of jigdo-file's input: --> jigdo-file には 2 つのものを入力として与えます― 完成品の CD イメージ(この時点で ISO イメージが既に作成済みである必要があります)と ISO イメージに格納しようとする一連のファイル、こちらは ISO イメージに格納済みである必要はありません。jigdo-file の入力データを図示します。 -------------------------------------------------------- ISO Image: |xxxx| file-0 |xx| file-1 |xxx| file-2 |x| file-3 |xxxx| -------------------------------------------------------- ---------- ---------- ---------- ---------- Loose Files: | file-0 | | file-1 | | file-3 | | file-4 | ---------- ---------- ---------- ---------- 不思議なことに、jigdo-file は実行時に与えたばらばらのファイル (Loose Files) のうち、ISO イメージに格納されているものを探し出して、ファイルの ISO イメージ内のオフセットを調べます。処理の結果 .template と .jigdo の 2 種類のファイルを出力します。 .template ファイル ISO イメージファイルと ISO イメージ内に格納されているかどうか不明な一連のファイルを入力すると、jigdo-file は .template ファイルを処理対象の ISO イメージについて出力します。.template ファイルの内容は次のようになっています。 -------------------------------------------------------- .template: |xxxx| md5-0 |xx| md5-1 |xxx|cccccccc|x| md5-3 |xxxx| -------------------------------------------------------- jigdo-file は file-0 , file-1 , file-3 が ISO イメージ内に存在することを確認しました。続いて確認したファイルの内容を削除し各ファイルの md5 チェックサム (md5-0, md5-1 など)に置き換えました。 ISO イメージ内の「x」で表記されている部分のデータ(ディレクトリ情報、ゼロパディングなど)については圧縮した上で .template ファイルに書き込みます。最後に ISO イメージ内のファイルで、ばらばらのファイルとして入力されなかったファイル (上記の図では file-2) も圧縮した上で .template ファイルに書き込みます。上記の図の .template ファイルでは c で示した部分です。 jigdo-file に入力されたばらばらのファイルが ISO イメージ内に存在しない場合は無視されます(上記の図では file-4 がこれに当たります)。 .jigdo ファイル ISO イメージファイルと ISO イメージ内に格納されているかどうか不明なばらばらのファイルを入力すると、jigdo-file は処理対象の ISO イメージについて .jigdo ファイルを出力します。Debian での処理の際には .jigdo ファイルは gzip によって圧縮済みなので内容の確認には zcat または zless を用います。.jigdo ファイルを gunzip した際の処理結果を図示します。 md5-0=http://somemirror.org/file-0 md5-1=http://somemirror.org/file-1 md5-2=http://somemirror.org/file-2 md5-3=http://somemirror.org/file-3 .jigdo ファイル内には ISO イメージ内にある md5 チェックサムとそのファイルが実際に存在するダウンロード元のURLの対応関係が書き込まれているだけです。.jigdo ファイルを開いて見ると他にも何か情報が書き込まれています。それを見れば .jigdo ファイルが .ini ファイルと同じ形式であることが分かるでしょう。.jigdo ファイルを見れば追加の説明は不要なはずですが、更に詳細な情報を得るには jigdo に関する文書を見てください。 上記に示す形式は、典型的な .jigdo ファイルを開いたときに見えるものと全く同じではありませんが、ほとんど変りありません。.jigdo ファイルの末尾の [servers] セクションを見れば、上記に示した内容と実際の .jigdo ファイルとの差異が正確に理解できます。 ISO イメージのダウンロード ある ISO イメージについて 一度 jigdo-file を使って .template ファイルと .jigdo ファイルを生成しておけば、その後は誰でもそのイメージファイルをダウンロードできるようになります。jigdo-lite を使うと Debian ISO のファイルを wget を使って全てダウンロードし、同時進行で元の ISO イメージファイルと同じ形式に組み立てます。 初めて ISO イメージをダウンロードするときの操作(簡単な 5 ステップで済みます) ここでは手元に Debian ISO イメージが全く無い状態から始めると仮定しますが、一度自分用の ISO イメージを作ってしまえば、後からは jigdo-lite を使って更新が可能です。ISO イメージの更新については次のセクションで説明します。 jigdo のインストール 最初に jigdo-file パッケージをインストールします― # apt-get install jigdo-file jigdo は今も精力的に開発が続けられていて、バグフィックスと改善が継続中です。もし stable 版か testing 版を使用しているのであれば、http://packages.debian.org/unstable/utils/jigdo-file.html の unstable 版からダウンロードしてください。2002年7月19日の時点ではバージョンは 0.6.8 です。この HOWTO で使用しているバージョンは 0.6.8 です。 Woody ユーザーの注意事項― Woody (rev 0) に付属するバージョンの jigdo-lite では Sarge または Sid のダウンロードはできません。 を参照してください。 .template ファイルと .jigdo ファイルのダウンロード どの ISO イメージをダウンロードする場合にも、常に 2 個のファイルが必要です。 ダウンロードしたいディスクイメージ用の .jigdo ファイル ダウンロードしたいディスクイメージ用の .template ファイル 例― Woody には 8 個のイメージが必要なので、.jigdo ファイルと .template ファイルもそれぞれ 8 個ずつダウンロードしなくてはなりません。http://www.debian.org/CD/jigdo-cd/からダウンロード可能で、それぞれwoody-i386-1.iso.jigdo, woody-i386-1.iso.template から始まって woody-i386-8.iso.template に至るファイル名が付与されています。 あるいは、.jigdo ファイルと .template ファイルを各 ISO イメージ用にダウンロードする代わりに、jigdo-lite 実行時に http://a.mirror/woody-i386-1.jigdo のような .jigdo ファイルのある URL を指定するという方法もあります。jigdo-lite は処理の進行に合わせて対応する .jigdo ファイルと .template ファイルをダウンロードします。しかし、jigdo-lite を初めて使うので不安になっている人は、まずファイルをダウンロードしてください。以降の処理は私が説明します。 jigdo-lite の実行 作成しようとする ISO イメージに対応する .jigdo ファイルを指定して jigdo-lite を実行します。Woody を使った例では次のようになります― $ jigdo-lite woody-i386-1.jigdo ハードディスク上の .jigdo ファイルを使わずに .jigdo の存在する URL を指定する場合は、jigdo-lite 実行時に URL を引数として指定します― $ jigdo-lite http://a.mirror/woody-i386-1.jigdo 画面に次のように表示されます― ----------------------------------------------------------------- Jigsaw Download "lite" Copyright 2001-2002 by Richard Atterer <jigdo@atterer.net> Getting mirror information from /etc/apt/sources.list ----------------------------------------------------------------- Images offered by `woody-i386-1.iso.jigdo': 1: woody-i386-1.iso ----------------------------------------------------------------- If you already have a previous version of the CD you are downloading, jigdo can re-use files on the old CD that are also present on the new image, and you do not need to download them again. Mount the old CD ROM and enter the path it is mounted under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want to start the download of any remaining files. Files to scan: (日本語訳― 以前のバージョンの CD があれば、jigdo は 新しいパッ ケージで更新されていない CD 上のファイルを再利用するので、再ダウ ンロードする必要はありません。古い CD ROM をマウントしマウント位 置のパス(例― /mnt/cdrom )を指定してください。残りのファイル全てを ダウンロードするのであれば、単に Enter を押してください。 スキャン対象のファイル― ) .jigdo ファイルを指定し忘れた場合は、ファイル名(あるいはファイルの存在する URL) を要求するプロンプトが表示されます。 jigdo-lite の実行を cntrl-z で中断して(実際にはやらないように。ここでは例として示しているだけです)、ls を実行するとディレクトリ内に woody-i386-1.iso.jigdo.unpacked という名前のファイルを確認できます。このファイルは単に .jigdo ファイルの gunzip 版です。 次に jigdo-lite は旧版の CD イメージが存在する場所の指定を求めてきますが、今回は ISO イメージが全く無い状態から初めて作成するので何もしません(更新の場合については で説明します)。ここでは何も指定せずに <ENTER> を押します。 ミラーサーバーの指定 次のような画面が表示されます― ----------------------------------------------------------------- The jigdo file refers to files stored on Debian mirrors. Please choose a Debian mirror as follows: Either enter a complete URL pointing to a mirror (in the form `ftp://ftp.debian.org/debian/'), or enter any regular expression for searching through the list of mirrors (try a two-letter country code such as `de', or a country name like `United States', or a server name like `sunsite'): Debian mirror [http://linux.csua.berkeley.edu/debian//]: (日本語訳― jigdo ファイルは Debian のミラーサイトに格納済みの ファイルを参照します。次の形式で Debian のミラーサイトを選択して ください― ミラーサイトの完全な URL (ftp://ftp.debian.org/debian/ のような形式)、あるいはミラーサイトのリストを検索する正規表現であれ ばどんな形式でも (「de 」のような 2 文字の国コード、または「 United States 」のような国名か「 sunsite 」のようなサーバー名)― Debian ミラーサイト [http://linux.csua.berkeley.edu/debian//]― ) jigdo-lite は便利なことに、Debian の update に使っているミラーサイトを /etc/apt/sources.list から読み出してくれます(私が update に使っているのが、linux.csua.berkeley.edu なのは分かりますね)。別のミラーサイトを使いたいのであれば、ここで使いたいミラーサイトを指定します。このままでよければ <ENTER> を押します。jigdo-lite がホームディレクトリに .jigdo-lite を書き込みます。 次に使用する .jigdo ファイルが米国以外のサーバーからダウンロードする必要があるパッケージを参照する場合は(米国輸出規制法の制約を受けるソフトウェアの場合)、jigdo-lite が米国以外のサーバーの指定を要求します。表示されるメッセージ(と入力する内容)は前の段落のミラーサーバーの指定方法とよく似ています。唯一異なるのは米国外のサーバーを指定する(あるいはデフォルト値を確認する)点です。ダウンロードしようとしている ISO イメージが米国外ソフトウェアを含む場合は次のように表示されます― ----------------------------------------------------------------- The jigdo file also refers to the Non-US section of the Debian archive. Please repeat the mirror selection for Non-US. Do not simply copy the URL you entered above; this does not work because the path on the servers differs! Debian non-US mirror [http://linux.csua.berkeley.edu/debian-non-US//]: (日本語訳― jigdo ファイルは Debian アーカイブの米国外セクショ ンも参照します。米国外ミラーサイトについて選択を繰り返してくださ い。先ほど入力した URL と同じものを入力しないようにしてください ― サーバーのパスが異なるために上手く動作しません。 Debian 米国外ミラー [http://linux.csua.berkeley.edu/debian-non-US//]―) その後、jigdo-lite が選択した内容を $HOME/.jigdo-lite ファイルに書き込みます。ダウンロードしようとしているイメージが米国外のソフトウェアを含んでいなければこの手順は表示されません。 $HOME/.jigdo-lite ファイルに次のような内容を記述しておけば、今後のダウンロードでは指定したミラーサイトがデフォルトとして使用されます。− debianMirror='http://some-mirror-to-use/debian/' nonusMirror='http://some-other-mirror/debian-non-US/' ISO イメージのダウンロード ミラーサイトを指定すると、次に jigdo-lite は .template ファイルを探し、見つからなければミラーサイトから取得します。.template ファイルが見つかると(あるいはミラーサイトから取得すると)、次のように表示されます― ----------------------------------------------------------------- Merging parts from `file:' URIs, if any... Found 0 of the 1224 files required by the template Will not create image or temporary file - try again with different input files --13:38:08-- http://linux.csua.berkeley.edu/debian/pool/main/b/bind9/ lwresd_9.2.1-2.woody.1_i386.deb => `lwresd_9.2.1-2.woody.1_i386.deb' Resolving linux.csua.berkeley.edu... done. Connecting to linux.csua.berkeley.edu[128.32.247.238]:80... connected. HTTP request sent, awaiting response... 200 OK Length: 157,318 [application/x-debian-package] 30% [==========> ] 47,418 113.22K/s ETA 00:00 ... .template ファイルが見つかると(あるいはミラーサイトから取得すると)、jigdo-lite がハードディスクにパッケージを取り込み始めます。画面には大量のメッセージが流れていきますが、それが煩わしければ を参照してください。jigdo-lite がパッケージをダウンロードしている間に、コンソールを切り替えて(または xterm をもう一つ立ち上げて) jigdo-lite を実行したディレクトリで ls を実行してみてください。ディレクトリ上には 6 個のファイルがあるはずです― debian-30r0-i386-binary-1.iso.list debian-30r0-i386-binary-1.iso.tmp jigdo-file-cache.db tmp/ woody-i386-1.jigdo woody-i386-1.jigdo.unpacked woody-i386-1.template woody-i386-1.iso.tmp はすぐには現れません。このファイルは 一時的な保存用の ISO ファイルであり、ときどき書き込まれます。 jigdo-file-cache.db は Berekeley DB ファイルであり、Files to scan: 表示の後に指定したディレクトリから読み込まれたファイル全ての md5sum を保持しています。より詳細な説明については を参照してください。 tmp/ ディレクトリにはダウンロードした Debian のパッケージ群があります。例えば、この HOWTO を執筆する際に使った例では、次のファイルがあります― $ ls tmp/ alsa-headers-0.5_0.5.12a-2_all.deb tkdiff_3.08-3_all.deb alsa-utils-0.4_0.4.1-9.1_i386.deb xfonts-intl-chinese-big_1.2-2.1_all.deb gnuserv_3.12.4-3_i386.deb xmanpages-ja_4.1.0.20011224-1_all.deb pilot-link_0.9.5.0-8_i386.deb xscreensaver_3.34-3_i386.deb smpeg-plaympeg_0.4.4-8_i386.deb ときどき tmp/ ディレクトリの内容は消去されて、woody-i386-1.iso.tmp にファイルが追加されます。 ここではかなり処理時間がかかりますから、Quake III でもやりながら待っていてください(なるべく別のマシンでゲームをやった方がよいでしょう。jigdo では、ISO ファイルの構成中はかなりディスクアクセスが多くなります)。ある時点でダウンロードが終了し、次のような表示が出ます― FINISHED --13:32:58-- Downloaded: 7,469,872 bytes in 9 files Found 9 of the 9 files required by the template Successfully created `woody-i386-3.raw' ----------------------------------------------------------------- Finished! The fact that you got this far is a strong indication that `woody-i386-3.raw' was generated correctly. I will perform an additional, final check, which you can interrupt safely with Ctrl-C if you do not want to wait. OK: Checksums match, image is good! $ (日本語訳― 処理終了! この表示が出力されれば「 woody-i386-3.raw 」の作成は正常に終了し ています。続いて最終チェック処理を実行しますが、必要が無ければ Ctrl-Cで キャンセルしてください。 OK: チェックサムは一致し、イメージは正常に作成されています。) イメージファイルの更新 おそらく、読者は前のセクションを既に読んで指示通りに ISO ファイルを作成し、CD に焼いて、幸福感に浸っているのではありませんか?。しかし遠からず、パッケージには更新されるものが出始め、古い CD は地元の LUG のインストール大会で初心者に寄付することにして自分用には更新済みの CD を焼きたくなるでしょう。読者は「 jigdo の達人」への道を歩んでいるので、前のセクションのように細かい説明まで立ち入るつもりはありません。 まず手始めにアップデートしようとしているイメージファイル用の .jigdo ファイルと .template ファイルを再びダウンロードします。なぜ同じ名前のファイルを 2 度ダウンロードする必要があるか不審に思うかもしれませんが、理由はファイルが追加または削除されているかもしれませんし、そうでなくても更新されたパッケージやファイルのチェックサムは最初にイメージをダウンロードしたときの .jigdo ファイルや .template ファイルにリストされているものとは異なることになるからです。 この時点では旧バージョンの Debian CD を持っているか、または CD の旧バージョン ISO イメージがハードディスク上にあります。更新済みの ISO ファイルを入手する手順に進みましょう。CD を持っていれば、ドライブに挿入してマウントします― $ mount /cdrom あるいは、アップデートしたい ISO ファイルがあれば、loop デバイスとしてマウントします(この作業には root 権限が必要です)。私の場合は、たった今 Woody について数個のセキュリティアップデートの知らせを受け取ったので、Woody のイメージをアップデートします― # mount -o loop woody-i386-1.iso /mnt .jigdo ファイルを引数に指定して jigdo-lite を実行します。 $ jigdo-lite woody-i386-1.jigdo ----------------------------------------------------------------- Jigsaw Download "lite" Copyright 2001-2002 by Richard Atterer <jigdo@atterer.net> Loading settings from `/home/p/.jigdo-lite' ----------------------------------------------------------------- Images offered by `woody-i386-1.jigdo': 1: Debian GNU/Linux 3.0 r0 Woody - Official i386 Binary-1 CD (debian-30r0-i386-binary-1.iso) Further information about `debian-30r0-i386-binary-1.iso': Generated on Thu, 18 Jul 2002 14:34:12 +0100 ----------------------------------------------------------------- If you already have a previous version of the CD you are downloading, jigdo can re-use files on the old CD that are also present on the new image, and you do not need to download them again. You found the secret message; you're a very careful reader. Mount the old CD ROM and enter the path it is mounted under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want to start the download of any remaining files. You can also enter a single digit from the list below to select the respective entry for scanning: 1: /mnt Files to scan: (日本語訳― 以前のバージョンの CD があれば、jigdo は 新しいパッ ケージで更新されていない CD 上のファイルを再利用するので、再ダウ ンロードする必要はありません。秘密のメッセージに気付きましたね。 古い CD ROM をマウントしマウント位置のパス(例― /mnt/cdrom )を 指定してください。残りのファイル全てをダウンロードするのであれば、 単に Enter を押してください。スキャン対象を指定するのに下記リスト の先頭の数字を指定することもできます。) jigdo-lite を実行すると、CD をマウントした位置 (CD をアップデートするのであれば)か loop デバイスにマウントした ISO ファイルの位置 (ISO ファイルを使う場合)を要求しています。私の場合は /mnt に loop デバイスとしてマウントした ISO ファイルを使ったので /mnt を入力します。CD をアップデートする場合は CD をマウントしたディレクトリを指定してください、たいていは /cdrom にマウントされています。どちらの場合でも、jigdo-lite はマウントしたディレクトリをスキャンして、更新するファイルと更新の必要が無く再利用するファイルを決定していきます。画面には次のように表示されます― Files to scan: /mnt/other Not downloading .template file - `woody-i386-1.template' already present jigdo-file: Output file `debian-30r0-i386-binary-1.iso' already exists - delete it or use --force jigdo-file failed with code 3 - aborting. (日本語訳― .templateファイルをダウンロードできません― 'woody-i386-1.template' は既に存在しています、jigdo-file ― 出力 先の 'debian-30r0-i386-binary-1.iso' は既に存在しています― 削 除するか オプションの --force を指定してください。jigdo-file は コード 3 が原因で処理に失敗しました― 処理を中断します。) 何が起こったのでしょう。実は私が示したのは読者がいずれ遭遇する事態です。ISO ファイルをアップデートしようとしたのですが、旧バージョンのイメージファイルが、jigdo を実行したのと同じディレクトリにあります。jigdo-lite が woody-i386-1.iso というファイルを生成しようとしたところ既に同じ名前のファイル(旧バージョンのイメージ)がカレントディレクトリに存在しているので、jigdo-lite は旧バージョンのファイルを消去することができずに、処理を停止して古いファイルを削除するか --force を指定してやり直すように知らせてくれたのです。ファイル名を変更したりファイルを移動したりすることもできたでしょうが、きっと jigdo-lite は僕らが当然承知していると考えているのでしょう。  :-) loop デバイスにマウント済みであってもファイルを移動したり名前を変えたりするのに躊躇することはありません。ファイルシステムは hood の下で inodes を使用しており、ファイルを移動したり名前を変えても、inodes が同一性を保ちます。/mnt にマウントしたファイルシステムを傷つけるようなことは無いでしょう。ISO ファイルを削除する場合も同様にマウント済みファイルシステムを傷つける心配はありません。ファイルの inodes は inodes の参照カウントが 0 になったときのみ解除されます。ISO イメージをマウントすると参照カウントが増加します。従ってファイルが本当に削除されるのはファイルに対して rm コマンドを使い、同時に loop デバイスのマウントを解除した場合だけです。CD をアップデートしようとしている人は誰もそこまで心配する必要はありません。:-) ISO ファイルのファイル名を woody-i386-1.iso.old に変更して、jigdo-lite を再実行します。もう一度やってみてください― $ jigdo-lite woody-i386-1.jigdo ----------------------------------------------------------------- Jigsaw Download "lite" Copyright 2001-2002 by Richard Atterer <jigdo@atterer.net> Loading settings from `/home/p/.jigdo-lite' ----------------------------------------------------------------- Images offered by `woody-i386-1.jigdo': 1: Debian GNU/Linux 3.0 r0 Woody - Official i386 Binary-1 CD (debian-30r0-i386-binary-1.iso) Further information about `debian-30r0-i386-binary-1.iso': Generated on Thu, 18 Jul 2002 14:34:12 +0100 ----------------------------------------------------------------- If you already have a previous version of the image you are downloading, jigdo can re-use files on the old image that are also present on the new image, and you do not need to download them again. Mount the old CD ROM and enter the path it is mounted under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want to start the download of any remaining files. You can also enter a single digit from the list below to select the respective entry for scanning: 1: /mnt Files to scan: /mnt Not downloading .template file - `woody-i386-1.template' already present ... Found 1200 of the 1224 files required by the template ... (日本語訳― 以前のバージョンの CD があれば、jigdo は 新しいパッ ケージで更新されていない CD 上のファイルを再利用するので、再ダウ ンロードする必要はありません。古い CD ROM をマウントしマウント位 置のパス− (例― /mnt/cdrom ) を指定してください。残りのファイル全てを ダウンロードするのであれば、単に Enter を押してください。スキャン 対象を指定するのに下記リストの先頭の数字を指定することもできます。) jigdo-lite は、私が /mnt ディレクトリのスキャンを要求したことを記憶していて、1 を選んでディレクトリをスキャンするか、ディレクトリを再度入力するか聞いてきます。私はへそ曲がりなので、ディレクトリ名を再度入力しました。 画面上を高速に流れていった文字は省略しています。省略した文字の最初のものは jigdo-lite が今回スキャンしたファイルのリストです。2 番目の楕円形の印は woody-i386-1.iso.tmp の書き込みの進行状況を表します。jigdo-lite がファイルのスキャンと ISO ファイルの一時ファイルの書き込みを終えると画面表示は次のようになっています― Copied input files to temporary file `woody-i386-1.iso.tmp' - repeat command and supply more files to continue ----------------------------------------------------------------- If you already have a previous version of the image you are downloading, jigdo can re-use files on the old image that are also present on the new image, and you do not need to download them again. Mount the old CD ROM and enter the path it is mounted under (e.g. `/mnt/cdrom'). Alternatively, just press enter if you want to start the download of any remaining files. You can also enter a single digit from the list below to select the respective entry for scanning: 1: /mnt Files to scan: (日本語訳― 以前のバージョンの CD があれば、jigdo は 新しいパッ ケージで更新されていない CD 上のファイルを再利用するので、再ダウ ンロードする必要はありません。古い CD ROM をマウントしマウント位 置のパス(例― /mnt/cdrom )を指定してください。残りのファイル全て をダウンロードするのであれば、単に Enter を押してください。スキャ ン対象を指定するのに下記リストの先頭の数字を指定することもできます。) 通常は loop デバイスにマウントした ISO ファイル(または CD )以外にはスキャン対象のファイルは存在しないので、<ENTER> を押します。続いて jigdo-lite が使用するミラーサイトを入力するように要求してきます、ここでのやり方は最初に ISO イメージをダウンロードしたときの表示と同じです。ダウンロードするミラーサイトは既に指定済みですが、本当に思い出せないのであれば を読み返すと良いでしょう。 この時点で、jigdo-lite が魔法のように処理しているのが見えるでしょう。簡単ではないですか? よく寄せられる質問 先頭に日付をつけてある質問は、日付の時点でのみ存在する問題、言い換えれば一時的な状況に関する質問です。このような質問を見て、一時的な状況が変化していることを知った場合は、私に 連絡 をください。そうして頂けば私は質問を mini-HOWTO から削除します。 [2002年8月11日]: 同時に同じディレクトリ上で 2 個の jigdo-lite セッションを実行可能ですか? 現時点では不可です。セッションを 2 個同時に動かすと tmp/jigdo-file-cache.db ファイルを破壊します。この問題に対応する取り組みは進行中です。複数の jigdo-lite のセッションを同時に実行したい場合は、異なるディレクトリをワーク用ディレクトリとして使ってください。 [2002年8月11日]: LDP に翻訳版が存在しないのはなぜでしょうか? 非英語圏の LDP 編集者にこの HOWTO の翻訳版を提出するのにずっと苦労しています。 ドイツ語版 LDP 編集者の Marco Budde Budde@tu-harburg.de はドイツ語訳が Docbook 形式であり LinuxDoc でないからという理由で拒否しています。Docbook が LDP 向けの SGML 言語として推奨されているにも関わらず、です。 ポルトガル語版 LDP 編集者の Alfredo Carvalho ajpc@poli.org は私が提出するポルトガル語訳を完全に無視し続けています。 LDP 文書をドイツ語とポルトガル語に追加することに賛同していただけるのであれば、編集者達に手紙を書き、翻訳された文書をより責任を持って受け入れるように要請することを、強くお願いします。目下のところ上記 2 言語の訳は、私の個人ウェブサイト http://www.dirac.org/linux/debian/jigdo からダウンロード可能です。 wget はファイル毎に FTP サーバーへの接続をやり直すので、jigdo でのダウンロードにはちょっと長い時間がかかりますが、これを短縮する方法はありますか? FTP サーバーの代わりに HTTP を使えばダウンロードの速度は速くなります― FTP は小さなファイルを数多くダウンロードするのに適したプロトコルとはいえません。更に wget を最新のバージョンにアップグレードすると、継続的な HTTP 接続をサポートしているのでスピードの若干の上乗せが期待できます。 残念なことに継続的な HTTP 接続をもってしてもダウンロードの速度は単体の ISO ファイルをダウンロードする速度には及びません。ISO ファイル単体のダウンロードに匹敵するような速度が可能なのは、HTTP パイプライン手法のみです― jigdo の GUI アプリケーションが HTTP パイプライン手法をサポートする予定です。 proxy 越しに jigdo を使うにはどうすればよいでしょうか? これに関しては、http://debian.org/CD/jigdo-cd/ か、jigdo-lite のtarball に同梱されたREADME に詳述されています。 jigdo の処理が中断したときはどうすればよいですか? ダウンロード処理が中断したときにすべきことは、jigdo-lite を再実行して入力要求に対しては全部 <ENTER> を押すだけです。jigdo-lite は処理を中断した時点から再開します。 .jigdo ファイルが壊れているためダウンロードがうまくいきません。新しく修復済みの .jigdo ファイルをダウンロードするときには、データも全て再ダウンロードすべきでしょうか? ダウンロードした .jigdo ファイルが壊れていることはありえます。非常に稀なことですが、ターゲットが Debian testing や unstable のように安定していない場合には時々起こりえます。 .jigdo ファイルが壊れているのに気付いたなら(修復済みの .jigdo ファイルが公開された時点で)、新しいものを手に入れる必要がありますが、ISO データ全てを再ダウンロードする必要はありません 私達が ISO イメージをアップデートする際に使ったのと同じ loopback デバイスをマウントする手法を使えます。異なる点は、作業開始時点で完全な .iso ファイルが存在しないことですが、.iso.tmp ファイルも ISO イメージであり、そのファイルを使うことで、.jigdo ファイルが破損していたために jigdo-file が異常終了したときでも、初めからやり直すことなくダウンロードを完了可能です。単純に .iso.tmp ファイルを /mnt に loopback デバイスとしてマウントし、修正済みの .jigdo ファイルを指定して jigdo-lite を再実行し、/mnt をスキャンするように指定してください。.iso.tmp ファイルを削除するか名前を変えておくのを忘れないでください、そうしておけば jigdo-lite が新しい .iso.tmp ファイルを生成しようとしたときに障害になりません。 DVD 用のイメージをダウンロードするのに jigdo を使えますか? もちろんできますとも。手順は CD 用のイメージを作成するときと同じです。唯一異なるのは、.jigdo ファイルと .template ファイルをダウンロードするときに DVD 用のものをダウンロードする点です。DVD 用の .jigdo ファイルと .template ファイルは 次のサイトで見つけられます。 http://www.debian.org/CD/jigdo-cd/ DVD サイズのファイルを生成するには Linux 2.4 以降が必要なことに注意してください。Windows 環境では DVD サイズのファイルは mingw gcc ポートの C++ ライブラリが大容量のファイルをまだサポートしていないため生成できません。 <filename>.iso.tmp</filename> ファイルを CD に焼くことは可能ですか? まだ試したことはありませんが、できるはずです。たぶんファイルの中に 0 埋めされたものがあることに気付くでしょう。実際に試された方は、私のメールアドレス p@dirac.org に連絡して、どうなったか教えてください。 しかしもっと私が知りたいことは、「なぜあなたがそのようなことをしたいのか」、です。  :-) なぜ jigdo は動かないのでしょう。パッケージをいくつかダウンロードし削除したのですが、<filename>iso.tmp</filename> のサイズが変わっていないので、<filename>iso.tmp</filename> ファイルに書き込みにいっていないと思いますが? jigdo は正常に動作しています― .iso.tmp は実際に作られるサイズで最初に生成され、中身は最初の時点ではゼロバイトで埋められています。データダウンロード時に .iso.tmp ファイルの各部分がダウンロードデータで埋められます。 jigdo 実行時には進行状況が「 Found X of the Y files required by the template 」という形のメッセージで逐次表示されます。「 Y 」の値は減っていき、ゼロになった時点でダウンロード完了です。 jigdo-easy を使おうとしたらトラブルになりましたが? を参照してください。 Sarge や Sid をダウンロードしようとするとトラブルになりますが? Potato または Woody を使っているのであれば、jigdo-lite を 0.6.8 にアップグレードしてください。jigdo に加えられた変更のため、Woody (rev 0) に付属する jigdo では Sarge や Sid のイメージのダウンロードはできません。Sarge に付属するバージョンであれば問題ありません ()。 Sarge または Sid を利用しているのであれば、もっと情報が必要でしょう。debian-cd メーリングリストのアーカイブを検索してください、それでも問題が解決しなければ、メーリングリストに助けを求める投稿をしましょう ()。 jigdo-lite のメッセージはくどすぎますが、メッセージの一部または全部を表示しないようにするにはどうしたら良いでしょうか? jigdo-lite は wget を使用しており、また wget の 出力はかなり大量になる可能性もあります。もしこれを避けたければ、~/.jigdo-lite ファイルの中の wgetOpts--non-verbose を追加することで wget の出力を抑制できます。メッセージを全く出力しないようにするには wgetOpts--quiet を指定します。 Linux 以外のプラットホームで jigdo を利用できますか? もちろん使えます。Microsoft Windows や 古い SunOS 、HP-UX 及び IRIX 環境で Potato または Woody のイメージを生成するのであれば jigdo-easy を利用できます。 を参照してください。 Potato, Woody, Sarge または Sid を Microsoft Windows 環境でダウンロードするのであれば、jigdo-lite が移植済みであり、jigdo のメインサイトからダウンロード可能です () 。 補遺 jigdo-easy Anne Bezemer による jigdo-easy は jigdo-lite の派生品であり、Microsoft Windows, 古い SunOS, HP-UX や IRIX など多彩なシステムに移植可能です。操作性は jigdo-lite より優れていますが、jigdo に対して変更を加えているため Potato とWoody に対してしか使えません。jigdo-easy は Sarge と Sid はダウンロード不可能です。 を参照してください。 GUI インターフェース jigdo 向けの GTK+ インターフェースは目下作業中です。まだ完全に動作していませんが、そのうちに公開されるでしょう。Linux 向けだけでなく、Windows GUI クライアントも準備される予定です。 jigdo-file-cache.db jigdo-file-cache.db には、Files to scan: のプロンプト表示に対してディレクトリを入力する際に読み込まれるファイルの md5sum が格納されています。同じディレクトリを2度目にスキャンする際には、かなり高速にスキャンします。 この機能は次のような場合に有効です― rev0 から rev1 にアップデートの場合。rev1 の CD イメージでは、CD n から CD n+1 へ、あるいはその逆に移動したパッケージもあります。特に低速な接続(例えばモデム)を利用している場合、同じパッケージを再ダウンロードするのは避けようとするでしょう。このため CD n の新しいバージョンをダウンロードする際には、jigdo-lite が n-1, nn+1 の 3 枚の CD (100% 完全を期すのであれば 8 枚の CD 全て) をスキャンするようにするでしょう。 8 枚の CD 全てをアップデートする間に、jigdo-liteが同じ CD を繰り返しスキャンするようにする場合は、キャッシュの働きにより、CD から同じデータを何度も読み込まないようにします。 キャッシュの存在は、jigdo 用ファイルを生成する際に更に重要です、キャッシュがあるおかげで jigdo 用ファイルを生成するたびに 50GB にも及ぶ Debian ミラーサイトの全てを jigdo-file が読み込まずに済みます。 情報源 最後に jigdo ツールと動作について学ぶために役立つリンクとリファレンスを示します。 http://atterer.net/jigdo jigdo のホームサイトです。このサイトを必ず参照すべきです― 移植、GUI クライアントなど jigdo に関する全てについての大量の情報が公開されています。 http://cdimage.debian.org/~costar/jigdo jigdo-easy に 関する Debian のページ () http://www.debian.org/CD/jigdo-cd jigdo に関する Debian のメインページ http://packages.debian.org/testing/utils/jigdo-file.html Potato か Woody を使っているのであれば、jigdo-file をバージョン 0.6.8 にアップグレードしてください。0.6.8 は Sarge に付属しています。() http://lists.debian.org/search.html debian-cd メーリングリストの検索はこのページから行います。 http://www.debian.org/MailingLists/subscribe debian-cd メーリングリストへの参加に関するページ 日本語訳について 翻訳にあたって丁寧な査読をしてくださり、 適切な助言を頂いた JF メーリングリストの皆様、中野武雄さん、山下義之さん、 Debian-Doc の大原雄馬さんに感謝します。ありがとうございました。