iso.lzma の読み取り

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

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/texlive2008-20080822.iso.lzma
(本当は1行に続けて書く)

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

md5sum texlive2008-20080822.iso.lzma

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

5c3079df8a48623f5aa10f0181a7ab03  texlive2008-20080822.iso.lzma

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

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

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

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

.lzma の展開

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

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

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

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

ISO の読み取り

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

  • 一度 DVD-R に焼いてしまいます。 説明するまでもないでしょう。Windows 機でも作業できます*1。 焼いた後に ISO を消してしまえば、もっともディスクスペースを節約できます。
  • ISO ファイルのままマウントします。 OS ごとに操作方法が異なりますし、root 権限が必要かもしれません。 ディスクスペースは ISO の分だけでよいですし、待ち時間がありませんので、ちょっと試すのには一番楽です。
    • Linux
      mount -o loop /tmp/texlive2008-20080822.iso /your/mountpoint
    • Solaris 10 (←動作報告/19
      lofiadm -a /tmp/texlive2008-20080822.iso
      mount -F hsfs -r /dev/lofi/1 /your/mountpoint
    • OpenBSD (←動作報告/44
      vnconfig svnd0 /tmp/texlive2008-20080822.iso
      mount -t cd9660 /dev/svnd0c /your/mountpoint
  • ファイルに展開します。 p7zip パッケージの "7z" コマンドで、中のファイルを取り出すことができます*2が、 やはりバージョンの制約があって、4.36(2006年4月頃)以降が必要です。 コマンド名にも注意が必要で、前述の "7za" ではダメです。

    展開にも時間がかかりますし、ディスクスペースも余分に必要です。 root 権限が不要というのが最大の利点かもしれません。

    "7z" コマンドは、入手に少々注意が必要です。 OS 付属のパッケージでは p7zip-plugins のような、 別パッケージに入っていることもあります。 ソースを取ってきた場合は "make" ではコンパイルしてくれず、 "make 7z" とか "make all2" を実行しなければなりません。

リンク


*1 Windows 機だと,専用の焼込み用ソフトウェアが必要です。いまは ImgBurn[extlink] という性能のよい無料ツールがあります。
*2 Q&A:53162でご教示いただきました。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-02-10 (水) 08:35:22 (2720d)