OpenSolaris 2008.05

  • ページ: 動作報告
  • 投稿者: user_nf?
  • 状態: 小さな不具合
  • ptexliveバージョン:20080619
  • 投稿日: 2008-06-29 (日) 12:13:56

必要パッケージ

pkg install gcc-dev
pkg install FSWxorg-headers

pkg set-authority -O http://pkg.sunfreeware.com:9000 sunfreeware
pkg refresh
pkg install IPSFWxaw3d

ptexlive.cfg

ISO_DIR=/mnt
conf_option --with-xdvi-x-toolkit=xaw3d
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib

メッセージ

2008/06/28 メモ


   ptexlive ( ptexlive-20080619.tar.gz ) / OpenSolaris 2008.05 (x86) 

概要

OpenSolaris 2008.05 (x86) にて ptexlive の make、日本語 tex ファイルの platex, pxdvi, pdvips 処理と PS プリンタへの lpr 出力をしてみました。(システムの勉強になります。)

なお、OpenSolaris 2008.05 と Solaris 10 x86 2008/05 (free) は別のシステムです。

  http://www.sun.com/software/solaris/index.jsp
  http://sdc.sun.co.jp/solaris/index.html
  http://sdc.sun.co.jp/opensolaris/
  http://jp.sun.com/products/software/solaris/10/get.html

以下は前者へのインストールの試みです。後者については 動作報告/19 があります。

作業内容

1. OpenSolaris 2008.05 のインストール

  http://sdc.sun.co.jp/opensolaris/
  http://jp.opensolaris.org/

Live CD が正常に起動するとシステムのインストールは単純です。

ネットワークの設定は DHCP による自動設定になっています。固定アドレスの指定はネットワーク管理デーモン nwamd を停止して行ないます。

  http://sdc.sun.co.jp/opensolaris/docs/nwam.html

ネットワークの設定をしたのに接続が思わしくない場合は /etc/nsswitch.conf ファイルの hosts, ipnodes 項目に dns が書き込まれているかどうかを点検して下さい。

  passwd:     files
  group:      files
  hosts:      files dns
  ipnodes:    files dns
  networks:   files
  protocols:  files
  rpc:        files
  ethers:     files
  netmasks:   files
  bootparams: files
  publickey:  files   
     ....

2.開発環境の package を追加

OpenSolaris には gcc 関係のパッケージと sunstudio 関係のパッケージが用意されていますが、最初はどちらも未インストールの状態です。ネットワーク接続が完了していると、次のコマンド入力で簡単に gmake, gcc, autoconf, automake, flex 等が入ります。xorg の headers も補います。

  pkg install gcc-dev
  pkg install FSWxorg-headers

3.この先が問題

  x toolkit 関係 (Xaw, Xaw3d, motif, ... ) がみあたりません。
  LessTif, openmotif をインストールしてみましたが ptexlive の make で失敗しました。

どこかに原因はあるのでしょうが、とりあえずは動作さえすればよいということで、代案に切り替えて前進します。以下のように sun freeware (OpenSolaris 対応版) から Xaw3d を入れてみることにしました。

  http://www.sunfreeware.com/indiana.html

ここではつぎのコマンドでリポジトリの追加と IPSFWxaw3d パッケージのインストールをします。

  pkg set-authority -O http://pkg.sunfreeware.com:9000 sunfreeware
  pkg refresh
  pkg install IPSFWxaw3d

※ -O は オー です。pkg 設定に関連するファイルは /var/pkg/ の下をみて下さい。

4. ptexlive のインストール

  http://tutimura.ath.cx/ptexlive/

変更点

(1) texlive2007.iso ファイルを mount

  lofiadm -a /tmp/texlive2007-live-20070212.iso
  mount -F hsfs -r /dev/lofi/1 /mnt

(2) ptexlive.sample.en を ptexlive.cfg にコピーして必要箇所を変更する。

  ISO_DIR=/mnt
  conf_option --with-xdvi-x-toolkit=xaw3d
  # CPPFLAGS="-I/opt/sfw/include/X11/Xaw3d"
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib
  export LDFLAGS CPPFLAGS LD_LIBRARY_PATH

(3) CPPFLAGS を具体的に指定しても xdvi の make の際にどうしても /usr/include/X11/Xaw をみようとします。気が進まなかったのですが、ここでゴマカシのリンクを張りました。

  cd /usr/include/X11
  ln -s /opt/sfw/include/X11/Xaw3d Xaw3d
  ln -s Xaw3d Xaw

すなわち

  /usr/include/X11/Xaw3d -> /opt/sfw/include/X11/Xaw3d
  /usr/include/X11/Xaw -> /usr/include/X11/Xaw3d

とする。(本当は慎重な対処方法はどうすればよいでしょう。)

(4) コンパイル中に多少の警告が発生しますが、test の前までは make が進みます。しかし、テストの段階になるとつぎのエラーで停止します。

  finishing...
  `which bash` ./8test.sh
  ------------------------------------------------------------------------
  [reading]    ./ptexlive.cfg
  -----------------------------
  [latex] test
  -----------------------------
  [platex yoko] test
  -----------------------------
  [platex tate] test
  -----------------------------
  [UTF package] test
  Can't find the font file /usr/openwin/lib/locale/ja/X11/fonts/TT/hgmlsun.ttf
  Error: /undefinedfilename in findfont
     ... 中略  ...
  ESP Ghostscript 815.01: Unrecoverable error, exit code 1
  -----------------------------
  [-dNOKANJI] test
  Can't find the font file /usr/openwin/lib/locale/ja/X11/fonts/TT/hgmlsun.ttf
  Error: /undefinedfilename in findfont
     ... 中略  ...
  Current allocation mode is local
  Last OS error: 2
  Current file position is 267
  /var/tmp/ptexlive/bin/dvipdfmx dNOKANJI.dvi
  dNOKANJI.dvi -> dNOKANJI.pdf
  [1Can't find the font file /usr/openwin/lib/locale/ja/X11/fonts/TT/hgmlsun.ttf
  Error: /undefinedfilename in findfont
     ... 中略  ...
  Current allocation mode is local
  Last OS error: 2
  Current file position is 267
  ESP Ghostscript 815.01: Unrecoverable error, exit code 1
     ... 中略  ...
  ** ERROR ** pdf_ref_obj(): passed invalid object.
  Output file removed.
  make: *** [stage8] Error 1

(5) このシステムは Ghostscript の日本語化が不十分なのでしょうか。

OpenSolaris 2008.05 には少し古い gs が入っています。

  $ /usr/sfw/bin/gs -h
  ESP Ghostscript 8.15.1 (2005-09-22)
  Copyright (C) 2004 artofcode LLC, Benicia, CA.  All rights reserved.
  Usage: gs [switches] [file1.ps file2.ps ...]

調べてみると /usr/openwin -> /usr/X11 のリンクが張ってあります。

ディスク全体を検索しましたが hgmlsun.ttf ファイルはみつかりません。

gs がシステムフォント /usr/X11/lib/X11/fonts/TrueType/ipafont を使うようになっていないのがいけないのかと思って、/usr/share/ghostscript/8.15/lib/cidfmap の hgmlsun.ttf, hggbsun.ttf を ipam.ttf, ipag.ttf に変更してみました。しかし、それでも何故かエラー終了になります。

  
(多少の調整でこの gs が使えるとよいのですが、何か安直な対処方法はないでしょうか。)

(6) 基本的に OpenSolaris の package のみで片付ける方針でしたが、良い方法がみつかりません。時間が過ぎてしまい、仕方なく GPL Ghostscript 8.62 を入れましました。

ソースファイルをダウンロードして、 ./configure; make; make install を行なう。

  http://pages.cs.wisc.edu/~ghost/
  http://aist.ring.gr.jp/archives/text/CTAN/support/ghostscript/GPL/

新しい gs に PATH をとおす。 ( export PATH=/usr/local/bin:$PATH )

  $ gs -h
  GPL Ghostscript 8.62 (2008-02-29)
  Copyright (C) 2008 Artifex Software, Inc.  All rights reserved.
  Usage: gs [switches] [file1.ps file2.ps ...]

フォントの指定はお好み次第でしょう。例えば、 /usr/local/share/ghostscript/8.62/lib/cidfmap ファイルの中につぎを追加します。

  /IPAMincho << /FileType /TrueType 
  /Path (/usr/X11/lib/X11/fonts/TrueType/ipafont/ipam.ttf) 
  /SubfontID 0 /CSI [(Japan1) 6] >> ;
  /Ryumin-Light /IPAMincho ;
  /IPAGothic << /FileType /TrueType 
  /Path (/usr/X11/lib/X11/fonts/TrueType/ipafont/ipag.ttf) 
  /SubfontID 0 /CSI [(Japan1) 6] >> ;
  /GothicBBB-Medium /IPAGothic ;
  参考 (Adobe フォント資料): 
   http://www.adobe.com/devnet/font/
   http://partners.adobe.com/public/developer/ps/sdk/index_archive.html#fon

この設定を生かすためには、さらに GS_LIB=/usr/local/share/ghostscript/8.62/lib を与えなければなりませんでした。(もとの ghostscript 8.15 を残しているためかもしれません。)

  export GS_LIB=/usr/local/share/ghostscript/8.62/lib

かなり手間取りましたが、概ねこの様にして ptexlive のインストールを終わります。

  # make install
  `which bash` ./9realloc.sh install refresh
  ------------------------------------------------------------------------
  [reading]    ./ptexlive.cfg
  copying files '/var/tmp/ptexlive' -> '/usr/local/texlive' ...
  ------------------------------
 'ptexlive' was installed.
  for sh/bash user
  export PATH=/usr/local/texlive/bin:$PATH
  for csh/tcsh user
  setenv PATH /usr/local/texlive/bin:$PATH
  To uninstall
  make uninstall
  (or 'rm -rf /usr/local/texlive')
  ------------------------------
 finishing ...

(7) 最後に home ディレクトリの ~/.bashrc ファイルに

  export PATH=/usr/local/bin:/usr/local/texlive/bin:$PATH
  export MANPATH=/usr/local/share/man:/usr/local/texlive/man:$MANPATH
  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sfw/lib
  export GS_LIB=/usr/local/share/ghostscript/8.62/lib

を追加します。

platex, pxdvi, pdvips, lpr, dvipdfmx を確認して完了と思ったのですが、 dvipdfm と ps2pdf がエラーを出ます。

  $dvipdfm de1.dvi
  de1.dvi -> de1.pdf
  [1
  TFM file error (ec < bc)  
  
  Output file removed.
  $ps2pdf de1.ps
  Error: /invalidfileaccess in /findfont
  Operand stack:
  Operand stack:
     Fm   256   --nostringval--   --nostringval--   0   95.8621   Ryumin-Light-H
     ... 中略 ...
  Current allocation mode is local
  Current file position is 74181
  GPL Ghostscript 8.62: Unrecoverable error, exit code 1

もう少し Ghostscript の調整をしなければなりません。

ひととおりの見通しがついたら、新しい gs に PATH をとおした上で、再度 ptexlive の make と make install をするべきでしょう。

まとめ

今回使用した hardware は3年程前に販売されていたビジネス用の廉価パソコンです。

  HP Compaq Business Desktop dx2000 ST/CT
  インテル Pentium 4 プロセッサ 2.80A GHz (1MB L2キャッシュ、533MHz FSB)

  インテル 865GVチップセット

80GB の内臓 HDD に 20GB の solaris パーティションを確保しました。

  opensolaris のインストールが約60分、
  ghostscript の make が約10分、
  ptexlive の make が30分程度、
  ptexlive の make install は約10分です。
  その他にファイルのダウンロードと各種の調整に多くの時間がかかりました。

OpenSolaris 2008.05 は solaris x86 2008/05 (free) とは違います。少し触れてみると、 Solaris のような、 Linux のような、不思議な状態です。

単に TeX の処理環境を整えたいだけのユーザーにとっては、これでは手間がかかり過ぎるように思われます。 ptexlive のように簡単に片付くはずのインストールで、本当にこんなにいくつもの手間がかかるのであるならば、今の段階で一般のユーザーが無理をする必要はないでしょう。

開発者コミュニティの貢献により徐々に変更があるようですから、いずれは快適なシステム環境が整うことを期待して OpenSolaris のさらなる熟成を待つのがよいようです。

課題

1. TeX 関係の道具を追加、利用環境の向上

  emacs, YaTeX, gnuplot, maxima, xmaxima, TeXmacs, ...

2. 微調整

  (1) ゴマカシのリンクを減らす。
 (2) Xaw3d 以外はどうか ( LessTif, openmotif, gtk, ... )
 (3) ps2pdf の調整

3. 作業の簡素化、簡略化

  手続きを整理して一括処理用のスクリプトの形にまとめる。   

以上です。


  • 4. (3) は,ptexlive.cfg の conf_option --with-xdvi-x-toolkit=xaw3d を,(pxdvi でのボタンなどの) 3D 表示を犠牲にして conf_option --with-xdvi-x-toolkit=xaw にしたらいかがでしょうか? -- kuroky 2008-06-29 (日) 13:59:13
    • 原因が同じかわかりませんが,今日 Cygwin 上で ptetex をコンパイルしたところ,xaw3d 指定では失敗し,xaw では成功しました.(xaw3d 指定時のエラーログの最後が
      /usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lXaw3d
      collect2: ld returned 1 exit status
      make[4]: *** [xdvi-xaw3d] エラー 1
      # 後略 7 行
      となっています.) -- kuroky 2008-06-29 (日) 21:19:15
  • 4. (7) 日本語の入った文書の DVI -> PDF 変換には dvipdfm は使わず,dvipdfmx を使います.例示が typo なだけでしょうか? -- kuroky 2008-06-29 (日) 14:30:47
  • Ghostscript の準備は,システムの印刷系統との兼ね合いがありますので,普遍的な TeX ディストリビューションが担う分野としては勇み足といった感があります (cf. ptetexWiki:Ghostscript).ESP Ghostscript 8.15.1 で日本語処理をまともにするには相当な慣れが必要と思われます (不可能かもしれません).GPL Ghostscript 8.62 は比較的まともに日本語処理ができるらしいという評判です (gs ではうまくいって,ps2pdf ではエラーが起こることもたびたびあります.解決策があれば教えていただきたいです). -- kuroky 2008-06-29 (日) 14:37:07
  • 4.(2) で CPPFLAGS がコメントになっていますが、わざとでしょうか。(3) でうまくいかないのでコメントにされた? (4) の "make test" では gs の整備不良にひっかかっているように思います。-- 土村 2008-06-30 (月) 00:49:53
  • 状況を説明します。- 4.(2) で CPPFLAGS のコメントは土村さんのご指摘のとおりです。はじめはつけていたのですが、リンクを追加したあとでコメントにしました。- 4.(3) で Xaw3d を使った理由: もとのシステムに Xaw の header ファイルがなかったからです。不足が多いシステムですが、新しい Solaris の整備の方向を知らないために、あまり追加をしないで片付ける方針をとっています。とりあえず sun freeware に Xaw3d の package があったので入れてみました。それでも /usr/include/X11/Xaw がなければ不都合ですし、また Xaw3d の include ファイルが Xaw のinclude と同等にみえたので、リンクをしてみたら make がとおりました。conf_option --with-xdvi-x-toolkit=xaw は Xaw の lib も必要です。あまり加工をして収拾がつかなくなるのは考えものです。リンクを張るに conf_option --with-xdvi-x-toolkit=gtk を試したのですが、やはり Xaw がないといわれました。- 4.(6)(7) GPL Ghostscript 8.6 の ps2pdf は ./configure --disable-compile-inits で解決するという情報があります。これは http://pages.cs.wisc.edu/~ghost/doc/GPL/gpl856.htm での仕様変更に起因するようですが、今回は改善はされませんでした。単に ./configure のみの場合も GS_LIB を指定しましたので問題は別にあるはずです。また、set COMPILE_INITS=0 を試しても変化はありませんでした。開発段階の OS ですから、不都合な部分があっても仕方がないと思います。 -- user_nf 2008-06-30 (月) 11:31:47
    • xaw3d があるシステムには xaw は当然あるものだと考えていましたがそうではないようですね. -- kuroky 2008-06-30 (月) 23:29:54
  • GPL Ghostscript 8.6 にて、つぎのようになっています。--- The .ps library files and Resources tree are now compiled into Ghostscript by default. This means -Ilib is no longer needed when running gs uninstalled. Run './configure --disable-compile-inits' or set COMPILE_INITS=0 in the makefile to recover the old behaviour. The library files are still installed for reference.-- ipafont を新しくしたら ps2pdf が 正常 に処理されるようになりました。 -- user_nf 2008-06-30 (月) 17:47:08
  • 追記2~ 正確な答えは GS Install.htm の 3.1-Fonts のとおりです。参照フォントを /usr/local/share/ghostscript/fonts/ の下に置くか、あるいは GS_FONTPATH で教えなければなりません。実際、このディレクトリの下で ln - /usr/X11/lib/X11/fonts/TrueType/ipafont ipafontとして cidfmap に /Path (/usr/local/share/ghostscript/fonts/ipafont/ipam.ttf) を書き込んだ場合は正常です。または、GS_FONTPATH=/usr/X11/lib/X11/fonts として cidfmap に /Path (/usr/X11/lib/X11/fonts/TrueType/ipafont/ipag.ttf) 書き込んだ場合も正常に処理されます。そして、更新をする前の元の ipafont に戻してもこの設定で処理されました。省略をしすぎたのがいけなかったようです。 -- user_nf 2008-06-30 (月) 18:53:55
  • Ghostscript の日本語対応がうまくいっていないことの原因を,OS の開発者に押し付けようとするのは感心しません../configure --disable-compile-inits は lib 中の .ps ファイルをコンパイル後にも参照するためには必要です.ただ,OS の開発者が --disable-compile-inits を付けないでコンパイルしたことをこういう場所で表明するだけなのはずるいと思います.必要性を開発者にきちんと説明してあげてください.(その後の追記によればシンボリックリンクと cidfmap の設定でうまくいったようですね.システムにいくつか Ghostscript が入っているので他で再現するか不安なところはありますが,ほかのユーザが試みるには十分有益な情報だと思います.どうもありがとうございます.) -- kuroky 2008-06-30 (月) 23:20:55
  • 私もしかられてしまっている気がしますが、ghostscript はどの場面で呼び出されているのかわかりにくいので、素人が生半可に触るのは危険だとは思います。 -- 土村 2008-07-01 (火) 19:57:15
  • 「ghostscript はどの場面で呼び出されているのかわかりにくい」ですね,同感です.フォントにリンクが張ってあったりすると,dvipdfmx に響きますし,画像が入っていれば dvipdfmx 中で呼ばれますし,あとは epstopdf とか xdvi とかもろもろですね. -- kuroky 2008-07-03 (木) 22:30:17
  • 山口県宇部市大字西岐波6563番地1 090-1685-7609 大変詳しく ありがとうございます。 今 CDを 持っているのですが oswo他の server に インストール する方法も -- 今城 明夫 2012-03-11 (日) 08:08:23


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-03-11 (日) 08:08:23 (4428d)