为“zathura”文档查看器安装 mupdf-plugin/backend

为“zathura”文档查看器安装 mupdf-plugin/backend

我喜欢的速度MuPDF和用户界面Zathura

幸运的是,有一个Zathura 的 mupdf-后端

不幸的是,它不在存储库中,并且正在构建以下指示因错误而失败:

Makefile:25: *** "The minimum required version of zathura is 0.2.0".          

我安装的版本是zathura 0.3.5

如何在 Ubuntu(16.04)中安装插件?

答案1

我安装的版本是 zathura 0.3.5

这是您的 zathura pdf 查看器的版本;错误消息是针对 zathura 插件的开发文件,您可以通过安装包来获取该文件zathura-dev


如何在 Ubuntu(16.04)中安装插件?

以下是在 Ubuntu 16.04 和 18.04 上编译插件的步骤。

首先需要编译libmupdf-dev1.11版本。

克隆项目的 repo:

$ 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/并克隆 repo 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 上,似乎无法轻松超越 1.11 和 0.3.1 版本libmupdf-devzathura-pdf-mupdf但在 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

一旦插件安装完毕,您可能需要将 zathura 设为打开 pdf(和 epub)的默认程序;因此运行:

$ xdg-mime default zathura-pdf-mupdf.desktop application/pdf application/epub+zip

如果由于缺少文件而导致 编译libmupdf-dev失败,请尝试使用 查找其所属的包$ apt-file search <file>,或阅读docs/building.html标题“在 Linux 上编译”(如果文件不存在,请暂时切换到 master $ 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

该插件仍未包含在 Debian 存储库中,因此我决定自己打包它。

我已将zathura-pdf-mupdf软件包上传至 Launchpad PPAppa:spvkgn/zathura-mupdf,它包含适用于 16.04、16.10、17.04 和 17.10 Ubuntu 系列的软件包。该插件针对最新MuPDF1.11 版本的库进行编译。

如果此包出现任何问题,请随时告诉我。

答案3

一种肮脏且不雅观的方法是使用二进制。

下载/usr/lib/zathura/pdf.so从包中提取二进制文件并将其复制到/usr/lib/zathura/pdf.so您的 Ubuntu 机器上。最好将现有的 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 存储库中。

相关内容