web-dev-qa-db-ja.com

`zathura`ドキュメントビューアーのmupdf-plugin / backendをインストールする

私は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)にプラグインをインストールするにはどうすればよいですか?

5
Janghou

このプラグインはまだDebianリポジトリに含まれていないため、自分でパッケージ化することにしました。

zathura-pdf-mupdfパッケージをLaunchpad PPAにアップロードしました ppa:spvkgn/zathura-mupdf 、16.04、16.10、17.04、および17.10 Ubuntuシリーズのパッケージが含まれています。最新のMuPDF 1.11バージョンからライブラリに対してコンパイルされたプラグイン。

このパッケージで問題が発生した場合は、お気軽にお知らせください。

3
spv82

私がインストールしたバージョンは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.sozathura-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を使用して、パッチをシミュレートします。

2
user938271

汚くてハックな方法は、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リポジトリに含まれることを願っています。

1
Janghou