Angstrom(unstable) + Debian/armel 5.0.2 lenny

  • ページ: 動作報告
  • 投稿者: 恐竜日和?
  • 状態: 成功
  • ptexliveバージョン:20090904
  • 投稿日: 2009-09-02 (水) 22:14:33

必要パッケージ

太字のものを apt-get install しました. 依存パッケージをはっきりさせておこうと 思い、つられてインストールされたものも(...)に明記しました. (debootstrap による rootfs 構築直後の状態で実行しました。)

build-essential (binutils bzip2 cpp cpp-4.3 dpkg-dev g++ g++-4.3 gcc gcc-4.3 libc6-dev libgmp3c2 libgomp1 libmpfr1ldbl libstdc++6-4.3-dev libtimedate-perl linux-libc-dev make patch perl perl-modules)

libxaw7-dev (libice-dev libice6 libpthread-stubs0 libpthread-stubs0-dev libsm-dev libsm6 libx11-6 libx11-data libx11-dev libxau-dev libxau6 libxaw7 libxcb-xlib0 libxcb-xlib0-dev libxcb1 libxcb1-dev libxdmcp-dev libxdmcp6 libxext-dev libxext6 libxmu-dev libxmu-headers libxmu6 libxpm-dev libxpm4 libxt-dev libxt6 x11-common x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xtrans-dev)

libtool (autotools-dev file libmagic1)

zlib1g-dev

libt1-dev (libt1-5)

libmotif-dev (libmotif3 libxp6)

x11proto-print-dev

bison (m4)

flex

libncurses5-dev

libpng12-dev (libpng12-0)

libgd2-xpm-dev (libgd2-xpm libfreetype6-dev (libfreetype6) libfontconfig1-dev (defoma fontconfig-config libexpat1 libexpat1-dev libfontconfig1 libglib2.0-0 libpcre3 pkg-config ttf-dejavu ttf-dejavu-core ttf-dejavu-extra ucf) libfontconfig1-dev (defoma fontconfig-config libexpat1 libexpat1-dev libfontconfig1 libglib2.0-0 libpcre3 pkg-config ttf-dejavu ttf-dejavu-core ttf-dejavu-extra ucf) libjpeg62-dev (libjpeg62) )

nkf

unzip

ptexlive.cfg

texlive のコンパイルのオプション

--with-system-ncurses --with-system-zlib --with-system-pnglib 
--with-system-gd  --with-system-t1lib --without-xetex --without-xindy

ptexlive.cfg

ISO-DIR=/media/cf/texlive2008-20080822-iso
conf_option --with-system-zlib 
conf_option --with-system-pnglib 
conf_option --with-system-gd 
conf_option --with-system-ncurses 
conf_option --with-system-t1lib
conf_option --with-system-freetype
conf_option --without-xindy
conf_option --without-xetex
conf_option --with-xdvi-x-toolkit=motif
KANJI_CODE=UTF8
set -x
LZMA="lzma -cd"
TMP_PREFIX=`pwd`/build20090814N

メッセージ

ここ最近、Linux、*BSD の ARM プロセッサ対応は、非常に充実したものになってきました。sharp の Linux Zaurus SL-C760 でも代替 OS として、Debian/armel が、Angstrom distribution の kernel と組み合わせて、動くのを知って、pTeXLive2008 にトライしてみました。なお、Angstrom distribution の助けを借りて(特にカーネル)Zaurus 上で Debian/armel は動いています。その意味で、「OS・バージョン」は「Angstrom(unstable) + Debian/armel lenny」としました.

結果ですが、コンパイル、テスト、インストール、すべてOK。ただし、xetex と xindy は コンパイル不能で、ギブアップ。(補注:xetex は、lenny の default の g++ 4.3 の (ARM-EABI 特有の) 不具合のようです。xindy は、TeXLive2008 の ソースディレクトリの utils/README にしたがって作業しましたが、ffcall のコンパイルが不可能で断念。Debian でも xindyffcallclisp の armel 版は存在しない。参考:Debian Wiki ArmEabiProblems )。 インストール後の環境で、texenv-checker を実行し、その中のテストも``正常''終了。(ただし、gs の埋め込み制御がらみの warning はでる。縦組みは、ipafont(ttf)+gs(8.62 or 8.64)+gv、xpdf で句読点等の表示が変。しかし、これは ptexlive の範囲外と看做して、ここでは目をつぶるということでよいでしょうか。)その意味で、「成功」としました。

作業工程は、以下の 4 段階:(注意!:以下のやり方は、時間と手間がかかり過ぎます。土村さんがよりシンプルな別の方法を見つけてくださいました。下の 追記 20090927(重要) に追記しました。

  1. 準備 TeXLive2008 iso の中身の調達
  2. TeXLive2008 のコンパイル
  3. TeXlive2008 のインストール
  4. pTeXlive のコンパイルとインストール

TeXLive2008 の iso image に同梱されているバイナリに、ARM 用のは、ありません。涙。なので、自前でコンパイルしなければなりませんでした。ここでの、ARM プロセッサの場合のように、iso image にバイナリが含まれていない環境でやってみようと思われる方の役に立つかもと思い詳しく書いてしまいました。 (長くなってしまいました、すみません) 以下、各項目毎の説明です。

1. TeXLive2008 iso の中身の調達 tl2008 のインストール (工程 3) にて、iso の中身を一寸いじる必要有。なので、別の linux 機にて、texlive2008-20080822.iso.lzma を解凍し、iso image の中身を ext3 にフォーマットした CompactFlash にまるごとコピー。その CompactFlash を zaurus の空いている CF-スロットに挿して、SD スロットの sdhc カード上に boot にしている debian から読めるようにしました。

2. TeXLive2008 のコンパイル 作業内容は、具体的には、以下の通り。なお、工程 1 で用意した CompactFlash は、/media/cf にマウントするものとし、tl2008 iso image の中身は、CompactFlash 内のディレクトリ texllive2008-20080822-iso/ 以下にあるものとします。

$ sudo mkdir /media/cf ; sudo mount -t ext3 /dev/hda1 /media/cf (工程 1 参照) 
$ sudo mkdir /media/cf/tl2008-build ; sudo chown 1000:1000 /media/cf/tl2008-build
$ cd /media/cf/tl2008-build
$ lzma -cd /media/cf/texlive2008-20080822-iso/texlive-20080816-source.tar.lzma | tar xf -
$ cd texlive-20080816-source/
$ ./Build --with-system-ncurses --with-system-zlib --with-system-pnglib \
--with-system-gd  --with-system-t1lib --without-xetex --without-xindy 
(補注:オプション多いので実際は bash スクリプトでやってます。)

3. TeXLive2008 のインストール 続いて、TeXLive2008 をインストールしました。pTeXLive2008 の Readme 通り、標準の「I」を選択しました。通常のインストールとの相違点は以下の 2 点でした。

  • install-tl の実行に「先んじて」工程 2 で生成された実行ファイル達を「手で」インストールしました。ソースツリーの inst/bin/armv5tel-unknown-linux-gnueabi/ 以下の、実行ファイル達(含 symlinks) を全て /usr/local/texlive/2008/bin/armv5tel-linux/ へコピー。その後、install-tl を実行しますが、install-tl 自身は、該当するものが無いので、実行ファイルをインストールしませんでした。が、バイナリ達は既に「先回り手インストール」済みなので、 (install-tl はまんまとだまされて)install-tl 内の do_postinst_stuff {...} の初期設定を実行してしまいます。(ここ。自信無しです。これで必要な初期設定がすべて正常になされていると看做してよいかどうか?結果的には、上記の通り、うまく動いてしまっているので多分OK?でしょうか。)

補注:このトリックは、NetBSD/i386 (やはり、iso image にバイナリ無) にて、TeXLive のビルド、インストールを成功させている Jukka Salmi 氏の手記 および、その元になった mailing-list での議論 tex-live:2007-June/014008, tex-live:2007-June/014034 の辺りの真似をしました。これらは、tl2007 版の話ですが、強引に真似したところ、tl2008 版でも通用してしまっている(よう)です。

  • ソースに同梱されている lzma をセルフコンパイル、インストール。そのうちの lzma と lzmadec を TeXLive2008 の iso image の tlpkg/installer/lzma/ に 「.armv5tel-linux」 を追加してコピー。(この作業をしないと、install-tl は lzmadec.armv5tel-linux が無いので、エラー終了してしまいました。)
$ sudo mkdir -p /usr/local/texlive/2008/bin/armv5tel-linux/
$ sudo cp -a /media/cf/tl2008-build/texlive-20080816-source/inst/bin/armv5tel-unknown-linux-gnueabi/* \
  /usr/local/texlive/2008/bin/armv5tel-linux
$ cd /media/cf/tl2008-build/texlive-20080816-source/utils/lzma
$ ./configure; make; make check
$ sudo make install
$ sudo cp -a /usr/local/bin/lzma /media/cf/texlive2008-20080822-iso/tlpkg/installer/lzma/lzma.armv5tel-linux
$ sudo cp -a /usr/local/bin/lzmadec /media/cf/texlive2008-20080822-iso/tlpkg/installer/lzma/lzmadec.armv5tel-linux
$ cd /media/cf/texlive2008-20080822-iso/
$ sudo install-tl -v -logfile LOGFILE

(修正:lzma と lzmadec のコピー先の path に 「tlpkg」が抜けていました(3箇所)。さらに unknwon -> unknown(2箇所)。 修正しました。20090927)

4. pTeXLive の build, install これは、Readme の通りです。

謝辞:しかし、手のひらの上でこれだけの巨大なソフトウエア群が実装できてしまうのには、感動を覚えます。ハードウエアまで含めて、多くの方々の努力があったからこそ、実現できたわけです。関連する皆様、ありがとう、ございました。

蛇足:Zaurus で Debian を動かすにはどうすればよいかについて、ほんの少々書こうかと思っていました 長くなってしまうので、止めにしました。自分で web page 作ってそちらに書くことにしました。出来上がったらリンク張ります。 自分の web page をつくりました。(20091012 追記)


追記 20090927(重要)

上に書いたやり方は、非常に手間と時間がかかります。(十数時間かかる バイナリのビルドを二回しなければならない。)下のコメント欄にある通り、土村さんがバイナリのビルドを一回で済ます方法を発見してくださいました:

一.TeXLive2008 iso の中身の調達 上述の 工程 1 と同じ作業をしました。

二.texmf/ texmf-dist/ tlpkg/ の手動インストール 工程 1 で用意した CompactFlash は、/media/cf にマウントするものとし、tl2008 iso image の中身は、CompactFlash 内のディレクトリ texllive2008-20080822-iso/ 以下にあるものとします。 下記の土村さんのコメント通り install-tl は使わずに、iso イメージ内の texmf/ texmf-dist/ tlpkg/ の 3 つのディレクトリを /usr/local/texlive/2008/ 以下にコピーしました。

$ sudo mkdir -p /usr/local/texlive/2008
$ sudo cp -a /media/cf/texllive2008-20080822-iso/texmf /usr/local/texlive/2008/
$ sudo cp -a /media/cf/texllive2008-20080822-iso/texmf-dist /usr/local/texlive/2008/
$ sudo cp -a /media/cf/texllive2008-20080822-iso/tlpkg /usr/local/texlive/2008/

三.pTeXLive の build, install Readme の通り。

とまったくシンプルになります。土村さん、ありがとうございました。


  • 「集い2009」の会場でお話いただいた方ですよね。丁寧に報告していただいてありがとうございます。TeX Live のバイナリは 2009 でも ARM は入ってないみたいですね。(c.f. http://tug.org/svn/texlive/trunk/Master/bin/ ) クロス環境でもなければ、辛いのでしょうねぇ、きっと。 会場でお話を聞いているときは勘違いしてしまってたのですが、TeX Live は正直にインストールしなくても、違う arch のものを放り込むだけでも大丈夫と思います(が、まだ試していません)。 需要がありそうなので、最低限必要なディレクトリを調べておきます。 -- 土村 2009-09-03 (木) 01:07:13
  • ふざけたハンドルで申し訳ありません^^;) 会場でご挨拶したものです。集い2009 とてもためになりました。 ありがとうございました。お疲れ様でした。 さて「コンパイル二度手間を如何に回避するか?」問題なのですが、実際私も上述の「成功」した 時の手順に到達する前に、試行錯誤で土村さんのご指摘の方式に近いものを試していました。 「先回りバイナリ手インストール抜き」で install-tl を実行し、 バイナリ抜きでも ``Welcome to TeX Live !'' 終了していました。 /usr/local/texlive/bin/ は無しだったと記憶しています。 ptexlive2008 のコンパイル作業に移り、make all0, make macro, make otf, make fonty までは、 うまくいっていた(様に見えて?)いたのですが、make test でエラー。 なお、初めの make all0 は nkf が必要なのを知らず、エラー終了。 nkf をインストールし、make macro をやりなおしています。(ここに原因有?) で、エラーなのですが、latex.ltx が見つけられないというエラーでした。 mktexlsr が install-tl 時点で実行されていないのが原因だったのでしょうか。 たしか、「手」で mktexlsr を実行したりしても、まだダメでした。 原因を探っていくと、TMP_PREFIX のバイナリの directory 内に本来あるはずの platex -> ptex の symlink 作られていませんでした。 この怪奇現象は何?。この時点で涙目...失敗と断定しました。 なお、その「失敗」時の log は、2>&1 | tee で採集してあります。 ご覧になりたいようでしたら、いつでも提示いたします。 余裕があれば、「先回りバイナリ手インストール抜き」方式を追試してみたいと思いますが... それよりも、やはりご指摘の(恐怖の^^;)クロスコンパイルに挑戦するのを先に したほうが、生産的かもしれませんね。 -- 恐竜日和 2009-09-03 (木) 23:47:04
    • 覚え易いハンドル名でいいですね。(^^) nkf は ptexlive に内蔵しているつもりなんですが..見直してみます。 -- 土村 2009-09-04 (金) 14:20:03
    • /usr/local/texlive/2008 の下に texmf/ texmf-dist/ tlpkg/ の3つのディレクトリだけがある状態で ptexlive の make に成功しました。 install-tl を使わない場合でも、この3つのディレクトリを手動でコピーしてやれば、大丈夫のように思います。 -- 土村 2009-09-04 (金) 14:11:56
    • 内蔵の nkf が動いてないことを確認しました。(^^;) 直しておきました。 -- 土村 2009-09-04 (金) 22:24:10
    • latex.ltx が見つけられない、のようなエラーは、私も開発当初、何度も見ました。原因はそんなに単純ではなくて、すぐに出てしまうエラーのように思います。 (make を途中から再開できるタイミングが、ptetex3 に比べて少なくなっている気がします。) こうなると platex -> ptex の symlink もなくなってしまいます。ログは、今回はせっかく見せていただいても、「make を一からやりなおせばうまくいきそう」という結論になってしまいそうです。m(_|_)m -- 土村 2009-09-04 (金) 22:40:51
  • 素晴らしいです。想定される難点まですべて切り分けてくださって、ありがとうございます。 三日の晩のコメントに一部誤りありました。釈迦に説法かもしれませんが、nkf でエラーがでたのは、make texmf でした。ので、実際には make all0 -> make texmf -> make macro -> ... と make texmf もやり直していました。 が、ご指摘の通り、make all0 からやり直せばよかったのですね。 早くて、明日の晩 pTL2008 の 土村さんの「簡略簡便方式」の (nightly) make all0 (or all3) が (懲りずに native で)走らせられそうです。いま、その準備しながらこれを書いています。 「install-tl の後半の do_postinst_stuff {...} の初期設定 (mktexlsr, updmap-sys, fmtutil-sys 等)が実行されている」ことが、 ptexlive2008 の make に本質的に必要かと、思い込んでいました。 それで、最終的に上述の報告の手順をとったわけなのですが、 思い込み違いだったようですね。 なお、ここでの「二度手間回避」へのご対応が、 土村さんの言われるところの「罠」に感じられるような気が...します。 ここらでご対応終了で、こちらは一向に差し支えありません。 ptexlive にとって重要な hack が多々お有りかと想像します。 時間はかかりますが、上の報告の必ず成功する道は手中にあるわけなので。 一晩目をつぶって、TL2008 のバイナリが手に入ってしまえば、後はそれを使いまわして ptexlive2008 を追っかけることができますので、Zaurus 代替 OS ユーザとしてはそれでいいのではとも思います。 しかも、Debian/armel/Zaurus は相当に変態的な環境ですし、Debian が version up してしまったら 不可能になってしまうかも知れない、そういう危うい環境ですし。 一部で話題の Pandora、NetWalker が手に入るよう日がきた時には、もはや...以下略) 以上、お手間おかけして、こちらこそ m(_|_)m デス。 -- 恐竜日和 2009-09-05 (土) 23:06:03
  • 大分、間が空いてしまいましたが、土村さん方式のテスト成功しました。追記しておきました。ありがどうございました。なお、動作報告4447 の chocolat さんと状況は肉薄しているようでそちらも参考になりました。chocolat さんありがとうございました。OpenBSD のリポジトリには、ARM 版の tl2008 のバイナリがあるんですね、すばらしいです。 -- 恐竜日和 2009-09-27 (日) 14:57:57
  • すみません。追記の部分のパスに 2008 が抜けていました。修正しておきました。なお、今回のテストは version 20090904 で行ったのでそこも修正しました。なお、xetex と xindy のあたりもリンクを付け足していますが、tl2007 の xetex と xindy の話です。あくまで参考まで、と考えるのが適当かと思います。なお、xetex は g++ の 4.2 か 4.4 ならばコンパイル可能という(ARM-EABI specific な)話もあるようですが、私はトライはしていません。 -- 恐竜日和 2009-09-27 (日) 18:23:24
  • またまた修正していただいてありがとうございます。 -- 土村 2009-10-05 (月) 13:47:50
  • 土村さん、ご返事ありがとうございます。文中で予告していた「自分の web page」へのリンクを追加しました。追記は本当にこれで終わりにします。しつこくなってしまって申し訳ありません。 -- 恐竜日和 2009-10-12 (月) 23:23:13


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-10-12 (月) 23:23:13 (5303d)