私はMuPDF
の速度とZathura
のUIが好きです
幸運にも Zathuraのmupdf-backend があります。
残念ながら、リポジトリにはありません- instructions に続くビルドはエラーで失敗しました:
Makefile:25: *** "The minimum required version of zathura is 0.2.0".
私がインストールしたバージョンはzathura 0.3.5
ですが
Ubuntu(16.04)にプラグインをインストールするにはどうすればよいですか?
このプラグインはまだDebianリポジトリに含まれていないため、自分でパッケージ化することにしました。
zathura-pdf-mupdf
パッケージをLaunchpad PPAにアップロードしました ppa:spvkgn/zathura-mupdf 、16.04、16.10、17.04、および17.10 Ubuntuシリーズのパッケージが含まれています。最新のMuPDF
1.11バージョンからライブラリに対してコンパイルされたプラグイン。
このパッケージで問題が発生した場合は、お気軽にお知らせください。
私がインストールしたバージョンはzathura 0.3.5ですが
これは、zathura pdfビューアのバージョンです。エラーメッセージはzathuraプラグインの開発ファイルに関するもので、パッケージzathura-dev
をインストールすることで取得できます。
Ubuntu(16.04)にプラグインをインストールするにはどうすればよいですか?
Ubuntu 16.04および18.04でプラグインをコンパイルする手順は次のとおりです。
まず、libmupdf-dev
バージョン1.11をコンパイルする必要があります。
プロジェクトのリポジトリのクローンを作成します。
$ git clone --recursive git://git.ghostscript.com/mupdf.git
ルートディレクトリを入力します。
$ cd mupdf
1.11-rc1
とタグ付けされたブランチをチェックアウトします。
$ git checkout 1.11-rc1
サードパーティのライブラリを更新します。
$ git submodule update --init
いくつかの必要な依存関係をインストールします。
$ Sudo apt-get update
$ Sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev mesa-common-dev pkg-config
コンパイルlibmupdf-dev
:
$ CFLAGS=-fPIC make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local
├──────────┘
└ pass some flags to `$ gcc`, otherwise the compilation of `zathura-pdf-mupdf` will fail,
with an error message recommending you to recompile with those flags.
checkinstall
をインストールして、ファイルをdebパッケージとしてインストールします。
$ Sudo apt-get install checkinstall
これを使用して、パッケージlibmupdf-dev
の下にファイルをインストールします。
$ Sudo checkinstall -y --pkgversion=1.11 --pkgname=libmupdf-dev
これで、zathuraプラグインをコンパイルできます。 mupdf/
ディレクトリから出て、zathura-pdf-mupdf
のリポジトリを複製します。
$ cd ..
$ git clone https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git
ルートディレクトリを入力します。
$ cd zathura-pdf-mupdf
ブランチ0.3.1をチェックアウトします。
$ git checkout 0.3.1
いくつかの必要な依存関係をインストールします。
$ Sudo apt-get install libjbig2dec0-dev libjpeg-dev libopenjp2-7-dev libssl-dev zathura-dev
最後に、コンパイルしてインストールします。
$ Sudo make install
Ubuntu 16.04では、libmupdf-dev
およびzathura-pdf-mupdf
のバージョン1.11および0.3.1を簡単に超えることはできないようです。ただし、Ubuntu 18.04では、必要に応じてもう少し高くすることができます。
┌───────┬──────────────┬───────────────────┐
│ │ libmupdf-dev │ zathura-pdf-mupdf │
├───────┼──────────────┼───────────────────┤
│ 16.04 │ 1.11 │ 0.3.1 │
├───────┼──────────────┼───────────────────┤
│ 18.04 │ 1.13 │ 0.3.2 │
└───────┴──────────────┴───────────────────┘
与えるもの:
$ git clone --recursive git://git.ghostscript.com/mupdf.git
$ cd mupdf
$ git checkout 1.13.0-rc1
$ git submodule update --init
$ Sudo apt-get update
$ Sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libxcursor-dev libxi-dev libxinerama-dev libxrandr-dev mesa-common-dev pkg-config
$ CFLAGS=-fPIC make HAVE_X11=no HAVE_GLUT=no prefix=/usr/local
$ Sudo apt-get install checkinstall
$ Sudo checkinstall -y --pkgversion=1.13 --pkgname=libmupdf-dev
$ cd ..
$ git clone https://git.pwmt.org/pwmt/zathura-pdf-mupdf.git
$ cd zathura-pdf-mupdf
$ git checkout 0.3.2
$ Sudo apt-get install libjbig2dec0-dev libjpeg-dev libopenjp2-7-dev libssl-dev zathura-dev
$ Sudo make install
プラグインを削除する場合は、次を実行します。
$ Sudo make uninstall
/usr/lib/zathura/pdf.so
をzathura-pdf-poppler
から削除するため、後者を再インストールします。
$ Sudo apt-get install --reinstall zathura-pdf-poppler
プラグインをインストールしたら、pdf(およびepub)を開くためにzathuraをデフォルトのプログラムにする必要があります。だから実行:
$ xdg-mime default zathura-pdf-mupdf.desktop application/pdf application/epub+Zip
ファイルが見つからないためにlibmupdf-dev
のコンパイルが失敗した場合は、$ apt-file search <file>
でそれが属するパッケージを見つけるか、docs/building.html
ヘッダー「Compiling on Linux」(ファイルの場合存在しない場合、一時的にマスターに切り替えます$ git checkout master
)。
そして、コンパイルする前にいくつかのdebianパッチを適用してみてください:
$ git clone https://salsa.debian.org/koster/mupdf
$ ls mupdf/debian/patches
0001-mupdf_manpage.patch
0003-Sort-files-in-static-library-to-make-the-build-repro.patch
0003-use-debian-flavor-build-options.patch
0004-MuPDF-crossbuild-use-target-Arch-pkg-config.patch
0005-MuPDF-crossbuild-use-Host-cc-for-utils.patch
0006-Allow-disabling-objcopy.patch
0007-typographical-and-formatting-fixes-to-the-manual.patch
0008-PATCH-Fix-700043-Don-t-assume-a-font-is-t3-just-beca.patch
0009-PATCH-Bug-700442-Add-a-recursion-depth-check-to-prev.patch
0010-PATCH-Throw-when-page-number-is-out-of-range.patch
0011-Avoid-being-smart-about-keeping-only-a-single-refere.patch
0012-Fix-text-used-as-clip-mask-in-pdfwrite-device.patch
0013-Fix-typo-in-pdf-write-device.patch
series
ターゲットファイルのディレクトリで次のコマンドを実行して、最も有用と思われるものを適用します。
$ patch -b </path/to/patch
-b
に渡される$ patch
オプションは、パッチを適用する前にファイルのバックアップを作成します。バックアップファイルには、拡張子.orig
が付きます。
パッチの効果を元に戻したい場合は、-R
オプションを使用します。
$ patch -R </path/to/patch
^^
--dry-run
を使用して、パッチをシミュレートします。
汚くてハックな方法は、Archバイナリを使用することです。
ダウンロード バイナリ/usr/lib/zathura/pdf.so
をパッケージから抽出し、たとえばUbuntuマシンの/usr/lib/zathura/pdf.so
。既存のpdf.so(poppler)の名前をpdf.buに変更して、競合しないようにします。
プラグインが認識されます:
$ zathura --version
zathura 0.3.5
(plugin) djvu (0.2.5) (/usr/lib/zathura/djvu.so)
(plugin) pdf-mupdf (0.3.0) (/usr/lib/zathura/pdf.so)
(plugin) ps (0.2.3) (/usr/lib/zathura/ps.so)
(plugin) cb (0.1.5) (/usr/lib/zathura/cb.so)
今まで、私はあまり安定性の問題はないようです。 Zathuraは、特にレンダリング(巨大な画像)と検索において、以前よりもはるかに高速です。
一般的に、この方法でinstall
ソフトウェアを使用することはお勧めできません。別のディストリビューションからのバイナリであり、自動的に更新もパッチも適用されません。自己責任で使用してください。
利点は、zathura-pdf-mupdf-0.3.0
プラグインがepub
形式もサポートしていることです。
プラグインが近い将来、Ubuntuリポジトリに含まれることを願っています。