iso.xz の読み取り

TeX Live 2009 は、DVD イメージが xz で圧縮して配られています。 この中のファイルを読み取るには、なかなか難易度の高い操作を要求されるので、ここで説明してみます。

DVD イメージの入手

国内の CTAN ミラーから入手しましょう。 http://www.dnsbalance.ring.gr.jp/pub/text/CTAN/systems/texlive/Images/ のファイルを

wget -c http://www.dnsbalance.ring.gr.jp
/pub/text/CTAN/systems/texlive/Images/texlive2009-20091107.iso.xz
(本当は1行に続けて書く)

のようにしてダウンロードします。 wget には、ダウンロード再開の -c (--continue) オプションを付けるのがコツです。そして

md5sum texlive2009-20091107.iso.xz

として、チェックサム検査を行います。以下の値が得られれば正常です。

9fb85d281118c327bc5d86ce992c0765

展開に必要なディスクスペース

.tar.gz 形式であれば、gzip の圧縮解除も tar のファイル展開も、どちらもストリーミングで行えますので、 ディスク上に必要なスペースは、展開後のファイルのサイズだけでよいことになります。

ところが .iso.xz となりますと、 .xz 部分は .gz や .bz2 と同じくストリーミングで展開することができるのでよいのですが、 .iso 部分ではファイルに展開しないといけないようです。 ということで、ディスク上にはどうしても .iso を保存するためのスペースが必要です。 更に展開後のファイルのスペースが必要かどうかは、.iso をどうやって読み取るかに依存します。

ちなみに TeX Live 2009 DVD の場合、.iso.xz が 1.4GB, .iso が 2.9GB, 展開したファイルは 3.0B ほどの大きさになります。 どんなに節約しても 1.4GB + 2.9GB = 4.3GB は必要ということです。 更に TeX Live 2009 をハードディスクにインストールすると、そこで 2.0GB ほどのスペースが必要なので、 典型的には 1.4GB + 2.9GB + 2.0GB = 6.3GB も必要です。 最近のハードディスク事情を鑑みれば、ものすごい要求というわけではありませんが、 少し古いマシンだと厳しいかもしれません。

.xz の展開

.xz の展開にはいくつかの方法があります。 ここで使うツールは、.iso.xz を展開するだけでなく、 ptexlive の内部でも利用するので、 PATH の通ったところに標準のコマンド名で仕込む必要があります。

  • "xzdec" というコマンドの実行形式[extlink] が TeX Live と共に配られてるので、これをダウンロードして、 ファイル名から ".i386-linux" のような拡張子?を消して、実行権限をつけて利用します。
    xzdec < texlive2009-20091107.iso.xz > texlive2009-20091107.iso

    Unix 文化で育った人だと、実行ファイルを取ってくるなんて、 ウィルス仕込まれてるんじゃないだろうな、と心配になるかもしれません。 そういう意味では、若干の危険をはらんでいます。

  • XZ Utils というプログラムを利用します。 "xz -cd" コマンドや "unxz", "xzcat" といったコマンドが使えるでしょう。 "gzip -cd", "gunzip", "zcat" とそれぞれ対応する動作をします。 上記の "xzdec" も実はこのプログラム群の一部です。
  • p7zip というパッケージの "7za" というコマンドで展開できます。 ("7z" コマンドでも大丈夫です。) p7zip は OS 付属パッケージに入ってるかもしれませんし、 自分でソースを取ってきてコンパイルしてもいいでしょうが、 バージョンは 9.04 (2009-06-07公開) 以降とかなり新しいものが必要です。 以下は古くてエラーとなった例で、 「フォーマットが新しすぎる」のようなメッセージがどこにも出てないのでご注意を。
    % 7za e texlive2009-20091107.iso.xz
    
    7-Zip (A) 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
    p7zip Version 4.65 (locale=ja_JP.eucJP,Utf16=on,HugeFiles=on,1 CPU)
    
    Processing archive: texlive2009-20091107.iso.xz
    
    Error: Can not open file as archive

ISO の読み取り

ISO の中のファイルを読むには、いくつかの方法があります。

  • 一度 DVD-R に焼いてしまいます。 説明するまでもないでしょう。Windows 機でも作業できます*1。 焼いた後に ISO を消してしまえば、もっともディスクスペースを節約できます。
  • ISO ファイルのままマウントします。 OS ごとに操作方法が異なりますし、root 権限が必要かもしれません。 ディスクスペースは ISO の分だけでよいです