如何在 Ubuntu 18.04 上获取 MuPDF OpenGL 查看器?

Fau*_*ust 5 opengl mupdf 18.04

TLDR

如何mupdf-gl在 Ubuntu 18.04 上安装(最好不要从源代码构建)?


我最近开始使用 MuPDF。我尝试在装有 Ubuntu 18.04.3 的台式机上安装它。但是,我只能得到它的 X11 版本。我更喜欢用 OpenGL 渲染的那个;这是我一直在我的笔记本电脑上使用的。我更喜欢它,但在这一点上,我只想知道我做错了什么,并学会正确做:)

我所做的

我首先从终端安装了 MuPDF sudo apt install mupdf。直截了当。但这不是我所期望的:我立即注意到键绑定是不同的。

我检查了版本。它是 MuPDF 1.12。最新版本是 1.16。想到可能是这样,我去寻找如何安装更新的版本。

我找到了这篇关于安装 1.13 版的UbuntuHandbook 帖子。我清除了我的安装,添加了他们的 PPA,更新并重新安装,这让我得到了 1.14 版。然而,仍然没有运气。当我运行时,mupdf它的行为仍然相同。

在研究我的问题时,我看到了一些对mupdf-glmupdf-x11命令的引用。所以我在我的文件中挖掘。我发现/usr/bin/mupdf运行/usr/lib/mupdf/mupdf-x11. 但是没有mupdf-gl找到。

在这一点上,我意识到我的问题与版本无关。查看 MuPDF 的发布历史,我看到 OpenGL 查看器是在 1.8 版上推出的。

我还没有尝试从源代码构建库。从我所看到的,似乎其他人在通过存储库安装时没有遇到同样的问题。我甚至发现这个的Gentoo论坛帖子由谁无意中使用OpenGL的观众有人并抱怨旧键绑定不工作。

如果相关,glxinfo | grep "OpenGL version"在我的终端中运行会产生OpenGL version string: 3.3 (Compatibility Profile) Mesa 19.2.8.

这是我在任何 Stack Exchange 上的第一篇文章,因此对我的格式的任何反馈都将不胜感激。

N0r*_*ert 5

长话短说

这是一个 Ubuntu 打包错误,已向Launchpad 报告为错误 1740105

从源代码编译或安装

你需要什么

对 ArchLinux 中的 PKGBUILD 文件的分析表明 muPDF 需要freeglut,glu以及mesa-libglOpenGL 的库。

在 Ubuntu 上,构建依赖项的模拟(通过apt-get build-dep使用-s标志运行)会安装许多 OpenGL 相关的软件包(包括前面提到的):

$ sudo apt-get build-dep mupdf -s | grep Inst.*gl
Inst freeglut3 (2.8.1-3 Ubuntu:18.04/bionic [amd64])
Inst libglvnd-core-dev (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libgles1 (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libopengl0 (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libglvnd-dev (1.0.0-2ubuntu2.3 Ubuntu:18.04/bionic-updates [amd64])
Inst libxcb-glx0-dev (1.13-2~ubuntu18.04 Ubuntu:18.04/bionic-updates [amd64])
Inst libgl1-mesa-dev (19.2.8-0ubuntu0~18.04.1 Ubuntu:18.04/bionic-updates [amd64])
Inst libglu1-mesa-dev (9.0.0-2.1build1 Ubuntu:18.04/bionic [amd64])
Inst freeglut3-dev (2.8.1-3 Ubuntu:18.04/bionic [amd64])
Run Code Online (Sandbox Code Playgroud)

muPDF 的默认安装提供了以下库依赖项:

$ ls /usr/lib/mupdf/mupdf* -1
/usr/lib/mupdf/mupdf-x11

$ ldd /usr/lib/mupdf/mupdf-x11 | grep -i gl
    libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007f55297f6000)
Run Code Online (Sandbox Code Playgroud)

所以我们没有前面列表中显示的 OpenGL 库。

18.04 LTS 可以做什么

为了获得 OpenGL 支持,我们确实需要

  • (a) 重新编译具有构建依赖项的包。所以运行:

    sudo apt-get build-dep mupdf mupdf-tools
    
    cd ~/Downloads
    apt-get source mupdf
    
    cd mupdf-1.12.0+ds1
    make
    sudo make install
    
    Run Code Online (Sandbox Code Playgroud)

    你将被mupdf-gl编译并安装到/usr/local/bin/mupdf-gl.

  • (b) 使用PPA中的预构建包,因此您可以从那里安装 mupdf:

    sudo add-apt-repository ppa:cges30901/app
    sudo apt-get update
    sudo apt-get install mupdf
    
    Run Code Online (Sandbox Code Playgroud)

    并将mupdf-gl变得可用。

在 Ubuntu 20.04 LTS 上做什么

这里存在PPA,因此您可以从那里安装 mupdf :

sudo add-apt-repository ppa:cges30901/app
sudo apt-get update
sudo apt-get install mupdf
Run Code Online (Sandbox Code Playgroud)

并将mupdf-gl变得可用。

22.04 LTS 发布后该怎么办

没什么,只需从存储库安装官方包,它就可以了mupdf-gl


cay*_*ann 5

这在20.04仍然是一个问题。要构建最新版本,请访问https://www.mupdf.com/downloads/index.html查找最新源。现在是 1.18.0。然后

wget https://www.mupdf.com/downloads/archive/mupdf-1.18.0-source.tar.xz
tar xf mupdf-1.18.0-source.tar.xz
cd mupdf-1.18.0-source
sudo apt install mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev \
  xorg-dev libxcursor-dev libxrandr-dev libxinerama-dev freeglut3-dev
make
sudo make prefix=/usr/local install
Run Code Online (Sandbox Code Playgroud)