あくろばっとりぃだぁぁーー。
 最近、PDF と言う単語が良く飛び交います。PDF と言う拡張子が付いたファイルはアクロバットリーダと言うアドビの、Netscape のプラグインでブラウザ経由で見る事が可能ですね。まずはここをみてください。  →  http://www.westjr.co.jp/kou/p_craft/index.html
鉄道マニアが喜ぶ URL です;-)

 最近は PDF を提供するホームページが増えて来ました。もーーっ!!その度に MS/OS を使うのはいやだぁぁ。ってんで adobeのホームページを見に行くと、わおぉぉーーっ!! 各種 UNIX に対応しとるやんっっ!!と思う訳です。が・・。しかし・・。悲しいかな・・。FreeBSD 版は無いのでありました・・。

 がっ!!ふと考えて見るとっ!!

「FreeBSD って Linux のエミュレータ機能もっとるやんっ!!」

 ってな具合でっ!!さっそくトライしましょう(^^)V。まずば、Linux エミュレータの設定、続いてアクロバットリーダの設定に付いてお話ししますね。

1. まずは Linux エミュレータの設定
 今回、私は 2.2.2-RELEASE と 2.2.6-RELEASE に同じ方法でインストールしています。ここでは 2.2.6-RELEASE での内容をお話しします。また、FreeBSD ハンドブックにも Linux エミュレータに付いて書かれているのでそっちも参考にしてください。  →  1. Linux エミュレーション

 まずはじめに、/etc/rc.conf の以下の行を変更します。

----------------
linux_enable="YES"      # Linux emulation loaded at startup (or NO).
----------------
 多分 NO となっていると思うので、これを YES にしてマシンのリブートを行います。その後で、以下のコマンドを打って正しく反映されているか確認します。
----------------
roman# modstat
Type     Id Off Loadaddr Size Info     Rev Module Name
EXEC      0   4 f677e000 001c f6784010   1 linux_mod
----------------
 下の行がもし現れなかったら、コマンドラインで echo -n ' linux'; linux と打ちましょう。

 2.2.2-RELEASE ではカーネルに 「options LINUX」 と付けて reconfig する必要が有るかも知れません。2.2.6-RELEASE で 付けて reconfig するとエラーとなります(^^;;。

 さて、続いてパッケージをインストールします。一番簡単なのは、packages の下に行って、pkg_add linux* とすれば良いでしょう(^^;;。これで、/compat/linux に Linux 環境が完成します。ふぅぅ。ちょいと一休み。続いてアクロバットリーダをインストールしようっ!!以下私がインストールした Linux のパッケージです。

----------------
linux_devel-0.2
linux_kdump-1.0
linux_lib-2.4
linuxdoc-1.1
linuxgdb-4.16
----------------
2. アクロバットリーダの FreeBSD 化っ!!
 早速、adobeのホームページ から Linux 版のアクロバットリーダをダウンロードして来ましょう。そんでもって適当なディレクトリに展開します。
----------------
roman# mkdir  acroread
roman# mv acroread_linux_301.tar.gz acroread
roman# cd acroread
roman# tar xvzfp acroread_linux_301.tar.gz
roman# ./INSTALL
roman# 
----------------
 これで、/usr/local/Acrobat3 にインストールされると思います。ふぅぅ。で、すかさず実行っ!!ってな訳には行かないのです(^^;;。良く見てみると、/usr/local/Acrobat3/bin の下に acroread と言う実行ファイルがあるのでこれを実行してみますが・・。エラーになってしまいます。 file コマンドで見ると、Bourne shell script text の様です。うんうん。では FreeBSD で動く様に修正してみましょう。
----------------
roman# /usr/local/Acrobat3/bin > diff -c acroread acroread.ORG
*** acroread    Thu Apr 16 17:41:42 1998
--- acroread.ORG        Thu Apr 16 11:12:28 1998
***************
*** 205,214 ****
      ACRO_CONFIG=intelbsdi
      export ACRO_CONFIG
      ;;
-   FreeBSD)
-     ACRO_CONFIG=intelbsdi
-     export ACRO_CONFIG
-     ;;
    Linux)
      ACRO_CONFIG=intellinux
      export ACRO_CONFIG
--- 205,210 ----
----------------
 FreeBSD 版は無いけど、BSDI 版のロジックが入っている事が解ります。けど、バイナリは無いんだよなぁぁ(g_g)。と、言う事で上記はパッチリストですが、ファイルの変更後のファイルはここです。  →  acroread

 更に、intelbsdi と言うのが無いのでこれを用意する必要があります。

----------------
roman# cd /usr/local/Acrobat3/Reader
roman# ln -s intellinux intelbsdi
roman# 
----------------
さてさて、これで動く様になるはずです。が・・。/usr/local/Acrobat3/Reader/acroread を実行すると、/usr/local/Acrobat3/Reader/intelbsdi/bin/acroread で、ライブラリが無いよ。と、言われてしまいます・・。うーーん・・。困った・・。

3. エミュレータとアクロバットの連係っっ!!
 と、言う事で普通なら、ライブラリが無いと言われると ldd コマンドで確認します。では今回もそれにならってすかさず叩いてみましょう。

----------------
roman# cd /usr/local/Acrobat3/bin
roman# ./acroread
/usr/local/Acrobat3/Reader/intelbsdi/bin/acroread: can't load library 'libreadcore.so'
roman# cd /usr/local/Acrobat3/Reader/intelbsdi/bin
roman# ldd ./acroread
ldd: ./acroread: not a dynamic executable
roman#
----------------
 うーーんおかしいですねぇ・・。ダイナミックリンクされた実行形式ファイルでは無いのに、なぜライブラリが見付からないと出るのだろう?不思議だ・・。
 がっ!! 考えて見ればこれは Linux のバイナリだっ!! つー事はっ!! おーおーっ!! ちゃんとあったっ!! FreeBSD 上で動く Linux の版の ldd コマンドだぁぁっ!!。
----------------
roman# cd /compat/linux/etc
roman# ln -s ld.so.conf ld.so.config
roman# /compat/linux/sbin/ldconfig
roman# cd /usr/local/Acrobat3/Reader/intelbsdi/bin
roman# /compat/linux/usr/bin/ldd acroread
        libreadcore.so => not found
        libpfs.so => not found
        libagm.so => not found
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6.0
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6.0
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6.0
        libm.so.5 => /lib/libm.so.5.0.8
        libdl.so.1 => /lib/libdl.so.1.7.14
        libc.so.5 => /lib/libc.so.5.4.23
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6.0
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6.0
roman# 
----------------
 ふぅぅ。Linux 版の ldd コマンドを実行する前に、Linux 版の ldconfig を実行しましょう。その後初めて、Linux 版の ldd を実行する事が出来ました。ふぅぅ。
 その結果、三つのダイナミックリンクライブラリが無いと言われていますね。これが原因でした。ではその原因を取り除きましょう。Linux バイナリなのですから、当然 Linux のディレクトリにね(^^)。
----------------
roman# cd /compat/linux/lib
roman# ln -s /usr/local/Acrobat3/Reader/intellinux/lib/libagm.so.2.0 libagm.so
roman# ln -s /usr/local/Acrobat3/Reader/intellinux/lib/libpfs.so.2.5 libpfs.so
roman# ln -s /usr/local/Acrobat3/Reader/intellinux/lib/libreadcore.so.3.0 libreadcore.so
roman# 
----------------
 さささ。これで動く様になったはず。起動方法等は、acroread_linux_301.tar.gz に含まれている READ.TAR とか、INSTGUID.TXT を見てください。ぐへぐへぐへ(^^)V。

 あ、そうそう。ldconfig するとライブラリロードパスがボロボロになっちゃうんです。多分 ldconfig で復活出来ると思うのですが、私にはよく解りません・・(^^;;。ただ、リブートすれば確実に復活します(^^;;。

4. プラグインとして機能させよう!!
 さてさて、アクロバットリーダは単体で機能する様になりました。やっほーーっ!!。せっかくなので、プラグインとしても機能させたいですよね。/usr/local/Acrobat3/Browsers/netscape を起動させてください。

 私の環境では動かなかったので諦めました。また、Linux 上でどういう動きをするのかも解らないので全然知りません(^^;;。がっ!!せめて、Netscape のヘルパアプリケーションとして動作位は出来ます。設定しましょうっ!!(^^)。PDF のリンクをクリックするとちゃんと、acroread が起動されます。ふっふっふっ(^^)V。

----------------
Discription	PDFfile
Type		application/pdf	
suffix		pdf
Application	/usr/local/bin/acroread %s
----------------
 この設定で起動します。やったぁぁーーーっ!!\(^^)/ あ、そーそー。/usr/local/Acrobat3/bin/acroread を /usr/local/bin/acroread に symlink してくださいね(^^)。

 さささ、これで、また一つ FreeBSD の楽しみが増えましたね。今回はアクロバットを見る様にするのと、Linux エミュレータの環境構築を行ったので、今後はいろいろな Linux アプリを動かす事が出来そうですね。楽しみが三倍になりましたね。


Copyright (c) 1997-2004 takachan@running-dog.net All Rights Reserved.