どぅーちゅいむーにー

これ、Twitterでよくね?という日々の記録かも

Ubuntu 10.10 に OpenSlide 環境構築(前編)

CentOS 4.5/5.4 で挫折した OpenSlide環境構築ですが、OpenSlide の環境を構築するという目的を優先するために(言い訳)、Ubuntu にインストールしていきたいと思います。


前編は、OpenSlide で必要とされる OpenSlide 以外のものをインストールするまで、にしたいと思います(途中で長くなりそうだったから、っていうのがホントのところ)。設定とOpenSlide のインストールについては次のエントリにて。


Ubuntu のインストール用ISOイメージをダウンロード中、Firefox が何度かフリーズ状態(Flash Player のデバッグ版が死亡)になったので途中何度もキレそうになったのは内緒です。


さて、気を取り直して。
OpenSlide のインストール方法(日本語)には、Ubuntu にて apt-get を使ったインストール方法が書かれています。引用させていただくと、以下の通り。

% sudo apt-get install perl
% sudo apt-get install apache2
% sudo apt-get install openoffice
% sudo apt-get install xpdf
% sudo apt-get install swftools
% sudo apt-get install unoconv

はい、先日ハマった swftools のインストールとか、unoconv がどうこうとか、何だったんでしょうねぇ〜。
そんなところは気にしないでおきます。

  • perl のインストール

Perl のほうは、apt-get で特にインストールされませんでした。
Ubuntu のほう、まだよくわかっていないのですが、おそらく、インストールパッケージに含まれていたんでしょう。

  • apache2 のインストール


$ sudo apt-get install apache2
[sudo] password for issei:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1 libaprutil1
libaprutil1-dbd-sqlite3 libaprutil1-ldap
提案パッケージ:
apache2-doc apache2-suexec apache2-suexec-custom
以下のパッケージが新たにインストールされます:
apache2 apache2-mpm-worker apache2-utils apache2.2-bin apache2.2-common libapr1
libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap
アップグレード: 0 個、新規インストール: 9 個、削除: 0 個、保留: 94 個。
3,287kB のアーカイブを取得する必要があります。
この操作後に追加で 10.1MB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ maverick/main libapr1 i386 1.4.2-3ubuntu1 [83.0kB]
・・・(ざっくり省略)・・・
Enabling module authz_host.
Enabling module reqtimeout.
apache2-mpm-worker (2.2.16-1ubuntu3.1) を設定しています ...
* Starting web server apache2
...done.
apache2 (2.2.16-1ubuntu3.1) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
$ ps aux | grep apache
root 1236 0.0 0.5 5468 2564 ? Ss 13:44 0:00 /usr/sbin/apache2 -k start
www-data 1239 0.0 0.3 5240 1756 ? S 13:44 0:00 /usr/sbin/apache2 -k start
www-data 1240 0.0 0.3 227008 2012 ? Sl 13:44 0:00 /usr/sbin/apache2 -k start
www-data 1241 0.0 0.3 226872 2016 ? Sl 13:44 0:00 /usr/sbin/apache2 -k start
ちゃんと起動しているようです。
apache のインストールでこけたら泣いてしまいます。


$ sudo apt-get install openoffice
[sudo] password for issei:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ openoffice が見つかりません
なんとまぁ、環境が変わると何かがうまくいきません。
今のところ、Cent OS 4.5 のほうが、何事もなく進めたステップ数では多いかも・・・
環境が変わるたびに1つずつ手前でつまづく感じ。


とりあえず、wget で取得します。URL に関しては、最新のものをダウンロード、っていう感じです。

% wget http://download.services.openoffice.org/files/localized
/ja/3.3.0/OOo_3.3.0_Linux_x86_install-deb_ja.tar.gz
こちらも、OpenOffice の Linux 向けインストールの説明ページを参考にインストールします。

% tar xfz OOo_3.3.0_Linux_x86_install-deb_ja.tar.gz
% ls
OOO330_m20_native_packed-1_ja.9567 OOo_3.3.0_Linux_x86_install-deb_ja.tar.gz
% cd OOO330_m20_native_packed-1_ja.9567/
ls
DEBS licenses readmes update
% cd DEBS/
インストール方法には RPM のときと同じく、GnomeKDE か、いらないほうを削除できると書いていますが、今回構築する環境にGUI環境をインストールしたかどうかがよくわかっていません。
dpkg -l | grep -i kde とかしてみて、kde はひっかからないので、KDE のほうは削除することにしました。

% ls *kde*
ooobasis3.3-kde-integration_3.3.0-20_i386.deb
% rm ooobasis3.3-kde-integration_3.3.0-20_i386.deb
% ls *kde*
ls: *kde*にアクセスできません: そのようなファイルやディレクトリはありません
んで、インストール

% sudo dpkg -i *.deb
未選択パッケージ ooobasis3.3-base を選択しています。
(データベースを読み込んでいます ... 現在 45207 個のファイルとディレクトリがインストールされています。)
・・・(ざっくり省略)・・・
openoffice.org3-math (3.3.0-20) を設定しています ...
openoffice.org3-writer (3.3.0-20) を設定しています ...
%
dpkg でインストールすると、依存関係は解決されないらしいので、apt-get -f install で修復。

% sudo apt-get -f install
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 94 個。
%
意外に大丈夫でした。

  • xpdf

さて。次は xpdf です。これは CentOS のときは後回しにしたので、初めてのインストールとなります。


% sudo apt-get install xpdf
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
gsfonts-x11 lesstif2 libice6 libsm6 libt1-5 libxp6 libxpm4 libxt6 xpdf-common
xpdf-reader
以下のパッケージが新たにインストールされます:
gsfonts-x11 lesstif2 libice6 libsm6 libt1-5 libxp6 libxpm4 libxt6 xpdf xpdf-common
xpdf-reader
アップグレード: 0 個、新規インストール: 11 個、削除: 0 個、保留: 94 個。
1,697kB のアーカイブを取得する必要があります。
この操作後に追加で 4,567kB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ maverick/main gsfonts-x11 all 0.21 [10.5kB]
・・・(省略)・・・
xpdf (3.02-9ubuntu1.1) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
%
何事もなくインストール完了。

さて。いよいよ残すは問題児?が2つ。
予想としては、swftools より、次の unoconv が鬼門になると思っていたり。


% sudo apt-get install swftools
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ swftools が見つかりません
でました・・・。
またビルドですか・・・
そんなわけで、しょうがないのでビルドしようと思ったわけですが

% ./configure
checking build system type... Invalid configuration `i686-pc-linux-oldld': machine `i686-pc-linux' not recognized
configure: error: /bin/bash ./config.sub i686-pc-linux-oldld failed
どんどん退化していく・・・
しょうがないので、Google 先生に ubuntu swftools について聞いてみたところ、あるお方のブログを紹介されました。そろそろ疲れもピークなので、そこに書いてあった apt-get をあまり何も考えずに実行してみました。

% sudo apt-get install libfreetype6-dev libgif-dev libjpeg62-dev libt1-5 zlib1g-dev libavifile-0.7-dev libart-2.0-dev
・・・(略)
以下のパッケージが新たにインストールされます:
binutils gcc gcc-4.4 libart-2.0-2 libart-2.0-dev libasound2 libavcodec52 libavformat52
libavifile-0.7-dev libavifile-0.7c2 libavutil50 libc-dev-bin libc6-dev
libfreetype6-dev libgif-dev libgif4 libgomp1 libgsm1 libjpeg62-dev libogg0
liborc-0.4-0 libpython2.6 libschroedinger-1.0-0 libsdl1.2debian libsdl1.2debian-alsa
libspeex1 libtheora0 libva1 libvorbis0a libvorbisenc2 libvpx0 libxft2 libxi6
libxinerama1 libxxf86dga1 libxxf86vm1 linux-libc-dev manpages-dev pkg-config
zlib1g-dev
以下のパッケージはアップグレードされます:
libc-bin libc6 libfreetype6
アップグレード: 3 個、新規インストール: 40 個、削除: 0 個、保留: 91 個。
28.3MB のアーカイブを取得する必要があります。
この操作後に追加で 68.8MB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ maverick-updates/main libc-bin i386 2.12.1-0ubuntu10.2 [739kB]
・・・(ざっくり省略)・・・
libjpeg62-dev (6b-16.1) を設定しています ...
manpages-dev (3.24-1ubuntu1) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
特に問題はなかったようだ。
続いて、./configure の再実行。

% ./configure
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for gcc... gcc
・・・(ざっくり省略)・・・
config.status: WARNING: 'Makefile.common.in' seems to ignore the --datarootdir setting
config.status: creating Makefile
config.status: creating lib/Makefile
config.status: creating lib/action/Makefile
config.status: creating src/Makefile
config.status: creating lib/pdf/Makefile
config.status: creating swfs/Makefile
config.status: creating lib/readers/Makefile
config.status: creating config.h
なんか1つだけ WARNING でてるなぁ、とか思いながら、Cent OS 5.4 では make ができなかったので、とりあえず make コマンドをうってみる。が、g++ がみつからん、ということで、sudo apt-get install g++ を実行してから、再度 make を実行。

% make
・・・(ざっくりと省略)・・・
Calling ./simple_viewer to create simple_viewer.swf
./keyboard_viewer || true
Calling ./PreLoaderTemplate to create PreLoaderTemplate.swf
./PreLoaderTemplate || true
make[1]: ディレクトリ `/home/issei/tmp/openslide/swftools-0.9.1/swfs' から出ます
make[1]: ディレクトリ `/home/issei/tmp/openslide/swftools-0.9.1' に入ります
make[1]: ディレクトリ `/home/issei/tmp/openslide/swftools-0.9.1' から出ます
% su -
Password:
# cd /path/to/dir/
# make install
・・・
# ls -l /usr/local/bin
合計 9788
・・・
-rwxr-xr-x 1 root root 812559 2011-02-04 14:41 swfrender
-rwxr-xr-x 1 root root 662539 2011-02-04 14:41 as3compile
-rwxr-xr-x 1 root root 3137944 2011-02-04 14:41 pdf2swf
# pdf2swf --version
pdf2swf - part of swftools 0.9.1
うまくいった模様。ほんとかなぁ?

  • unoconv

さて。最後の1つとなりました。


% sudo apt-get install unoconv
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
・・・(ざっくり省略)・・・
以下のパッケージが新たにインストールされます:
ca-certificates-java default-jre default-jre-headless dictionaries-common fontconfig
hicolor-icon-theme hunspell-en-us icedtea-6-jre-cacao java-common
libaccess-bridge-java libaccess-bridge-java-jni libatk1.0-0 libatk1.0-data libdatrie1
libflac8 libgdk-pixbuf2.0-0 libgraphite3 libgstreamer-plugins-base0.10-0
libgstreamer0.10-0 libgtk2.0-0 libgtk2.0-bin libgtk2.0-common libhunspell-1.2-0
libhyphen0 libicu42 libjasper1 libneon27-gnutls libnspr4-0d libnss3-1d libpango1.0-0
libpango1.0-common libpulse0 libraptor1 librasqal2 librdf0 libsndfile1
libstlport4.6ldbl libthai-data libthai0 libx11-xcb1 libxaw7 libxcb-atom1
libxcomposite1 libxcursor1 libxdamage1 libxfixes3 libxmu6 libxrandr2 libxslt1.1
libxtst6 openjdk-6-jre openjdk-6-jre-headless openjdk-6-jre-lib openoffice.org-common
openoffice.org-core openoffice.org-java-common openoffice.org-style-galaxy python-uno
shared-mime-info ttf-dejavu-extra ttf-opensymbol tzdata-java uno-libs3 unoconv ure
xfonts-mathml
以下のパッケージはアップグレードされます:
tzdata
アップグレード: 1 個、新規インストール: 66 個、削除: 0 個、保留: 90 個。
115MB のアーカイブを取得する必要があります。
この操作後に追加で 344MB のディスク容量が消費されます。
続行しますか [Y/n]?
なんかありすぎじゃね?とか思いつつ、後には引けないので、Y で続行。

(つづき)
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ maverick/main libstlport4.6ldbl i386 4.6.2-7 [277kB]
・・・(ざっくり省略)・・・
unoconv (0.3-6) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
% which unoconv
/usr/bin/unoconv
% unoconv --version
unoconv 0.3
Written by Dag Wieers
Homepage at http://dag.wieers.com/home-made/unoconv/

platform posix/linux2
python 2.6.6 (r266:84292, Sep 15 2010, 15:52:39)
[GCC 4.4.5]

build revision $Rev$

おー、できたっぽい?


先人のみなさまには、心より感謝いたします。


というわけで、前編はこれにて終了・・・といきたかったのですが、後編をまとめている途中、OpenSlide のトップ画面は表示されたが、ファイルをアップロードしても「スライドが見つかりません」という画面しか表示されない状況となってしまいました。
注意:以下、ubuntu-desktop をインストールしたあとなら特に問題ないかもしれません(Ubuntu環境編)。
どうしてだろう???とソースコードを追ってみたところ、アップロードファイルを PDF に変換している(と思われる、というだけで正しいかは不明)ところで、

system "xvfb-run /var/www/openslide/unoconv.sh $upfile 2>&1 > /dev/null":
という記述を発見。
xvfb って何ぞや?と思い、which で探してみるも、見つからず。
というわけで、apt-get install xvfb をしてみる。
※xvfb-run コマンドが見つかる環境では、以下の作業は不要と思われます。

※または sudo で実行してね。
# apt-get install xvfb
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
libgl1-mesa-dri libxkbfile1 x11-xkb-utils xfonts-base xserver-common
提案パッケージ:
libglide3 xfs xserver
以下のパッケージが新たにインストールされます:
libgl1-mesa-dri libxkbfile1 x11-xkb-utils xfonts-base xserver-common xvfb
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 90 個。
10.5MB のアーカイブを取得する必要があります。
この操作後に追加で 53.9MB のディスク容量が消費されます。
続行しますか [Y/n]? Y
取得:1 http://jp.archive.ubuntu.com/ubuntu/ maverick/main libxkbfile1 i386 1:1.0.6-2 [75.1kB]
・・・(略)・・・
ldconfig deferred processing now taking place
root@issei2:~# which xvfb-run
/usr/bin/xvfb-run
インストールできたようだ。