5. イメージファイルの更新

おそらく、読者は前のセクションを既に読んで指示通りに 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 イメージをダウンロードしたときの表示と同じです。ダウンロードするミラーサイトは既に指定済みですが、本当に思い出せないのであれば Section 4.4 を読み返すと良いでしょう。

この時点で、jigdo-lite が魔法のように処理しているのが見えるでしょう。簡単ではないですか?