我喜欢的速度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-dev
1.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-dev
。zathura-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.so
,zathura-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 系列的软件包。该插件针对最新MuPDF
1.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 存储库中。