f

2014-05-24

Install Evince from source

2.7.1.1 自動更新可能なPDF viewer

UbuntuPDFを見るときに重要だと思う機能が,PDF自動更新(auto reload/update)だ。例えば,以下のようなpdfを出力して結果を確認したいときに修正した内容をリアルタイムで確認できて便利だ。
  • Pythonmatplotlibモジュールを使ってグラフをpdfで出力するとき
  • LaTeXdvipdfmxにより文書をpdfでプレビューするとき


この機能がないと自分でファイルを開き直さないといけないのでかなり面倒だ。
私が知っている範囲では,以下のPDF viewerがこの機能を搭載している。
  • SumatraPDF
  • Evince
  • Xpdf

Windows環境ではSumatraPDFを使っていた。このソフトは動作が軽快であり,他のEvinceXpdfよりも高機能だった。SumatraPDFは基本的にはWindowsでしか動かない。しかし,Wineを使えばLinux上でも動作するとのことだ。
参考:Sumatra under Linux (PDF viewer) | Stephen Lorio http://lorio.net/sumatra-under-linux-pdf-viewer/


Xpdfはこれらの中では動作が最も軽快であったが,自動更新するに起動オプションが必要なようで,これを指定しなければ,rを押してファイルをリロードする必要があった。

EvincePDFに限らず多くの文書を開くことに対応している。デフォルトで自動更新にも対応している。また,ディストリビューションによっては標準でインストールされていたり,パッケージマネージャーで簡単にインストールできる。

このことからLinuxでは自動更新可能なPDFビューアとしてEvinceが最適だと考えている。しかし,Evinceを起動すると,以下のエラーメッセージが表示されて起動できない。
evince: error while loading shared libraries: libz.so.1: failed to map segment from shared object: Permission denied


evince: error while loading shared libraries: libevdocument3.so.4: failed to map segment from shared object: Permission denied


おそらく管理者権限の必要なライブラリを使おうとしているためだと思われる。しかし,原因がわからなかった。そこで,Evinceをソースコードからインストールすることでこの問題を解決する。

2.7.1.2 Install Evince

以下のサイトを参考にインストールしていく。


動作環境はUbuntu 14.04である。
必要なパッケージのインストール。
sudo aptitude install intltool gsettings-desktop-schemas-dev libglib2.0-dev gtk+-3.0-dev libgail-3-dev libsecret-1-dev libxml2-utils libnautilus-extension-dev gobject-introspection
libgirepository1.0-dev libpoppler-glib-dev


ファイルのダウンロード・コンパイル・インストール。
cd ~/local/src
./configure --prefix=${HOME}/local/stow/evince-3.12.1 --enable-introspection --disable-static
make &> make.log
make install
cd ~/local/stow


以上でインストールが完了した。端末から以下のコマンドを実行すると無事Evinceが起動した。
evince
なお,ローカルパッケージ管理にxstowを採用しており,~/local/xstowによりリンクを貼ってインストールしていることに注意していただきたい。

2.7.1.3 configure時のエラー対処

./configureの実行時に必要なパッケージがなくてエラーが出た。aptitudeでインストールしていったがパッケージ名がよくわからないものがいくつかあったので備忘録として参考情報をメモしておく。
なお,前節のインストール手順ではこの問題は解決済み(考慮してインストールしている)。
configure: error: glib-compile-schemas not found.


参考:gnome - How to get missing dependency for make empathy: glib-compile-schemas? - Ask Ubuntu http://askubuntu.com/questions/204643/how-to-get-missing-dependency-for-make-empathy-glib-compile-schemas


checking for gobject-introspection... configure: error: gobject-introspection-1.0 is not installed



参考:python - pygobject-2.28.6 won't configure: No package 'gobject-introspection-1.0' found, how do I resolve? - Stack Overflow http://stackoverflow.com/questions/18025730/pygobject-2-28-6-wont-configure-no-package-gobject-introspection-1-0-found

0 件のコメント:

コメントを投稿